Tuesday, 3 October 2017

Como usar uma ordem stop-limit em multicharts net


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