Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 581

 
Ihor Herasko:

Si quiere tomar una vela M30 que cerró junto con la última vela H1 cerrada, puede ser una vela con índice no sólo 1, sino también 2. Otra cosa es que entonces no está claro por qué se toma el precio de cierre de la M30, si es el mismo precio de cierre de la vela H1 anterior. Es decir, en este caso no tiene sentido preguntar el precio de cierre de otro TF, porque es el mismo que el precio de cierre del TF actual.

Exactamente lo que necesitamos saber es el precio de cierre de M30 dentro de H1

Encontré la razón, el control de la apertura del bar. Gracias.

 

¿Cómo en el indicador comparar, en el bucle, el precio High[i+1] +/-10*Point con los fractales inferiores?

si se encuentra igual, poner flecha Buf_o[i+1]= High[i+1] ;.

 

¡Hola!

Me gustaría escribir un código de estrategia binaria simple para probarlo con MetaTrader 4 tester. Sé que el probador incorporado no prueba completamente las estrategias binarias, pero sólo necesito saber la proporción de operaciones rentables durante el período de prueba. No puedo establecer la hora de caducidad de una operación. Utilizo el operador OrderSend:

OrderSend(Symbol(),OP_BUY,1,Ask,10,0,0, "5",15167,Expiration,clrGreen);

Todo funciona bien cuando se realiza el comercio automatizado, pero de acuerdo con los términos del corredor, el período de expiración se especifica en el comentario a la posición. En este caso mi comentario es "5". Son cinco minutos. Sin embargo, el probador, por supuesto, no considera el comentario como una indicación del período de caducidad. El comprobador no reacciona en absoluto a los diferentes valores del parámetro Expiración. Primero abre operaciones siguiendo las señales de la estrategia y luego cierra todas las operaciones abiertas dentro del período de prueba en el momento de la expiración del período de prueba. En consecuencia, el resultado de las pruebas es absolutamente incorrecto.

¿Cómo especificar un periodo de caducidad comprensible para el probador? Todavía estoy dominando la versión "antigua" del código.

Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 
kirson-7:

¿Cómo puedo establecer un periodo de caducidad que el probador pueda entender?

Cierra la posición si el tiempo actual = tiempo de apertura más 5 minutos o en la apertura de una nueva barra si el marco temporal es M5.
 

¿Cómo hago para queHigh[i+1] +/-10*Point no sea exactamente igual al precio del fractal?

 {
//---
   if(rates_total<2) return(0);

   int limit=rates_total-prev_calculated;
   if(limit>1)
     {
      limit=rates_total-2;
      ArrayInitialize(BufferUP,EMPTY_VALUE);
      ArrayInitialize(BufferDN,EMPTY_VALUE);
     }
   for(int i=limit; i>=0; i--)
     {
      // BufferUP[i+1]=EMPTY_VALUE;
      
      //
      for(int y=i+2;y<=i+100;y++)
        {
         if(low[i+1]==iFractals(Symbol(),0,MODE_HIGH,y))estb=true;
        }
      if(estb)
        {
         BufferUP[i+1]=low[i+1]-distance*Point;//НЕПРАВИЛЬНО СТАВИТ СТРЕЛКУ
        }
      estb=0;
      //==//
      for(int y=i+2;y<=i+100;y++)
        {
         if(high[i+1]==iFractals(Symbol(),0,MODE_LOWER,y))ests=true;
        }
      if(ests)
        {
         BufferDN[i+1]=high[i+1]+distance*Point;//ПРАВИЛЬНО СТАВИТ СТРЕЛКУ
        }
      ests=0;

      //Comment("");
     }
   return(rates_total);
  }
 
bij:

¿Cómo hago para queHigh[i+1] +/-10*Point no sea exactamente igual al precio del fractal?

La diferencia de valores es mayor que 10*Punto, pero tenemos que considerar si la diferencia será positiva o negativa.
 
bij:
Cierra la posición si el tiempo actual = tiempo de apertura de la posición más 5 minutos o en la apertura de una nueva barra, si el marco temporal es M5.
¿Y por qué no puede funcionar el periodo de caducidad estándar en la lista de parámetros del operador OrderSend? En mi ejemplo está marcado como Expiración.
 
kirson-7:
¿Por qué no puede funcionar el periodo de caducidad estándar en la lista de parámetros del operador OrderSend? En mi ejemplo está marcado como Expiración.
Esto es para los pedidos pendientes
 
Por favor, ayúdenme a escribir una función : cerrar órdenes de un lote mayor a uno menor (string Symbol, int type, bool hand orders, int Magic)
Por ejemplo, la selección de símbolos, el tipo, si se tienen en cuenta las órdenes manuales, el número mágico.


 
Hola a todos: ¿Puedo prescribir en una función definida por el usuario la apertura de una posición(por ejemplo, comprar en el mercado), y llamar a esta función cuando hay diferentes señales de compra? Por ejemplo, el MACD se dirige a esta función - posición abierta, la señal _Muwings se dirige a esta función - compra de nuevo.... etc. O bien, en cada caso concreto, cuando se elabora la señal, es necesario escribir OrderSand(Symbol,OP_BAI, etc.);