Preguntas de los principiantes MQL4 MT4 MetaTrader 4 - página 171

 

EA basado en el rango de porcentaje de Williams. El código compila sin problemas pero el EA no opera, lo más probable es que los parámetros para wpr no sean correctos . Los gurús esperan su ayuda

//+------------------------------------------------------------------+
//|                                                          WRP.mq4 |
//|                                                                  |
//+------------------------------------------------------------------+

//--------------------------------------------------------------------
extern int     period_WPRur          = 6,
               stoploss             = 100,
               takeprofit           = 200,
               slippage             = 10,
               buy_level            = -80,
               sell_level           = -20,
               Magic                = 21;
extern double  Lot                  = 0.1;
//--------------------------------------------------------------------
void OnTick()
{
   for (int i=0; i<OrdersTotal(); i++)
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         if (OrderSymbol()==Symbol() && Magic==OrderMagicNumber()) return;
   double WPRur0  = iWPR(Symbol(),period_WPRur,PRICE_OPEN,1);
   double WPRur1  = iWPR(Symbol(),period_WPRur,PRICE_OPEN,1);
   double SL=0,TP=0;
   if (WPRur0 > buy_level && WPRur1 < buy_level)
   {
      if (takeprofit!=0) TP  = NormalizeDouble(Ask + takeprofit*Point,Digits);
      if (stoploss!=0)   SL  = NormalizeDouble(Ask - stoploss*  Point,Digits);     
      if (OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError());
   }
   if (WPRur0 < sell_level && WPRur1 > sell_level)
   {
      if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits);
      if (stoploss!=0)   SL = NormalizeDouble(Bid + stoploss*  Point,Digits);            
      if (OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError());
   }
}
//--------------------------------------------------------------------
 
Saludos a todos, soy un novato, aconsejen que hacer, ¿tengo quedevolverla cantidad de300.26$ (cuenta real)o no, quiero dejar de usar ECN Pool MT4 por un tiempo?
Archivos adjuntos:
354355.png  5 kb
 
Logic:
Saludos a todos, soy un novato, díganme que hacer, ¿tengo quedevolver la cantidad de300.26$ (cuenta real)o no, quiero dejar de usar ECN Pool MT4 por un tiempo?

Lea el acuerdo de usuario de su corredor.
Deberías leer el contrato de tu broker y normalmente dice que si la cuenta entra en números rojos, el cliente no te debe nada.
Para eso están el margin call y el stop out.

 
Aleksandr SHablevskiy:

EA basado en el rango de porcentaje de Williams. El código compila sin problemas pero el EA no opera, lo más probable es que los parámetros para wpr no sean correctos . Los gurús esperan su ayuda

  double WPRur0  = iWPR(Symbol(),period_WPRur,PRICE_OPEN,1);
  double WPRur1  = iWPR(Symbol(),period_WPRur,PRICE_OPEN,2);
Poner el 2 al final de la segunda línea como he hecho yo.
 
Nikolay Khrushchev:

Lea el acuerdo de usuario de su corredor.
Suelen decir que si la cuenta entra en déficit, el cliente no debe nada.
Para eso están el margin call y el stop out.

la cosa es que el broker resultó ser un estafador, ni la web ni la comunicación está disponible con él
 
Nikolay Khrushchev:
Poner 2 al final de la segunda línea como yo lo hice.
parece otra cosa, ¡¡¡no hay tratos!!!
 
Hola a todos¡¡¡ Acabo de empezar a aprender a programar en mql4, estoy viendo un video curso en youtube, pero resulta que el material es antiguo, me he encontrado con un error cuando intento crear un programa por primera vez, ayúdenme.Aquí está el error. El autor del vídeo no responde.
 
Hola a todos,por favor ayúdenme,como escribir una función que haga que el robot se voltee al perder. Por ejemplo, perdí 20 pips y me volteé, luego me volví a voltear.
 
turser89:
Hola a todos! Acabo de empezar a aprender a programar en mql4, estoy viendo el curso de video en youtube, pero resulta que el material es viejo, me encontré con un error la primera vez que intenté crear un programa, por favor ayuda.

Start() comenzó con una "s" minúscula en lugar de una mayúscula.

Pero ahora es mejor no utilizar funciones obsoletas.

OnTick() para los expertos, OnStart() para los scripts, etc. Más información: https://docs.mql4.com/ru/mql4changes

 

Buenas tardes.

1       16:15:33.627    2019.02.04 16:00:00  CandleStrategy EURUSD,M30: out of memory
3       16:15:33.627    2019.02.04 16:00:00  Testing pass stopped due to a critical error in the EA

¿Cómo puedo diagnosticar la causa del error de falta de memoria? No me queda ningún objeto sin borrar. Inicio la prueba, la detengo y no hay errores sobre objetos no borrados en los registros. Tampoco hay errores sobre objetos no borrados con este error de falta de memoria.

¿Cómo puedo averiguar qué es exactamente lo que provoca este error de memoria?

Razón de la queja: