Mi descontento con el probador de estrategias. con los desarrolladores de MQL - página 2

 
Alexey Volchanskiy:

Renat, aprovecho para preguntar, ya que estás aquí. ¿Habrá servicios en la nueva construcción o se ha pospuesto por ahora?

Más tarde.

Mientras tanto, se pueden escribir fuentes de datos para instrumentos sintéticos sin ellos.

 
Renat Fatkhullin:

Más tarde.

Mientras tanto, puedo escribir fuentes de datos para herramientas sintéticas sin ellas.


Quiero el multithreading, esperaba que de alguna manera se pudiera hacer con los servicios. Personalmente, aún no necesito los flujos de datos.

 

Buenos días a todos.

No, este post no es una mierda como ha escrito otra persona.

Estoy con la sierra completa.

Entiendo que lo que escriben los programadores y dicen que funciona, pero lo siento.

Si todos trabajamos con datos erróneos en el corredor, me hago a la idea enseguida, mis resultados no son erróneos.

El caso es que, irónicamente, he estudiado en la universidad para ser ingeniero estadístico.

Así que para mi los datos erróneos son en general datos falsos en consecuencia decir al 99% que lo que veo funciona yo como hombre de estadística digo que no sé lo mismo dices tú y todos los que este post leen.

La solución es lo que escribí arriba.

Recoger garrapatas todo el mundo puede hacerlo con un simple robot/algoritmo.

El hecho es que ni en el 5 ni en el 4 MQL tenemos los datos del mercado, que deben ser utilizados para la prueba de la estrategia.

Para las estrategias a largo plazo, no creo que sea necesario un robot.

Para mí son garrapatas por garrapatas y tengo ideas interesantes para estudiar asc y bid por garrapatas.

Perdona por la larga respuesta y el tiempo, he estado muy ocupado.

Atentamente Ivan S.

 
Alexey Volchanskiy:

Lo escribí una vez, lo encontraré.

Para cincohttps://www.mql5.com/ru/code/18046

Para cuatrohttps://www.mql5.com/ru/code/18047

Para un seis,https://www.mql5.com/ru/code/.


Te sorprendería, pero es lo mismo para el 5 y el 4.

¡Puedo hablar por 4 y 5 al mismo tiempo!


No he leído el código completo de su algoritmo pero básicamente esta parte del código es para guardar pero ahora necesito reproducir este Ask y que el Probador de Estrategias lo emita.

Si hay algún programador que pueda hacer esto, ¡le escucho atentamente!

 
Renat Fatkhullin:
Si no me equivoco, en mt5 el probador está en ticks reales donde el bid/ask es real?

Renat ha comprobado que mql5 funciona igual que en 4 mql.

 
Ivan Stepanenko:

Renat ha comprobado que mql5 funciona igual que con 4 mql.


la cuestión está resuelta desde hace tiempo.

1. La cuestión ya ha sido resuelta. Para MQL5 las pruebas en garrapatas reales están disponibles desde hace aproximadamente un año. Si sólo hubieras estudiado el terminal...

2. En el caso de MQL4, puede utilizar sus propios archivos .fxt de garrapatas. La forma más sencilla es utilizar TickStory Lite, que descarga garrapatas reales de Ducas

 
Ivan Stepanenko:

renat comprobó que mql5 funciona de la misma manera que establece un spread fijo. como en 4 mql.


una mentira

Tomamos mi Asesor Experto para ticks guardando SaveTicks, el enlace a CodeBase que di arriba, y lo ejecutamos en el probador en modo"Cada tick basado en ticks reales". Veamos qué hay en el archivo de salida, en mi caso \Tester\Agent-127.0.0.1-3000\MQL5\Files\EURUSD_SaveTicks.csv

2017.11.28 09:11:16,1.1895,1.18952

2017.11.28 09:11:16,1.1895,1.18952

extensión 2

2017.11.28 09:11:26,1.18947,1.18951

2017.11.28 09:11:26,1.18947,1.18951

difusión 4
 

Mira el navegador de caracteres, y hay marcas para cualquier carácter.

Estos son los ticks reales utilizados en el probador.

 
Ivan Stepanenko:

Buenos días a todos.

No, este post no es una mierda como ha escrito otra persona.

Estoy con la sierra completa.

Entiendo que lo que escriben los programadores y dicen que funciona, pero lo siento.

Si todos trabajamos con datos erróneos en el corredor, me hago a la idea enseguida, mis resultados no son erróneos.

El caso es que, irónicamente, he estudiado en la universidad para ser ingeniero estadístico.

Así que para mi los datos erróneos son en general datos falsos en consecuencia decir al 99% que lo que veo funciona yo como hombre de estadística digo que no sé lo mismo dices tú y todos los que este post leen.

La solución es lo que he escrito arriba.

Recoger garrapatas todo el mundo puede hacerlo con un simple robot/algoritmo.

El hecho es que ni en el 5 ni en el 4 MQL tenemos los datos del mercado, que deben ser utilizados para la prueba de la estrategia.

Para las estrategias a largo plazo, no creo que sea necesario un robot.

Para mí son garrapatas por garrapatas y tengo ideas interesantes para estudiar asc y bid por garrapatas.

Perdona por la larga respuesta y el tiempo, he estado muy ocupado.

Atentamente Ivan S.

¿Y su gramática? // Sólo digo...

Si todo es tan grave, la solución a su pregunta es la siguiente:

Reunir las estadísticas, la historia de la cita y el trabajo, Alexey Volchansky ya ha encontrado todo para usted y dio enlaces arriba.

Sobre el Ask - puedes descargar el historial con Ask y Bids desde DucasCopy (búscalo en Google).

Buena suerte.
 

Aquí hay algunos artículos interesantes:


Además, en la beta de ayer de MetaTrader 5, a la que se puede actualizar desde MetaQuotes-Demo, hay un sistema de fórmulas completo de creación de símbolos personalizados.

Ahora puede crear instrumentos financieros sintéticos, es decir, instrumentos basados en uno o varios existentes. Sólo tiene que especificar la fórmula para calcular las cotizaciones, y la plataforma generará los ticks del instrumento sintético en el modo de tiempo real y creará su historial de minutos.

Cómo funciona

  • Se crea un símbolo sintético y se establece una fórmula para él.
  • La plataforma calculará sus ticks a un ritmo de 10 veces por segundo (y sólo si el precio de al menos un instrumento incluido en la fórmula ha cambiado).
  • La plataforma calculará el historial de las barras de minutos (de los últimos dos meses) basándose en las barras de minutos de los instrumentos incluidos en su fórmula. Todas las nuevas barras (actuales y posteriores) se construirán en tiempo real basándose en los ticks generados del instrumento sintético.
Por ejemplo, puede crear una herramienta que muestre el índice del dólar (USDX). Su fórmula será la siguiente:
50.14348112 * pow(ask(EURUSD),-0.576) * pow(USDJPY,0.136) * pow(ask(GBPUSD),-0.119) * pow(USDCAD,0.091) * pow(USDSEK,0.042) * pow(USDCHF,0.036)
Nota: la fórmula original del índice del dólar utiliza los pares USDEUR y USDGBP. Como la plataforma sólo tiene pares de divisas inversos, la fórmula de la herramienta sintética utiliza el grado negativo para ellos y el precio Ask en lugar del Bid.

En tiempo real, la plataforma calculará el precio del nuevo instrumento basándose en las cotizaciones de los otros seis instrumentos facilitados por su corredor. En la Observación del Mercado y en el gráfico, podrá ver cómo cambia su precio:



Cree un nuevo instrumento personalizado, abra su especificación y especifique la fórmula:




Para mayor comodidad, el editor de fórmulas muestra una lista de posibles opciones a medida que se introducen los nombres de los instrumentos y las funciones.

El cálculo de los ticks y las barras de minutos del instrumento sintético se iniciará cuando se añada a "Market Watch". Todos los símbolos necesarios para su cálculo se añadirán automáticamente al "Market Watch" de forma inmediata. Se añadirá un registro del inicio del cálculo en el registro de la plataforma: Símbolo sintético USDX: procesamiento iniciado.
  • El cálculo del instrumento sintético se detiene cuando se oculta de Market Watch.
  • Los símbolos que se utilizan actualmente para calcular los instrumentos sintéticos no pueden ocultarse de la vigilancia del mercado.

Cálculo de cotizaciones en tiempo real
Cada 100 ms (diez veces por segundo) se comprueba si el precio de al menos un instrumento implicado en la fórmula ha cambiado. Si es así, se calcula el precio del instrumento sintético y se genera un tick. El cálculo se realiza en paralelo en tres flujos para los precios Bid, Ask y Last. Por ejemplo, si se especifica EURUSD*GBPUSD en la fórmula, el cálculo del precio del instrumento sintético será el siguiente:

  • Oferta - bid(EURUSD)*bid(GBPUSD)
  • Ask - ask(EURUSD)*ask(GBPUSD)
  • Último - último(EURUSD)*último(GBPUSD)

La presencia de cambios se comprueba para cada precio por separado. Por ejemplo, si en el siguiente cálculo sólo ha cambiado el precio de oferta del instrumento inicial, entonces sólo se calculará el precio, donde hubo cambios, para el tick del instrumento sintético.

Construir la historia de las barras de minutos
Además de recoger los ticks en tiempo real, la plataforma también crea un historial de minutos de un instrumento sintético. Así, un operador puede ver sus gráficos como si fueran instrumentos normales y realizar un análisis técnico sobre ellos utilizando objetos e indicadores.

En cuanto el operador añade un instrumento sintético a la Vigilancia del Mercado, la plataforma comprueba si hay un historial de minutos calculado para él. Si no, se creará para los últimos 60 días, que son unos 50.000 bares. Si las barras máximas de la ventana en la configuración de la plataforma tienen un valor inferior, este es el límite que se utilizará.

Si algunos de los bares de este periodo ya están construidos, la plataforma creará otros nuevos. Un historial más profundo se crea sólo cuando se intenta ver el marco temporal correspondiente en el gráfico (si se desplaza hacia atrás o se solicita el historial desde el programa MQL5).

El historial de las barras de minutos de un instrumento sintético se calcula a partir de las barras de minutos (no de los ticks) de los instrumentos incluidos en su fórmula. Por ejemplo, para calcular el precio de la barra de minutos abierta de un instrumento sintético, la plataforma toma los precios de los instrumentos abiertos incluidos en su fórmula. Los precios de Máximo, Mínimo y Cierre se calculan de la misma manera.

Si no tiene una barra de minutos en la fórmula para un símbolo, la plataforma calculará el precio de cierre de la barra anterior. Por ejemplo, puede utilizar tres símbolos: EURUSD, USDJPY y GBPUSD. Si el USDJPY no tiene una barra de minutos correspondiente a las 12:00, se utilizarán los siguientes precios para el cálculo:

  • Para la apertura - EURUSD abre 12:00, USDJPY cierra 11:59, GBPUSD abre 12:00
  • Para los máximos - EURUSD máximo 12:00, USDJPY cierre 11:59, GBPUSD máximo 12:00
  • Para los mínimos - EURUSD mínimo 12:00, USDJPY mínimo 11:59, GBPUSD mínimo 12:00
  • Para el cierre - EURUSD cierre 12:00, USDJPY cierre 11:59, GBPUSD cierre 12:00

Si todos los símbolos de la fórmula no tienen una barra de minutos, no se calculará la barra de minutos sintética correspondiente.

Construcción de nuevos minibares
Todas las nuevas barras (la actual y la siguiente) en la herramienta sintética se crean en base a los ticks generados. El precio al que se construyen las barras depende del parámetro "Construcción de gráficos" del pliego de condiciones:





Qué operaciones se pueden utilizar en la fórmula de la herramienta
Puede utilizar los datos de precios así como algunas propiedades de los símbolos disponibles (proporcionados por su corredor) en su fórmula. Para ello, especifique:

  • Nombre del símbolo - dependiendo del precio del símbolo sintético, la fórmula utilizará el precio de compra, venta o último del símbolo especificado. Por ejemplo, si especifica EURUSD*GBPUSD, el precio de oferta se calculará como Bid(EURUSD)*bid(GBPUSD), y el precio de demanda - como Ask(EURUSD)*ask(GBPUSD).
  • Bid(nombre del símbolo) - para calcular el precio Bid de un símbolo sintético, se utilizará forzosamente el precio Bid del símbolo especificado. En realidad, esta variante corresponde a la anterior (sin especificación de un tipo de precio).
  • Ask(nombre del símbolo) - el precio Ask del símbolo especificado se utilizará forzosamente para el cálculo del precio Bid del instrumento sintético. Por el contrario, para calcular el precio de venta se utilizará el precio de compra del símbolo especificado. Para calcular el Último precio, se utilizará el Último precio del símbolo especificado. Por ejemplo, si especifica Ask(EURUSD)*GBPUSD, el cálculo será el siguiente:
    • Oferta = ask(EURUSD)*bid(GBPUSD)
    • Ask = bid(EURUSD)*ask(GBPUSD)
    • Último = último(EURUSD)*último(GBPUSD)
  • last(nombre del símbolo) - El último precio del símbolo especificado se utilizará para calcular todos los precios sintéticos del símbolo (Bid, Ask y Last). Por ejemplo, si especifica last(EURUSD)*GBPUSD, el cálculo será el siguiente:
    • Oferta = last(EURUSD)*bid(GBPUSD)
    • Ask = last(EURUSD)*ask(GBPUSD)
    • Último = último(EURUSD)*último(GBPUSD)
  • volumen(Nombre del símbolo) - la fórmula utilizará el volumen del tick para el símbolo especificado. Asegúrese de que la información sobre el volumen se traduce para el instrumento especificado.
  • point(nombre del símbolo) - el tamaño de la variación mínima del precio de un instrumento especificado se utilizará en la fórmula.
  • digits(nombre del símbolo) - el número de decimales del precio del símbolo especificado será sustituido en la fórmula.

Si un símbolo tiene un nombre complejo (contiene guiones, puntos, etc.) debe ir entre comillas. Por ejemplo, "RTS-6.17".
En la fórmula se pueden utilizar operaciones aritméticas: suma (+), resta (-), multiplicación (*), división (/) y resto de la división (%). Por ejemplo, EURUSD+GBPUSD significa que el precio se calcula como la suma de EURUSD y GBPUSD. También puede utilizar un menos unario en la fórmula para cambiar el signo, por ejemplo: -10*EURUSD.

Hay una prioridad para las operaciones aritméticas:

  • Primero se realizan las operaciones de multiplicación, división y resto, y después las operaciones de suma y resta.
  • Las operaciones se realizan de izquierda a derecha. Si en una fórmula se utilizan varias operaciones que tienen la misma prioridad (por ejemplo, la multiplicación y la división), se ejecutará primero la operación de la izquierda.
  • Los corchetes ( y ) pueden utilizarse para cambiar la prioridad de las operaciones. Las expresiones entre paréntesis tienen la máxima prioridad en el cálculo. El principio de izquierda a derecha también se aplica a ellos: las expresiones entre paréntesis a la izquierda en una fórmula se calculan primero.

También se pueden utilizar constantes en la fórmula:

  • Numérico (entero y real con un punto). Por ejemplo, EURUSD*2+GBPUSD*0,7.
  • Las propiedades de los símbolos _Dígitos y _Punto. Sustituyen las propiedades del símbolo personalizado de la especificación en la fórmula. Dígitos - número de decimales en el precio del símbolo, Punto - tamaño del cambio mínimo del precio del símbolo.

También se pueden utilizar en la fórmula todas las funciones matemáticas soportadas en MQL5, excepto MathSrand, MathRand y MathIsValidNuber. Sólo se utilizan nombres cortos para todas las funciones: fabs(), acos(), asin(), etc.