Eu diria que é difícil operar um paciente em um terno espacial. Você postou aqui um arquivo compilado, não código de código aberto (*.mq4). Tenho a sensação de que você pegou um roteiro pronto em algum lugar (você o verificou em sua forma natural para performance?), mudou alguma coisa no código e deixou de fazer o que você precisava. Se o código original se comportou normalmente, então olhe onde e o que você mudou e verifique se ele funciona após cada mudança.
GarKain: como modificar os pedidos de Compra e Venda separadamente?
if (OrdersTotal()>0)
{ for (int i=OrdersTotal()-1; i>=0; i--)
{ if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{ if (OrderType()==OP_BUY) // или OP_SELLOrderModify(OrderTicket(), ...);
} } }
Você pode me dizer como lidar com o looping EA e a perda de desempenho neste caso? Ainda estou usando o reinício, o que é muito inconveniente. Estou usando o reinício, o que é muito inconveniente. Obrigado antecipadamente.
Aqui está o roteiro em si...
Aqui está o roteiro em si...
Eu estaria inclinado a pensar que o erro está no próprio código. A intervenção cirúrgica no próprio roteiro é necessária.
Talvez mudar a gaxeta ajudaria
como posso modificar os pedidos de Compra e Venda separadamente?
if (OrderType()==OP_BUY && Open[0]>Low[steploss] && OrderStopLoss()<trailstopbuy){
OrderModify(OrderTicket(),OrderOpenPrice(),trailstopbuy,OrderTakeProfit(),0,Blue);
return(0);
}
if (OrderType()==OP_SELL && Open[0]<High[steploss] && OrderStopLoss()>trailstopsell){
OrderModify(OrderTicket(),OrderOpenPrice(),trailstopsell,OrderTakeProfit(),0,Blue);
return(0);
}
e daí?
como modificar os pedidos de Compra e Venda separadamente?
if (OrderTotal()>0){
for(int g=OrdersTotal()-1; g>=0; g--){
OrderSelect(g,SELECT_BY_POS);
if (OrderMagicNumber()==2563 && OrderType()==OP_BUY){
if (Open[0]<=Low[steploss]){
OrderClose(g,1,Bid,3,Red);
return(0);
}
if (GradusEDBuy==verdadeiro){
OrderClose(g,1,Bid,3,Red);
return(0);
}
}
}
if (OrderMagicNumber()==2563 && OrderType()==OP_SELL){
if (Open[0]>=High[steploss]){
OrderClose(g,1,Ask,3,Red);
return(0);
}
if (GradusEDSell==verdadeiro){
OrderClose(g,1,Bid,3,Red);
return(0);
}
}
}
Você pode me dizer como lidar com o looping EA e a perda de desempenho ao fazer isso?
Retire o laço e bata as mãos do codificador :)