Errores, fallos, preguntas - página 2908

 

Si hay un hilo más apropiado para las preguntas sobre la base de código, mueva la pregunta allí. Estos "errores" son demasiado largos y probablemente no fueron leídos con mucha atención por MQ.

Es un problema. Quiero publicar un módulo para MQL Wizard que genere señales universales, es decir, personalizables por el usuario y que utilicen indicadores arbitrarios, en lugar del conjunto limitado que viene con la biblioteca estándar. He adjuntado el Asesor Experto generado usando el nuevo módulo como código mq5. Pero, por supuesto, no hay señales codificadas en el módulo, porque el objetivo del módulo es la personalización. Como resultado, el Asesor Experto no comercia ni se verifica automáticamente.

¿Cuáles son las opciones para resolver el problema?

 
Stanislav Korotky:

Si hay un hilo más apropiado para las preguntas sobre la base de código, mueva la pregunta allí. Estos "errores" son demasiado largos y probablemente no fueron leídos con mucha atención por MQ.

Es un problema. Quiero publicar un módulo para MQL Wizard que genere señales universales, es decir, personalizables por el usuario y que utilicen indicadores arbitrarios, en lugar del conjunto limitado que viene con la biblioteca estándar. He adjuntado el Asesor Experto generado usando el nuevo módulo como código mq5. Pero, por supuesto, no hay señales codificadas en el módulo, porque el objetivo del módulo es la personalización. Como resultado, el Asesor Experto no comercia ni se verifica automáticamente.

¿Cuáles son las opciones para resolver el problema?

He obviado las órdenes de apertura del EA por tiempo, abriendo una orden con SL y TP en OnInit. en mt4. Pasé la convalidación hace medio año.

También he puesto la condición: Si está en el probador, abrimos un pedido, si no, lo omitimos. La validación se realiza en el probador.

 
Stanislav Korotky:

Si hay un hilo más apropiado para las preguntas sobre la base de código, mueva la pregunta allí. Estos "errores" son demasiado largos y probablemente no fueron leídos con mucha atención por MQ.

Es un problema. Quiero publicar un módulo para MQL Wizard que genere señales universales, es decir, personalizables por el usuario y con indicadores arbitrarios, en lugar del conjunto limitado que viene con la biblioteca estándar. He adjuntado el Asesor Experto generado usando el nuevo módulo como código mq5. Pero, por supuesto, no hay señales codificadas en el módulo, porque el objetivo del módulo es la personalización. Como resultado, el Asesor Experto no comercia ni se verifica automáticamente.

¿Cuáles son las opciones para resolver el problema?

Pensé que sería posible hacer una envoltura de activación utilizando la directiva #property tester_set, pero resulta que no establece automáticamente estos parámetros por defecto, sino que sólo añade un elemento de menú al probador para la selección manual.

 
Stanislav Korotky:

Pensé que sería posible hacer una envoltura del lanzador utilizando la directiva #property tester_set, pero resulta que no establece automáticamente estos parámetros por defecto, sino que sólo añade un elemento de menú al probador para la selección manual.

También he probado la directiva #property tester_file "DefaultSettings.tpl". El archivo especificado se copia en el agente en la carpeta raíz, pero no se aplica automáticamente (al menos en lo que respecta a la configuración del Asesor Experto).

 
Aleksei Ostroborodov:
La valoración del producto, el número de votos y las opiniones no se muestran en el mercado, aunque sí están presentes en la descripción https://www.mql5.com/en/market/
Gracias por la solución al caso concreto.
¿Pero qué pasa con los demás productos? Tengo la misma situación con otros cuatro EAs. ¿Debo publicar un enlace cada vez?
 

El probador cambia a la pestaña "ajustes" durante la optimización de EA con cada nueva ejecución, no hay manera de controlar el estado de los agentes, sólo se escapa a otra pestaña. Me he dado cuenta hoy, actualmente build 2697.

Distribuye un número desigual de tareas a los agentes locales y ninguna de ellas se ejecuta



¿Alguna idea?

Как в MetaTrader 5 быстро разработать и отладить торговую стратегию
Как в MetaTrader 5 быстро разработать и отладить торговую стратегию
  • www.mql5.com
Скальперские автоматические системы по праву считаются вершиной алгоритмического трейдинга, но при этом они же являются и самыми сложными для написания кода. В этой статье мы покажем, как с помощью встроенных средств отладки и визуального тестирования строить стратегии, основанные на анализе поступающих тиков. Для выработки правил входа и...
 
¿Cómo obtengo el tick anterior a una hora determinada a través de CopyTicks?
 
fxsaber:
¿Cómo obtener el tick anterior a una hora determinada mediante CopyTicks?

Bueno, si las barras máximas de la ventana son ilimitadas,

probablemente sea algo así:

MqlTick Prev_Tick(ulong t) {  // t - время в миллисекундах
   MqlTick ticks[];
   int bar =iBarShift(_Symbol,PERIOD_M1,t/1000); 
   if (bar>=0 && CopyTicksRange(_Symbol,ticks,COPY_TICKS_ALL,iTime(_Symbol,PERIOD_M1,bar)*1000,t)>0) 
      return ticks[ArraySize(ticks)-1];
   else {
      MqlTick tick;  // если до заданного времени нет тиков возвращаем пустой тик.
      return tick;
   }
}

comprobado, pero no con sesgo.

Si se evitan las barras(iBarShift), si el tiempo cae en un fin de semana, encontrar el tick más cercano puede ser bastante costoso.


 
Nikolai Semko:

Si se hace sin barras (iBarShift), puede ser bastante costoso encontrar el tick más cercano si la hora cae en fin de semana.

Sí, la garrapata de la derecha es elemental, la de la izquierda es horrible.

 
fxsaber:

Sí, la garrapata de la derecha es elemental, la de la izquierda es horrible.

Sí.
Lo que falta es que en la función

int  CopyTicks( 
   string           symbol_name,           // имя символа 
   MqlTick&         ticks_array[],         // массив для приёма тиков 
   uint             flags=COPY_TICKS_ALL,  // флаг, определяющий тип получаемых тиков 
   ulong            from=0,                // дата, начиная с которой запрашиваются тики 
   uint             count=0                // количество тиков, которые необходимо получить 
   );

El parámetro count es int y esa función soportaría valores de conteo negativos, es decir, hacia atrás.