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

 
Artyom Trishkin:

¿Puede comprobarlo usted mismo? ¿Es difícil? ¿Y por qué escribir cosas innecesarias?

No lo he comprobado. ¿Qué te detiene?

¿Puede hacer esto o no me encontré con un error, por lo que no puede hacer esto no es posible?

 

Colegas, cómo comprobar mediante programación el TF en el que se ejecuta el Asesor Experto tanto para probar como para operar, por ejemplo para

para obtener los valores de los indicadores de la siguiente TF

Возвращает значение времени открытия бара (указанного параметром shift) соответствующего графика. 



datetime  iTime( 
   string           symbol,          // символ 
   int              timeframe,       // период 
   int              shift            // сдвиг 
   );
 

Параметры

symbol

[in]  Символьное имя инструмента. NULL означает текущий символ.

timeframe

[in]  Период. Может быть одним из значений перечисления ENUM_TIMEFRAMES. 0 означает период 

Quiero utilizar este ejemplo, en general, la función INIT en el probador se ejecuta en cada pase?

int OnInit()
{
   MINLOT = MarketInfo(Symbol(),MODE_MINLOT);
   MAXLOT = MarketInfo(Symbol(),MODE_MAXLOT);  
   //double vbid    = MarketInfo(Symbol(),MODE_BID); 
   //double vask    = MarketInfo(Symbol(),MODE_ASK); 
   vpoint  = MarketInfo(Symbol(),MODE_POINT); 
   vdigits = (int)MarketInfo(Symbol(),MODE_DIGITS); 
   
   if(Digits==5 || Digits==3)
     {
      StopLoss = StopLoss*10;       
      slippage = slippage*10;
      TakeProfit = TakeProfit*10;   
      TralingStop = TralingStop * 10;
      DELTA = DELTA*10; 
      SPREAD_MAX = SPREAD_MAX*10;      
     }
     
//   --------------------------------------------------------------
 switch (signal_period)
  { 
   case 0:            ПЕРИОД_ДИАПАЗОНА = 0;
                      ПЕРИОД_СТАРШЕГО_ДИАПАЗОНА = 0;
                      break;
//  --------------------------------------------------------------- 
   case 1:            ПЕРИОД_ДИАПАЗОНА = PERIOD_M1;
                      ПЕРИОД_СТАРШЕГО_ДИАПАЗОНА = PERIOD_M5;
                      break;
//  ---------------------------------------------------------------
   case 2:            ПЕРИОД_ДИАПАЗОНА = PERIOD_M5;
                      ПЕРИОД_СТАРШЕГО_ДИАПАЗОНА = PERIOD_M15;
                      break;
//  ---------------------------------------------------------------
   case 3:            ПЕРИОД_ДИАПАЗОНА = PERIOD_M15;
                      ПЕРИОД_СТАРШЕГО_ДИАПАЗОНА = PERIOD_M30;
                      break;
//  ---------------------------------------------------------------
   case 4:            ПЕРИОД_ДИАПАЗОНА = PERIOD_M30;
                      ПЕРИОД_СТАРШЕГО_ДИАПАЗОНА = PERIOD_H1;
                      break;
//  ---------------------------------------------------------------
   case 5:            ПЕРИОД_ДИАПАЗОНА = PERIOD_H1;
                      ПЕРИОД_СТАРШЕГО_ДИАПАЗОНА = PERIOD_H4;
                      break;
//  --------------------------------------------------------------- 
   case 6:            ПЕРИОД_ДИАПАЗОНА = PERIOD_H4;
                      ПЕРИОД_СТАРШЕГО_ДИАПАЗОНА = PERIOD_D1;
                      break;
//  --------------------------------------------------------------- 
   case 7:            ПЕРИОД_ДИАПАЗОНА = PERIOD_D1;
                      ПЕРИОД_СТАРШЕГО_ДИАПАЗОНА = PERIOD_W1;
                      break;
      
   case 8:            ПЕРИОД_ДИАПАЗОНА = PERIOD_W1;
                      ПЕРИОД_СТАРШЕГО_ДИАПАЗОНА = PERIOD_MN1;
                      break;   
                                      
   case 9:            ПЕРИОД_ДИАПАЗОНА = PERIOD_MN1;
                      ПЕРИОД_СТАРШЕГО_ДИАПАЗОНА = PERIOD_MN1;
                      break;             

 //  --------------------------------------------------------------- 
    default: 
    {
      Print(" не соответствует signal_period для торгов "); 
      return(0);
    }  
 }                

iTmfrm = ПЕРИОД_ДИАПАЗОНА;
 
 
     
   Print(" vpoint = ", vpoint," vdigits = ", vdigits); 
   Print(" MAXLOT = ", MAXLOT," MINLOT = ", MINLOT); 
   Print (" STOPLEVEL  = ", MarketInfo(Symbol(),MODE_STOPLEVEL));
   Print (" SPREAD     = ", MarketInfo(Symbol(),MODE_SPREAD));
   return(INIT_SUCCEEDED);
}
//--------------------------------------------------------------------
void OnTick()
{
                                 
   
   if(iTime(Symbol(),ПЕРИОД_ДИАПАЗОНА,0) == prevtime) return;            //ждем нового бара на текущем таймфрейме
      prevtime = iTime(Symbol(),ПЕРИОД_ДИАПАЗОНА,0);                     //если появился новый бар на текущем графике, то включаемся 
 


// -------------------   РАСЧЕТ ИНДИКАТОРОВ    ---------------------------------------
  
   MacdCurrent =iMACD(NULL,ПЕРИОД_ДИАПАЗОНА,12,26,9,PRICE_OPEN,MODE_MAIN,0);
   MacdPrevious=iMACD(NULL,ПЕРИОД_ДИАПАЗОНА,12,26,9,PRICE_OPEN,MODE_MAIN,1);
  // SignalCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);
  // SignalPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);
   MaCurrent =iMA(NULL,ПЕРИОД_ДИАПАЗОНА,MATrendPeriod,0,MODE_EMA,PRICE_OPEN,0);
   MaPrevious=iMA(NULL,ПЕРИОД_ДИАПАЗОНА,MATrendPeriod,0,MODE_EMA,PRICE_OPEN,1); 
   
   MaCurrent_СТАРШЕГО =  iMA(NULL,ПЕРИОД_СТАРШЕГО_ДИАПАЗОНА,MA_СТАРШЕГО_ТФ,0,MODE_EMA,PRICE_OPEN,0);
   MaPrevious_СТАРШЕГО = iMA(NULL,ПЕРИОД_СТАРШЕГО_ДИАПАЗОНА,MA_СТАРШЕГО_ТФ,0,MODE_EMA,PRICE_OPEN,1);                        

  // ------------------------------------------------------------------------------------ 
 
Roman Shiredchenko:

Colegas, cómo comprobar mediante programación el TF en el que se ejecuta el Asesor Experto tanto para probar como para operar, por ejemplo para

para obtener los valores de los indicadores de la siguiente TF

Quiero utilizar este ejemplo. ¿La función INIT en el probador se ejecuta en cada pasada?


Así es como la función se llama Period(), también hay una variable que almacena el plazo.

 
Seric29:

Así es como la función se llama Period(), y también hay una variable que almacena el plazo.

Gracias. Echaré un vistazo...
 
Seric29:

¿Es posible hacer esto o no, lo he ejecutado con un error y no es posible hacer esto?

La ejecución no puede ser perdonada.

¿Qué tipo de error?

 
Hace 1,5 meses que no comercio, estoy conectado a Mt5 y hay una conexión que necesita ser restaurada ?
Archivos adjuntos:
 
Supongamos que me he excedido en la aceptación de un trabajo como autónomo y ahora el contratista tiene un objeto vencido. ¿se puede arreglar? ya ha sido aceptado.
 
Zlaya_budka:
Supongamos que me he excedido en la aceptación de un trabajo como autónomo y ahora el contratista tiene un objeto vencido. ¿se puede arreglar? ya ha sido aceptado.

no puedes.

 
Artyom Trishkin:

No se puede.

Bueno, entonces lo añadiré a la revisión.

 
Zlaya_budka:

Bueno, lo añadiré a la revisión.

Eso no cambiará las estadísticas.