Boa tarde, estou desenvolvendo um EA e nele estou colocando a funçao de TrailingStop quando abre uma ordem.
Peguei um modelo nas comunidades e adequei ao meu EA, porém ele entra no no for normal.O problema é que ele entra no primeiro If quando é compra e vice versa
Olá lorran.dba,
Por favor, quando for postar trechos de código, por favor utilize o botão SRC !!!
Abraços,
Malacarne
Boa tarde, estou desenvolvendo um EA e nele estou colocando a funçao de TrailingStop quando abre uma ordem.
Peguei um modelo nas comunidades e adequei ao meu EA, porém ele entra no no for normal.O problema é que ele entra no primeiro If quando é compra e vice versa
Olá lorran.dba,
O código que você postou é referente à linguagem MQL4...
Você está mesmo querendo desenvolver para MetaTrader 4 ???
Abraços,
Malacarne
Olá lorran.dba,
O código que você postou é referente à linguagem MQL4...
Você está mesmo querendo desenvolver para MetaTrader 4 ???
Abraços,
Malacarne
Sim é MQL4.
Boa tarde, estou desenvolvendo um EA e nele estou colocando a funçao de TrailingStop quando abre uma ordem.
Peguei um modelo nas comunidades e adequei ao meu EA, porém ele entra no no for normal.O problema é que ele entra no primeiro If quando é compra e vice versa
Oi Lorran, eu não entendi bem qual o seu problema.
O primeiro if apenas filtra o tipo da ordem/posição, pois o que interessa para o trailing são as duas primeiras das 6 enumerações possíveis, a OP_BUY e OP_SELL.
if(OrderType()<=OP_SELL&&OrderSymbol()==Symbol())
O segundo if verifica se você está em uma posição comprada, se sim, ele aplica a rotina de trailing para a posição comprada.
if(OrderType()==OP_BUY)
Se não foi satisfeito a condição para comprado, então ele vai para o else, que só pode ser uma posição vendida.
else
Eu posso estar enganado, mas pra mim o código está correto.
Abraço,
Romeu.
Obrigado por responder,
Deixar eu tentar explicar,
Até essa parte esta ok. O Problema é que quando uma ordem é executada, não é movido o TrailingStop como é meu objetivo.Ele cai dentro do "for" entra no if e modifica a ordem com o trailing do momento e da return 0, o meu objetivo é que ele acompanhe a ordem até o fechamento dela.
Atte,
Lorran
Obrigado por responder,
Deixar eu tentar explicar,
Até essa parte esta ok. O Problema é que quando uma ordem é executada, não é movido o TrailingStop como é meu objetivo.Ele cai dentro do "for" entra no if e modifica a ordem com o trailing do momento e da return 0, o meu objetivo é que ele acompanhe a ordem até o fechamento dela
Atte,
Lorran
E você já experimentou debugar o teu código?
Abraços,
Malacarne
E você já experimentou debugar o teu código?
Abraços,
Malacarne
Será que eu não poderia usar um while ao inves do for?
Aparentemente não é uma questão de qual operador utilizar, e sim, qual valor está sendo atribuído para cada variável durante o seu loop.
Por isso a importância de debugar o seu código.
Abraços,
Malacarne
Me expressei mal e a galera não entendeu minha ideia, o que eu quero é que assim que ele execute uma ordem ele fique alterando o TrailingStop, assim que a ordem fique positiva, fiz um trecho do código e na primeira vez que ele entra no while funciona perfeitamente.O problema é que quando ele volta para o While novamente ele nao atualiza a variavel Bid aí fica num loop infinito.Gostaria de saber se tenho que fazer alguma coisa a mais pra ele fica alterando essa variavel conforme o preço.
while(Bid<OrderTakeProfit()||Bid>OrderStopLoss()) { OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-Point*TrailingStop*10,Digits),OrderTakeProfit(),0,Green); } OrderClose(cnt, OrderLots(), OrderClosePrice(), Slippage); return(0);
- 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
Boa tarde, estou desenvolvendo um EA e nele estou colocando a funçao de TrailingStop quando abre uma ordem.
Peguei um modelo nas comunidades e adequei ao meu EA, porém ele entra no no for normal.O problema é que ele entra no primeiro If quando é compra e vice versa