Preguntas para principiantes en MQL5. Los profesionales no pasan de largo. - página 2

 
Figar0:

El modelo de "todos los ticks" tiene sólo 14 veces más ticks que el modelo de "precio abierto" en H4. O estoy loco, o uno de los dos... Entonces, ¿el modelo de "precio abierto" simplemente no existe?

Echa un vistazo a "Los fundamentos de las pruebas en MetaTrader 5":

Sólo precios abiertos

En el modo de prueba "Sólo precios abiertos", la generación de ticks se realiza mediante el mismo algoritmo que para el modo "1 minuto OHLC". La única diferencia es que la función OnTick() en este modo se ejecuta sólo en los precios de apertura del período probado.

Por ejemplo, se prueba un Asesor Experto en EURUSD H1 en el modo "Sólo precios abiertos". Esto significa que la cantidad total de ticks (puntos de control) será la misma que en el modo "1 minuto OHLC", pero el manejador OnTick() es llamado sólo en la barraabierta de una hora. En otros ticks ("ocultos" de un Asesor Experto), se realizan las comprobaciones necesarias para la correcta comprobación:

  • cálculo de los requisitos de margen;
  • activación de Stop Loss y Take Profit;
  • activación de órdenes pendientes;
  • Eliminación de órdenes pendientes con tiempo vencido.

Si no hay posiciones abiertas u órdenes pendientes, no hay necesidad en estas comprobaciones de ticks ocultos, y el aumento de velocidad puede ser significativo. Este modo "Sólo precios de apertura" es bueno para probar estrategias que realizan operaciones sólo en la apertura de la barra y no utilizan órdenes pendientes, así como órdenes StopLoss, TakeProfit. Toda la precisión necesaria de las pruebas se mantiene para la clase de tales estrategias.

 
Rosh:

Echa un vistazo a este artículo Pruebas básicas en MetaTrader 5:

Está claro por qué, no está claro cómo serlo? Como dije enseguida - triste) el probador de MT5 en mi ejemplo es 70 veces más lento que el probador de MT4. ¿Dónde en mi MT4 era un día aquí será 10 semanas? Es genial, decidí acelerar) Es bueno que empecé con poco y no convertir todo lo bueno a MT5 para probar)

Perdona mi sarcasmo, entiendo que el probador de MT5 tiene muchas ventajas sobre MT4, pero esto se ve superado por la velocidad.

¿Tal vez deberíamos introducir un modelo similar a los "precios de apertura" de MT4? Que sea inexacto, que esté en rojo intenso con muchas advertencias, pero que sea más inmediato que en MT4. La precisión de la generación de secuencias de prueba en MT5, por ejemplo, es absolutamente innecesaria para los Asesores Expertos que operan en una apertura de barra sin TP y SL.

 
Figar0:

Está claro por qué, no está claro cómo serlo... Como dije de inmediato - triste) el probador MT5 en mi ejemplo es 70 veces más lento que el probador MT4. ¿Dónde en mi MT4 fue un día aquí será 10 semanas? Es genial, decidí acelerar) Es bueno que empecé con poco y no convertir todo lo bueno a MT5 para probar)

Perdona mi sarcasmo, entiendo que el probador de MT5 tiene muchas ventajas sobre MT4, pero esto se ve superado por la velocidad.

¿Tal vez deberíamos introducir un modelo similar a los"precios de apertura" de MT4? Que sea inexacto, que esté en rojo intenso con muchas advertencias, pero que sea más inmediato que en MT4. La precisión de la generación de secuencias de prueba en MT5, por ejemplo, es absolutamente innecesaria para los Asesores Expertos que operan en una apertura de barra sin TP y SL.

Si quieres precios de apertura rápidos, simplemente escribe un filtro en el código para que no se calcule con la condición de que no haya una nueva barra, la generación de ticks en sí tarda un tiempo mínimo, concretamente el historial de 3 años en cualquier TF (a precios de apertura) tarda entre 7 y 15 segundos.
 
Urain:
Si quieres rapidez por precios abiertos, sólo tienes que escribir un filtro en el código para que no haya cálculo en la condición hasta que aparezca una nueva barra, la generación de ticks en sí tarda un tiempo mínimo, concretamente el historial de 3 años en cualquier TF (por precios abiertos) tarda entre 7 y 15 segundos.
¿Qué tipo de filtro?) Tengo una comprobación de una nueva barra al principio de Ontick(). Pero incluso con este filtro mi optimización de EAs comparables en MT5 es 70!!! veces más lenta que en MT4, y no es cosa de risa... Tal vez me equivoqué en este trozo de código (nueva comprobación de la barra), por favor, mire la página de código anterior. ¿O tal vez sea sólo yo? ¿Tal vez debería intentar reinstalar mt5 por ejemplo?
 
Figar0:
¿Qué tipo de filtro?) Mi Ontick() comienza con una comprobación de una nueva barra. Pero incluso con este filtro de optimización de EAs comparables en MT5 es 70!!! veces más lento que en MT4, y no es gracioso ... Tal vez me equivoqué en este pedazo de código (comprobar la nueva barra), por favor, mira la página de código anterior. ¿O tal vez sea sólo yo? ¿Tal vez debería intentar reinstalar mt5 por ejemplo?

Crear una variable en cada tick, crear un array dinámico en cada tick, llamar a la función de copia, dos comprobaciones.

¿Por qué estas complicaciones?

Se declara una variable global que almacena el número de barras en la solicitud anterior y se comprueba si el número de barras ha cambiado, eso es todo.

int prevbars;

int OnInit()
  {
   prevbars=-100;// любое число которое не может вернуть Bars()  
   // ...
   return(0);
  }

void OnTick()
  {
   if(prevbars!=Bars(_Symbol,_Period))
     {
      prevbars=Bars(_Symbol,_Period);
      // ...
     }
  }

Si necesita comprobar si los datos están cargados, entonces coloque esta comprobación dentro del área protegida.

 
Urain:

Crear una variable en cada tick, crear un array dinámico en cada tick, llamar a la función de copia, dos comprobaciones.

¿Por qué estas complicaciones?

Declarar globalmente una variable que almacene el número de barras de la solicitud anterior, y comprobar si el número de barras ha cambiado, eso es todo.

Si quiere comprobar si los datos están cargados, entonces coloque esta comprobación dentro de la zona protegida.

Gracias. Pero, ¿realmente crees que esto puede cambiar fundamentalmente la situación)? Lo he comprobado, así que centavos, tal vez sólo dentro del margen de error... Se trata de la enorme diferencia en el volumen de ticks generados del modelo "Por precios de apertura" en MT4 2K y MT 1200K, ningún multinúcleo y nube ayudará. Ni siquiera sé si este modelo tiene "derecho" a ser llamado por precios de apertura, es como "1 tick de 14" modelo a juzgar por la relación. No sé de qué es culpable el modelo "Opening price" de MT4, no lo entiendo. No cabe duda de que había demanda, ¿por qué no dejarlo en su forma de MT4?

No sé por qué y para quién es tan evidente esta redundancia en las pruebas. ¿Necesitamos utilizar el comprobador para extraer beneficios del historial? Creo que el punto principal es que la precisión del probador no puede ser transferida a una cuenta real.

Por cierto, ¿quién sabe dónde esconder mi casilla favorita "Saltar resultados inútiles"? No pude encontrarlo.... ¿También ha caído en desgracia?)

 
Figar0:

Definitivamente estaba en demanda

... es y seguirá siendo.

Esperemos a que los archivos de la historia, al menos los de los minutos, sean descifrados.

 
TheXpert:

... utiliza y seguirá utilizando.

Esperemos a que los archivos de la historia, al menos los de los minutos, sean descifrados.

Sí, lo entiendo, lo resolveremos de alguna manera, sólo quería evitar la cruda... Los desarrolladores parecen estar dispuestos a hacer una plataforma utilizable y funcional => plataforma popular entre los comerciantes => plataforma popular entre las empresas de corretaje. Pero a veces creo que no lo miran desde el otro lado). Luego la negación categórica de la posibilidad de establecer spreads (como resultado, no se puede usar el 4 los fines de semana sin TakeMySpread), y ahora la introducción de una nube innovadora, agentes para agilizar el trabajo y como resultado la ralentización por 70 veces... No lo entiendo.
 
Los desarrolladores deben añadir otra opción de selección. Es decir, la antigua opción" Precios de apertura". Es suficiente para muchas ideas. He conseguido resultados idénticos en todos los modos en MT4. La nube se convertirá entonces en una supernube si se prueba en la variante antigua)).
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
 
joo:

Yo añadiría el mismo modo "por precio de apertura" pero con una opción para seleccionar un sub-marco temporal. Digamos que usted ha elegido el marco de tiempo de prueba H1, esto significa que usted puede seleccionar los modos de movimiento del precio en M1, M2, M5, M10 ..... М30. Entonces será muy flexible elegir entre "velocidad y precisión" (si no son pipsers, la mayoría preferirá la "velocidad").

¡Es una gran adición! También las barras de rango en el probador... Pero esa es otra historia)).