Necesito ayuda con el trailing stop, en este caso estoy usando mql5 y la función PositionModify.
La cuestión es que este código funciona, cuando la diferencia entre el BID y el precio de apertura es igual en puntos al StopLoss pues subo el Stop donde esta el BID.
He establecido un magic number con esta función "trade.SetExpertMagicNumber(magicNumber);"
La cuestión es que cuando el trailing se activa y la posición se cierra con el nuevo Stop, pues luego ya no me abre mas posiciones.
Con trailing Stop

Sin trailing Stop

Solo existe una posición abierta de cada vez, y solo está funcionando un EA con un solo simbolo
Código: Seleccionar todo
if(vendido==true){
if(PositionSelect(_Symbol)){
if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY){
pr=NormalizeDouble((SymbolInfoDouble(_Symbol,SYMBOL_BID)-PositionGetDouble(POSITION_PRICE_OPEN)),_Digits)/_Point;
profit=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID)-PositionGetDouble(POSITION_PRICE_OPEN),_Digits)/_Point;
new_TP=PositionGetDouble(POSITION_TP);
//new_TP=NormalizeDouble(PositionGetDouble(POSITION_PRICE_OPEN)+(TP*_Point),_Digits);
new_sl=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits);
if(profit==StopLoss){ //int StopLoss=400 int TP=800
if(trade.PositionModify(_Symbol,new_sl,new_TP))
Print("Todo bien: ",trade.ResultRetcode()," , ",trade.ResultRetcodeDescription());
else
Print("Todo mal: ",trade.ResultRetcode()," , ",trade.ResultRetcodeDescription());
}
if(pr>=TP){
trade.PositionClose(_Symbol);
vendido=false; //to check the EA doesn't open 2 positions at same time
}
if(pr<=-StopLoss){ //StopLoss int 400
trade.PositionClose(_Symbol);
vendido=false;
}
}