Novato pidiendo ayuda MT5

Foro dedicado a todo lo relacionado con la versión 5 de la plataforma de Metaquotes.
Responder
Cristoff
Mensajes: 3
Registrado: 22 Dic 2012 19:45

Novato pidiendo ayuda MT5

Mensaje por Cristoff » 07 Feb 2015 13:40

Hola a todos.

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
Imagen

Sin trailing Stop
Imagen


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;
               }
                
              }


Un saludo y gracias.



Avatar de Usuario
Gamelu
Mensajes: 782
Registrado: 21 May 2009 16:49

Re: Novato pidiendo ayuda MT5

Mensaje por Gamelu » 07 Feb 2015 22:10

En la pestaña ... Diario creo... En el tester se registran los errores... Probablemente sea por k tienes k resetear el stop...
If ( orderstotal == 0 ) stoploss=400;


No he podido leer el codigo por que estoy con el movil.



Cristoff
Mensajes: 3
Registrado: 22 Dic 2012 19:45

Re: Novato pidiendo ayuda MT5

Mensaje por Cristoff » 07 Feb 2015 22:56

Gracias por contestar, voy a intentar probar lo que me dijiste a ver si me sale.

Este es el diario

Imagen



Cristoff
Mensajes: 3
Registrado: 22 Dic 2012 19:45

Re: Novato pidiendo ayuda MT5

Mensaje por Cristoff » 09 Feb 2015 00:41

Gamelu escribió:En la pestaña ... Diario creo... En el tester se registran los errores... Probablemente sea por k tienes k resetear el stop...
If ( orderstotal == 0 ) stoploss=400;


No he podido leer el codigo por que estoy con el movil.


Que va no me funciona, igual es que lo estoy haciendo mal, creo que en este caso es PositionsTotal pero yo estoy buscando en ejemplos y no me doy cuenta que en mql4 también hagan lo de resetear el StopLoss.

Gracias por contestar




Responder

Volver a “Metatrader 5”