Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 528

 
tara:

Yevgeni Nikolaevichs de Odessa (tú mismo has pedido el plural), ¿puedes responder?
Gente extraña... Sólo quería una respuesta...
 
MEN_Odessa:

No estoy recibiendo ningún código de error procesado en el probador de estrategias. ¿Qué pasa ahí? ¿Hay algún problema con Sleep o simplemente no se generan los errores?


El sueño no funciona en el probador.
 

Ayuda.

Según tengo entendido, ¿no hay trailing stop en una orden en mql 4?

Y si no, ¿cómo puedo utilizar un método sencillo para ejecutar un trailing stop en una orden abierta?

 
culler:

Ayuda.

Por lo que tengo entendido, no hay ninguna función Trailing Order integrada en mql 4.

Y si no es así, ¿cómo puedo hacer el seguimiento de una orden abierta en una línea simple?


Algo así
 
evillive:

Algo así


Vaya... No sabía que hubiera tantos trailing stops. La cabeza me da vueltas )))) Todo lo que quieras )))

Me gustaría uno sencillo, como el que incorpora MT4 en una orden del precio actual. )))

 
culler:


Vaya... No sabía que había tantos trailing stops. La cabeza me da vueltas )))) Lo que quieras )))

Me gustaría un simple trailing stop, como el incorporado en MT4 en el orden del precio actual. )))


) El arrastre primitivo de la Muestra MACD corresponde al arrastre en el terminal y el servidor es bombardeado con órdenes en cada tick:

extern TrailingStop=100;   
for(cnt=0;cnt<total;cnt++)
     {
      OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
      if(OrderType()<=OP_SELL &&   // check for opened position 
         OrderSymbol()==Symbol())  // check for symbol
        {
         //--- long position is opened
         if(OrderType()==OP_BUY)
           {
            //--- check for trailing stop
            if(TrailingStop>0)
              {
               if(Bid-OrderOpenPrice()>Point*TrailingStop)
                 {
                  if(OrderStopLoss()<Bid-Point*TrailingStop)
                    {
                     //--- modify order and exit
                     OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
                     return;
                    }
                 }
              }
           }
         else // go to short position
           {
            //--- check for trailing stop
            if(TrailingStop>0)
              {
               if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
                 {
                  if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
                    {
                     //--- modify order and exit
                     OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
                     return;
                    }
                 }
              }
           }
        }
     }
 

Al depurar, la ventana "USDCHF" se abre por defecto...

Puedes decirme cómo hacer durante la depuración de MeteEditor para inicializar y trabajar en MetaTrader

con ventana determinada o ya abierta, y no con ventana "USDCHF" por defecto?

 
Orangetree:

Al depurar, la ventana "USDCHF" se abre por defecto...

Me pueden decir cómo hacer durante la depuración de MeteEditor para inicializar y trabajar en MetaTrader

con ventana determinada o ya abierta, y no con ventana "USDCHF" por defecto?

En la configuración del terminal, busca en las pestañas. Lo encontrarás.
 
artmedia70:
En la configuración del terminal, busca en las pestañas. Lo encontrarás.


Puedes cambiar el par y el plazo, pero no la configuración del terminal ;)
 

Hola, no sé dónde colocar esta pregunta, el meollo es el siguiente: a veces el EA escribe un archivo de registro de 7 gigas con un error, escribe (EURUSD,M15: Failed to close leading order, repeat operation), aunque cierra todo sin error. Intento prohibir a este EA que registre sus acciones en el log, pero es inútil, necesito el log del terminal.

Por favor, aconsejar cómo prohibir este "creep" para mantener el registro? Entiendo que tengo que usar la opción de imprimir pero ¿cómo?

            if ((OrderSymbol() == Symbol()) && (OrderMagicNumber() == mNumber)) {
               if (OrderType() == OP_BUY) {
                  error1 =  (OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid, Digits), Spread, Blue));
                  if (error1 == 1) {
                     Print ("Лидирующий ордер закрыт успешно."); 
                     Sleep (500);   
                  } else {
                     Print ("Ошибка закрытия лидирующего ордера, повторяем операцию. ");