Boa tarde, estou com um problema não estou conseguindo resolver, espero que alguém possa me ajudar.
A situação é a seguinte:
Preciso que seja feito apenas uma operação por candle, impedir que quando haja TP ou STP no candle a EA faça qualquer tipo de operação no mesmo.
Alguém com mais conhecimento que o meu pode me ajudar com isso, já estou a 15 dias tentando resolver.
Além da dica do @Rogerio Giannetti Torres, caso você opte em não postar seu código, pode pensar em uma lógica de criar uma variável que limite o número de Trades (maxtrades). A partir daí, com um simples "if" você resolve o problema.
[ ]´s
https://www.mql5.com/pt/docs/trading/positionstotal
https://www.mql5.com/pt/docs/trading/orderstotal
Declare duas variaveis do tipo int e receba o numero de ordens e posições abertas respectivamente.
int totalOrd = OrdersTotal();int totalPos = PositionsTotal();
- www.mql5.com
O problema e quando a ordem é finalizada por um gain ou loss, o que eu preciso é que a EA não permita nesse candle onde atingiu o alvo que se faça outra negociação, tentei o OnTransation mais também sem sucesso.
bool isNewBar() { //--- memorize the time of opening of the last bar in the static variable static datetime last_time=0; //--- current time datetime lastbar_time=SeriesInfoInteger(Symbol(),Period(),SERIES_LASTBAR_DATE); //--- if it is the first call of the function if(last_time==0) { //--- set the time and exit last_time=lastbar_time; return(false); } //--- if the time differs if(last_time!=lastbar_time) { //--- memorize the time and return true last_time=lastbar_time; return(true); } //--- if we passed to this line, then the bar is not new; return false return(false); }
Retirado do artigo: https://www.mql5.com/pt/articles/159
- www.mql5.com
O problema e quando a ordem é finalizada por um gain ou loss, o que eu preciso é que a EA não permita nesse candle onde atingiu o alvo que se faça outra negociação, tentei o OnTransation mais também sem sucesso.
A dica que te passei resolve isso.
[ ]'s
Obrigado a todos, resolvi com uma solução não tão elaborada quanto queria que fosse mas porém funcional.
Solução:
int A; quando faço uma compra armazeno o Tempo em minutos nessa variável.
bool B; no evento OnTick pego o tempo a atual em minuto e comparo com o armazenado se forem igual atribuo e existir uma posição B=false se não B=true.
Quando faço os gerenciamentos de parciais recarrego A.
Um abraço a todos, Muito obrigado pelo empenho em ajudar!
Obrigado a todos, resolvi com uma solução não tão elaborada quanto queria que fosse mas porém funcional.
Solução:
int A; quando faço uma compra armazeno o Tempo em minutos nessa variável.
bool B; no evento OnTick pego o tempo a atual em minuto e comparo com o armazenado se forem igual atribuo e existir uma posição B=false se não B=true.
Quando faço os gerenciamentos de parciais recarrego A.
Um abraço a todos, Muito obrigado pelo empenho em ajudar!
Legal. Gosto de soluções funcionais!
Sofisticação deixo para um segundo momento, tipo cereja do bolo...rs
[ ]´s
- 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 com um problema não estou conseguindo resolver, espero que alguém possa me ajudar.
A situação é a seguinte:
Preciso que seja feito apenas uma operação por candle, impedir que quando haja TP ou STP no candle a EA faça qualquer tipo de operação no mesmo.
Alguém com mais conhecimento que o meu pode me ajudar com isso, já estou a 15 dias tentando resolver.