Como verificar se um pedido foi fechado por perda parada - página 3

 
honest_knave:
E o escorregamento?
<= para Compras e >= para Vendas.
 
Jose Francisco Casado Fernandez:
Sim, é o que eu estava dizendo. Eu fiz isso, e funcionou, mas se você modificar o Stop Loss inicial, gera uma nova ordem SEM a mesma POSIÇÃO_ID. Eu não sei por quê. Eu acho que é um bug. Cumprimentos,...
Vou verificar sobre este assunto, Obrigado e cumprimentos.
 
Roberto Jacobs:

Não há necessidade de parecer escorregadio, pois o pedido foi fechado, e o preço é próximo ao HystoryDealGetDouble(bilhete, DEAL_PRICE).
Se o pedido não foi fechado, e você faz um pedido para fechar, então você deve considerar quanto escorregou, para que nenhum erro requeira.

Se o entendi corretamente, isso não é exato. Em um mercado real, uma ordem pode ser fechada por SL (ou TP) a um preço diferente do que a posição SL (ou TP).
 
Roberto Jacobs:

Não há necessidade de olhar o deslizamento, porque o pedido foi fechado, e o preço fechado está no HystoryDealGetDouble(bilhete, DEAL_PRICE).
Se o pedido não foi fechado, e você faz um pedido para fechar, então você deve considerar quanto escorregou, para que nenhum erro requeira.

Não tenho certeza se estou seguindo.

HistóriaOrderGetDouble(ticket,ORDER_SL) é o stop loss

Quando o SL é acionado, você pode ter um escorregamento.

HistoryDealGetDouble(bilhete, DEAL_PRICE) mostrará o preço real, que pode ou não ter encontrado um deslizamento.

Se houve deslize, uma simples comparação de ORDER_SL == DEAL_PRICE irá falhar, não?

 
Jose Francisco Casado Fernandez:
Sim, é o que eu estava dizendo. Eu fiz isso, e funcionou, mas se você modificar o Stop Loss inicial, ele gera uma nova ordem SEM o mesmo POSITION_ID. Eu não sei por quê. Eu acho que é um bug. Cumprimentos,...

Uma ordem para modificar o SL/TP não é de forma alguma gravada na história. Então, não tem certeza do que você quer dizer aqui ?

E a ordem que realmente resulta do SL/TP acionado não contém o SL/TP.

 
Jose Francisco Casado Fernandez:
<= para Compras e >= para Vendas.
E o deslize positivo?
 
honest_knave:

Não tenho certeza se estou seguindo.

HistóriaOrderGetDouble(ticket,ORDER_SL) é o stop loss

Quando o SL é acionado, você pode ter um escorregamento.

HistoryDealGetDouble(bilhete, DEAL_PRICE) mostrará o preço real, que pode ou não ter encontrado um deslizamento.

Se houve deslize, uma simples comparação de ORDER_SL == DEAL_PRICE irá falhar, não?

É claro.
 
Alain Verleyen:
Se o entendi corretamente, isso não é exato. Em um mercado real, uma ordem pode ser fechada por SL (ou TP) a um preço diferente do que a posição SL (ou TP).
Sim Alain, e se Bid > close_price+spread ou Ask < close_price-spread
 
Roberto Jacobs:
Sim Alain, e se Bid > close_price+spread ou Ask < close_price-spread

spread != desvio (slippage)

É uma pena que não seja possível recuperar o parâmetro de desvio.

Provavelmente um compromisso razoável é (presumindo que a EA tenha feito o pedido) verificar se o DEAL_PRICE estava dentro de uma janela de ORDER_SL± desvio

 
Roberto Jacobs:
Sim Alain, e se Bid > close_price+spread ou Ask < close_price-spread
Desculpe, mas eu não entendo o que você quer dizer?
Razão: