Como usar uma ordem stop-limit em MultiCharts?
Você quer saber como usar uma ordem limite de stop loss no MultiCharts. Neste exemplo, usaremos uma ordem de mercado de compra e uma ordem de mercado de venda combinada com uma ordem de limite de parada.
Exemplo de programação
Saída do exemplo de programação
Aplicada a um gráfico a estratégia de negociação se parece com:
Com a seguinte saída (correspondente aos negócios na imagem exibida acima):
Ordens de limite de parada em MultiCharts
Ao usar ordens de stop-limite, que submetem uma ordem de limite de compra ou de venda quando o preço de gatilho de parada especificado pelo usuário é atingido ou penetrado, a interface de pedido IOrderStopLimit precisa ser usada (MultiCharts, 2013):
Aqui nós declaramos três objetos de ordem: duas ordens de mercado (buyMarketOrder e sellMarketOrder) que usam a interface de ordem IOrderMarket ea ordem stop-limit (sellStopLimitOrder) que usa a interface de ordem IOrderStopLimit.
Uma vez que uma ordem stop-limit requer um preço stop e um limite price, duas variáveis duplas foram adicionadas para armazenar estes (linha 13).
Em seguida, os objetos de ordem precisam ser inicializados, o que é feito no método de substituição Create () MultiCharts:
Embora as três ordens sejam inicializadas de forma muito semelhante, há uma pequena diferença: as ordens de mercado são criadas com o método OrderCreator. MarketNextBar () (linhas 19 e 22), enquanto as ordens stop-limit exigem o método OrderCreator. StopLimit () (Linha 25).
Depois de criar as ordens, chamamos Output. Clear () no método StartCalc () (linha 31) para que a guia PowerLanguage Editor seja limpa toda vez que o cálculo for iniciado.
Em seguida chegamos ao método CalcBar (), que é composto de duas partes: uma parte abre posições longas enquanto a outra parte as gerencia.
Abrindo uma posição longa no MultiCharts
Uma posição longa é aberta quando a estratégia é plana ea barra atual é a primeira do dia:
Após o envio da ordem de compra (linha 39), o preço de parada e o preço limite são calculados: o preço de parada de venda é um bar abaixo da barra atual baixa, enquanto o preço limite é de 1,5 bar abaixo da barra atual baixa.
Para acompanhar a estratégia, algumas informações são enviadas para a guia de saída do PowerLanguage Editor (linhas 44-47).
Gerenciando posições abertas em MultiCharts
Na segunda seção do método CalcBar () a posição longa é gerenciada:
Aqui é apresentada a ordem de stop-limite (linha 54). Uma vez que isto só acontece quando há uma posição longa aberta (devido à expressão condicional na instrução if na linha 51), a ordem de fim de parada não será apresentada quando não existir uma posição longa (mais). Como o MultiCharts cancela ordens abertas que não são reenviadas (ver, por exemplo, MultiCharts Wiki, 2012), isso garante que a ordem de fim de parada é cancelada depois que a posição longa foi fechada.
Para gerar uma quantidade razoável de negócios neste exemplo, é adicionado um tempo de parada baseado no número de barras na posição aberta atual (linhas 61 a 70). Para determinar a quantidade de barras, subtrai o número de barra atual (Bars. CurrentBar) do número da barra da primeira ordem de entrada da posição aberta (CurrentPosition. OpenTrades [0].EntryOrder. BarNumber). Quando esta diferença é maior que 15, a posição longa aberta é fechada pela ordem do mercado de venda.
Veja o artigo comprar ordens de parada em MultiCharts para aprender sobre como trabalhar com ordens de stop de compra.
No comments:
Post a Comment