Olá
bom, você não mostrou o log, mas passe a usar NormalizePrice() para ajustar o preço corretamente ao TickSize
#include <Trade\SymbolInfo.mqh> CSymbolInfo cSymbol; newSL = cSymbol.NormalizePrioe(entryPrice - (p_sl *_Point)); newTP = cSymbol.NormalizePrioe(entryPrice + (p_tp *_Point);
Se continuar dando problema anexe o log diário.
Fiz o ajuste do preço e a ordem não foi modificada. Até fiz um trace para ver se a função foi acionada, mas o modificador não dá nenhum sinal de execução, e nem de erro.
Identifiquei que o PositionsTotal() estava retornando zerado e coloquei uma função sleep de 2s para acionar a modificação da posição. Vou dar uma olhada para resolver de forma assíncrona, que deve resolver da forma mais correta.
Muito obrigado pelas dicas.
Olá Felipe!
Só um detalhe, não sei se você confere se o take profit e o stop loss são válidos. Veja esse artigo:
https://www.mql5.com/pt/articles/2555#invalid_SL_TP_for_position
Att,
- www.mql5.com
Olá Felipe!
Só um detalhe, não sei se você confere se o take profit e o stop loss são válidos. Veja esse artigo:
https://www.mql5.com/pt/articles/2555#invalid_SL_TP_for_position
Att,
Olá Edson, muito obrigado pela dica! bem completo essa orientação para evitar esse problema :)
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Olá pessoal
Fiz um EA e utilizei a biblioteca padrão CTrade para envio de ordens a mercado, porém quando tento fazer a modificação da posição, em alguns momentos apenas, a ordem é modificada, em outros casos simplesmente não é alterada os alvos. Segue o trecho que faço a execução da ordem e aciono a função para inserir os alvos. Alguém tem alguma orientação sobre uma rotina melhor do tratamento desse retorno?
* Rodei o EA pela conta de produção da Modalmais (não sei se influencia muito a execução pela corretora)
Obrigado