Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 77

 
FinEngineer: 2012.12.22 11:40:32 Pair_delta_RSI (EURGBP,M1) array out of range in 'Pair_delta_RSI.mq5' (92,37)
resulta que este error también aparece... es decir, hay dos errores...
Además, le preocupan dos errores: "datos calculados insuficientes" y "matriz fuera de rango )". Pero por alguna razón no has escrito nada sobre el segundo error (no has puesto un código de ejemplo con la línea 92), aunque lo has recalcado varias veces.
 
Yedelkin:

Introduzca el código correctamente.

Allí funcionaba bien ese "trozo de código responsable de la insuficiencia de datos". Y correctamente informó que cuando llega el primer tick, los datos para el RSI aún no son calculados por el terminal. Si no le gusta recibir mensajes de error, intente hacer lo mismo que arriba, es decir, comprobar los datos calculados no sólo en OnCalculate(), sino también en OnInit(). En otras palabras, intente esperar el cálculo de los datos para los indicadores técnicos seleccionados en OnInit() y luego pase al procesamiento de los ticks en OnCalculate() cuando se garantice el cálculo de los datos para los indicadores.

Añadiendo. Después de todo, la eliminación de una parte del código de comprobación no aumenta la cantidad de datos calculados del indicador :)

He insertado esta comprobación en la función OnInit, pero en esta función no sabemos qué es 'rates_total'... Aparece el error...'rates_total' - undeclared identifier... ¿Qué hacer?
 
Yedelkin:
También le preocupan dos errores: "datos calculados insuficientes" y "matriz fuera de rango". Pero por alguna razón no escribiste nada sobre el segundo error (no diste un ejemplo de código con la línea 92), aunque lo recalcaste varias veces.
int limit;
   if(prev_calculated==0)
      limit=0;
   else limit=prev_calculated-1;
//считаем индикатор дельта рси
   for(int i=limit;i<rates_total; i++)
      DeltaRSI_Buffer[i]=RSI1_Buffer[i]-RSI2_Buffer[i];
   return(rates_total);
Aquí está la línea 92 en alguna parte...aquí hay un fragmento de código...debe haber un error en alguna parte)
 
FinEngineer: He insertado esta comprobación en la función OnInit, pero en esta función no sabemos qué es 'rates_total'... sale el error...'rates_total' - undeclared identifier... ¿qué hacer?
¿Manejó el ejemplo de la función BarsCalculated() como se aconsejó anteriormente? No hay rates_total
 
FinEngineer en algún lugar de la línea 92... aquí hay un trozo de código... hay un error en alguna parte... resulta que)

Ya veo. En la línea

DeltaRSI_Buffer[i]=RSI1_Buffer[i]-RSI2_Buffer[i];
hay una salida fuera del conjunto. Y la salida está en RSI1_Buffer[i]. ...Es difícil responder todavía, no debería haber salida fuera del array.
 
Hola a todos ...quien me puede decir como quedaría el siguiente código en mql5 :
for (int i=3; i<Bars; i++)
{
Up=iFractals(NULL, 0, MODE_UPPER, i); if (Up>0) break;
}
 
i999i:
Hola a todos ...quien me puede decir como quedaría el siguiente código en mql5 :
for (int i=3; i<Bars; i++)
{
Up=iFractals(NULL, 0, MODE_UPPER, i); if (Up>0) break;
}

Este artículo es para ayudar.

Cambiar doble iFractals(string symbol, int timeframe, int mode, int shift) en cuatro a

double iFractalsMQL4(string symbol,
                     int tf,
                     int mode,
                     int shift)
  {
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   int handle=iFractals(symbol,timeframe);
   if(handle<0)
     {
      Print("Объект iFractals не создан: Ошибка ",GetLastError());
      return(-1);
     }
   else
      return(CopyBufferMQL4(handle,mode-1,shift));
  }

 
Pregunta sobre el probador de estrategias: necesito elegir un conjunto de parámetros con un porcentaje máximo de operaciones rentables, ¿cómo lo hago? El criterio de optimización "Balance + min DD" parece más o menos adecuado, pero el beneficio como multiplicador bloquea todo lo demás...
 
f2011:
Pregunta sobre el probador de estrategias: necesito seleccionar un conjunto de parámetros con un porcentaje máximo de operaciones rentables, ¿cómo puedo hacerlo? Creo que "Balance + min DD" es más o menos adecuado como criterio de optimización, pero el beneficio como multiplicador anula todo lo demás...

¿Qué tiene que ver esto con el balance y el porcentaje de operaciones con beneficios?

Creo que había un artículo, google "Cómo crear sus propios criterios para optimizar un robot de comercio site:mql5.com".

 
R0MAN:

¿Qué tiene que ver esto con el balance y el porcentaje de operaciones con beneficios?

Creo que había un artículo, google "Cómo hacer sus propios criterios de optimización para un robot de comercio site:mql5.com".


Lo he encontrado, gracias.

https://www.mql5.com/ru/articles/286

Создание собственных критериев оптимизации параметров эксперта
Создание собственных критериев оптимизации параметров эксперта
  • 2011.06.24
  • Dmitriy Skub
  • www.mql5.com
Терминал МetaTrader 5 дает новые возможности для оптимизации параметров создаваемых экспертов. Кроме уже имеющихся в тестере критериев оптимизации, разработчики получили инструмент для создания собственных критериев. Это открывает поистине безграничные возможности в тестировании и оптимизации экспертов. В статье рассматриваются практические способы построения таких критериев - как простых, так и достаточно сложных.