Olá @kwlin_089
Para simplesmente substituir o envio das suas ordem a mercado por ordens pendentes com limite de preço, você precisa, essencialmente, substituir ORDER_TYPE_BUY por ORDER_TYPE_BUY_LIMIT e ORDER_TYPE_SELL por ORDER_TYPE_SELL_LIMIT na hora de abrir posição.
Só que não é tão simples assim. Há outras coisas que precisam ser verificadas/consideradas:
1) Para manter a consistência da lógica operacional do seu EA, você também terá que fazer a mesma substituição em todos os outros lugares do código onde o tipo de ordem é determinado ou verificado (na função SetOrder(), por exemplo).
2) Ordens do tipo LIMIT têm parâmetros adicionais em relação a ordens de mercado. Você terá que acrescentá-los na hora de abrir posição. Veja os parâmetros requeridos para cada tipo de ordem aqui neste link.
3) Ao contrário de ordens a mercado, que em mercados líquidos são sempre executadas de forma integral e imediata, as ordens LIMIT nem sempre são executadas e às vezes são executadas parcialmente. Por isso você terá que acrescentar funções lógicas no seu EA para decidir o que fazer em cada caso. Por exemplo: decidir quando cancelar uma ordem que não foi executada (senão ela fica lá esquecida a vida toda e acaba sendo executada depois, num momento indesejado), decidir até quando manter uma ordem parcialmente executada, se a posição parcialmente aberta deve ser zerada ou mantida e até quando mantê-la, etc..
É provável que haja mais coisas a serem consideradas, além das que enumerei acima, para que o seu EA funcione corretamente em qualquer circunstância com ordens LIMIT.
A menos que você já tenha um conhecimento sólido de programação, que te permita entender tudo o que precisa ser feito estudando por si mesmo a documentação MQL5, recomendo fortemente contratar o serviço de um programador free-lancer para te ajudar.
Abraços e sucesso!
Olá @kwlin_089
Para simplesmente substituir o envio das suas ordem a mercado por ordens pendentes com limite de preço, você precisa, essencialmente, substituir ORDER_TYPE_BUY por ORDER_TYPE_BUY_LIMIT e ORDER_TYPE_SELL por ORDER_TYPE_SELL_LIMIT na hora de abrir posição.
Só que não é tão simples assim. Há outras coisas que precisam ser verificadas/consideradas:
1) Para manter a consistência da lógica operacional do seu EA, você também terá que fazer a mesma substituição em todos os outros lugares do código onde o tipo de ordem é determinado ou verificado (na função SetOrder(), por exemplo).
2) Ordens do tipo LIMIT têm parâmetros adicionais em relação a ordens de mercado. Você terá que acrescentá-los na hora de abrir posição. Veja os parâmetros requeridos para cada tipo de ordem aqui neste link.
3) Ao contrário de ordens a mercado, que em mercados líquidos são sempre executadas de forma integral e imediata, as ordens LIMIT nem sempre são executadas e às vezes são executadas parcialmente. Por isso você terá que acrescentar funções lógicas no seu EA para decidir o que fazer em cada caso. Por exemplo: decidir quando cancelar uma ordem que não foi executada (senão ela fica lá esquecida a vida toda e acaba sendo executada depois, num momento indesejado), decidir até quando manter uma ordem parcialmente executada, se a posição parcialmente aberta deve ser zerada ou mantida e até quando mantê-la, etc..
É provável que haja mais coisas a serem consideradas, além das que enumerei acima, para que o seu EA funcione corretamente em qualquer circunstância com ordens LIMIT.
A menos que você já tenha um conhecimento sólido de programação, que te permita entender tudo o que precisa ser feito estudando por si mesmo a documentação MQL5, recomendo fortemente contratar o serviço de um programador free-lancer para te ajudar.
Abraços e sucesso!
Meu conhecimento é básico, vou seguir o que me disse, vou tentar mudar isso!
Obrigado pela ajuda!
;)
- 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á,
gostaria de saber se alguem pode me auxiliar na substituição das ordens à mercado para ordens pendentes LIMIT. Este EA abre uma operação quando atinge 50% da retração fibonacci durante a correção de uma tendência, este fibonacci é plotado de acordo com o padrão estabelecido para a estratégia.
No entanto gostaria de mudar para ordens pendentes limit, é possível mudar isto? se puderem ajudar fico grato!