Repare: vc está posicionando a ordem buy stop em max_current + 10 quando new_high > max_current, sendo que o preço do ativo anda de 5 em 5 pontos.
Na maioria das vezes vai dar certo, pois logo que new_high = max_current + 5 o seu gatilho é acionado e vc consegue posicionar sua ordem buy stop em max_current + 10.
Porém, muitas vezes algum tubarão manda uma ordem de compra a mercado de volume grande que consome toda a oferta disponível em 2, 3, ou mais níveis de preço de uma vez só. Nesses casos o preço ASK pode pular direto pra max_current + 15, por exemplo, e aí sua ordem buy stop será rejeitada por estar abaixo do preço ASK.
Sugiro vc comparar max_current + 10 com ASK e, se for menor ou igual, vc envia ordem a mercado em lugar de ordem buy stop.
Ou então deixa como está e testa o retorno da ordem buy_stop e, se tiver sido rejeitada, manda a ordem a mercado.
Além do que o @Trader_Patinhas falou, não esqueça de normalizar os preços para ordens pendentes. A razão é evitar aqueles preços estranhos (Ex.: WIN@ 100.000,999999999999).
Além do que o @Trader_Patinhas falou, não esqueça de normalizar os preços para ordens pendentes. A razão é evitar aqueles preços estranhos (Ex.: WIN@ 100.000,999999999999)
Poderia exemplificar isso
civil.luciano #:
Poderia exemplificar isso
Se o preço de entrada/saída se baseá em um indicador como Media Móvel, Canal de Keltner, etc...
E o ativo para operações for o Mini Índice por exemplo, o preço retornado do Indicador pode vim divergente do padrão em 5 em 5, com casas decimais a mais.
Uma possível solução para lidar com esse problema é utilizar a função NormalizeDouble().
Exemplo:
double PrecoEntrada = NormalizeDouble( ValorPreco, Digits() );
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- 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
Ola,
Estou escrevendo um EA que opera inside bar, ela poe uma ordem de compra na maxima e venda na minima do candle e poe o take profit, quando o take profit ou stop loss é atingido ela cancela todas as ordens restantes.
O problema que tenho é o seguinte, a EA funciona com alguns inside bars e com outros nao, tudo ocorre perfeitamente, as ordens são colocadas e o stop loss e take profit atingidos mas com alguns inside bars nenhuma ordem é colocada mesmo tudo estando de acordo com as regras e no log dizendo INVALID PRICE diversas vezes para o mesmo preco.
O que esta acontecendo, alguém pode me ajudar a concertar isso?