Entradas Populares

La Elección Del Editor - 2019

Preparación de datos históricos 100% de calidad para probar estrategias y asesores

En el campo de la negociación en los mercados financieros, es imposible llegar a una conclusión sobre la operabilidad o la inadecuación de un método o sistema en particular sin datos de calidad para pruebas y optimización. Para desarrollar sistemas comerciales realmente rentables, un operador definitivamente necesitará al menos datos históricos de precios de alta calidad para los pares de divisas de interés.

Como regla general, con la mayoría de los corredores, la calidad de las cotizaciones varía del 90 al 96%. El terminal MT4 no es una herramienta muy precisa, por lo que agregar 4-10% más de imprecisión no es nuestra opción. Nuestra elección son cotizaciones de 100% de calidad. Dónde y cómo obtenerlos, cómo procesarlos y obtener un resultado garantizado de alta calidad, en nuestro material de hoy.

Tipos de datos históricos

El principal tipo de datos históricos, sin los cuales simplemente no se puede probar, es, por supuesto, los datos de precios. Los datos históricos de precios se pueden obtener para diferentes períodos y de diferentes fuentes. Los más comunes son para gráficos diarios, de minutos y de tic. Como regla general, el historial es más profundo para los gráficos diarios: se puede obtener a partir de 1971 (el terminal MetaTrader no admite un historial más largo). Los datos por minuto, como regla, llegan a un máximo entre 1999 y 1998, y las garrapatas generalmente no son anteriores a 2004-2007.

Como regla general, para cualquier período, los datos son los siguientes: fecha de vela, hora, precio de apertura, precio más alto, precio más bajo, precio de cierre y volumen de ticks. En algunas fuentes de cotizaciones, el volumen de tick puede no estar disponible. Además, para períodos desde D1 y superiores, a menudo no indican la hora en que se abre la vela o no indican los precios máximos y mínimos. Las cotizaciones de marca difieren de las cotizaciones convertidas en un período determinado. En dichas cotizaciones puede encontrar la fecha, el tiempo exacto en segundos, los precios de compra y oferta.

Además del precio, a veces se pueden necesitar algunos datos específicos, por ejemplo, sobre la producción de indicadores macroeconómicos, como la tasa de inflación, los precios de la vivienda o los datos de desempleo de ciertos países, así como incluso datos más específicos, como la actividad solar o las opiniones de los comerciantes con respecto a un instrumento en particular.

Datos de escala de tiempo

Los datos pueden usarse en su marco de tiempo natural o recalcularse a una escala de tiempo diferente. Dependiendo de la estrategia, puede necesitar diferentes períodos de tiempo, desde M1 o incluso ticks, hasta D1 o MN1. A partir de datos de plazos cortos, puede hacer que los datos sean más largos, pero no al revés. Por ejemplo, a partir de los datos del período M1, podemos obtener fácilmente tanto M5 como H1 y D1. Por eso es importante tener una base de datos de calidad de cotizaciones exactamente M1.

Pero M1 no es la escala más pequeña, porque también hay datos de marca. Un tic no es una unidad de tiempo constante, a veces los tic son muy frecuentes, especialmente durante los comunicados de prensa, y a veces, por ejemplo, en la noche, tienen grandes intervalos de tiempo entre sí. El historial de ticks se necesita principalmente para probar asesores de noticias, estrategias hft (que no se pueden usar en la plataforma MT4 o MT5), así como para asesores que usan varios cálculos dentro de las velas.

Pero para tales asesores, la influencia de los corredores es demasiado grande, como escribí en este artículo. Si el asesor no da medio punto, no hay necesidad de probarlo en los datos de marca, es muy largo y consume muchos recursos. Además, los datos de tick gratuitos que se pueden encontrar en la red no son de la mejor calidad y durante un período no demasiado largo, y los pagos cuestan un dinero bastante decente; está lejos de ser un hecho que tales inversiones valdrán la pena.

Por lo tanto, no debe perseguir la súper precisión, el probador de estrategia en sí mismo dará un error que elimina todos los esfuerzos. Es mejor abastecerse del historial de calidad del marco de tiempo de minutos, el marco de tiempo diario y varios datos específicos que encontrará: nunca puede estar seguro de lo que será útil y lo que no.

¿Cuántos datos necesitas? Cuanto más, mejor. El hecho es que cuantas más transacciones haya en la prueba, menor será el riesgo de "ajuste", cuanto más estadísticamente significativo sea el resultado y mayor será la probabilidad de que su sistema continúe funcionando de la misma manera en el futuro como lo hizo en el pasado. Por lo tanto, es muy recomendable utilizar todo el historial disponible.

Selección de marco de tiempo

En cuanto al plazo utilizado para el trabajo, es cuestión de gustos. Cuando se trabaja en períodos bajos como M5 o M15, las pruebas requieren mucho tiempo, además, tales sistemas son muy exigentes en cuanto a la calidad de las cotizaciones, dependen mucho de los intermediarios y el resultado final se ve afectado de manera decente por costos tales como spread, swaps, deslizamientos, comisiones.

Por otro lado, el comercio con dichos sistemas es más dinámico, ya que pueden realizar docenas de transacciones por día. Debido a las paradas relativamente cortas, puede sobrevivir con un depósito de solo $ 100. Como resultado, el crecimiento de los depósitos suele ser más rápido que con los sistemas a largo plazo. Aunque a menudo es más corto, cuanto más bajo es el período del sistema, más resulta, por regla general, menos estable.

Al trabajar en períodos altos, por el contrario, los sistemas son más estables y tenaces, dependen débilmente del corredor y de los costos de negociación, no son muy exigentes con la calidad de las cotizaciones, y las pruebas se pueden hacer muy rápidamente. Sin embargo, el crecimiento del depósito es bastante largo, ya que cada transacción puede durar semanas.

Otro problema: para sistemas a largo plazo, se necesita una cantidad suficientemente grande de datos históricos. Además, en los mismos gráficos diarios, incluso las paradas de dos pies de ATR son a veces bastante grandes, y $ 2,000 puede no ser suficiente para mantener una administración adecuada del dinero. Además, cuando trabajan en marcos de tiempo altos, como regla general, usan carteras del sistema para suavizar la curva de rendimiento. Sin embargo, resistir psicológicamente docenas de transacciones abiertas, colgando hacia arriba o hacia abajo durante semanas, es bastante difícil.

Elegir un marco de tiempo sigue siendo un asunto personal para cada operador. Cualquiera de ellos tiene sus pros y sus contras, así que solo decide qué te molesta más.

Calidad de los datos históricos.

Una de las razones comunes para obtener resultados falsos cuando se prueba un Asesor Experto en el probador de estrategias del terminal MetaTrader 4 es un problema con la integridad de las citas históricas. Por varias razones, en la historia de los precios disponibles en la terminal, puede haber "agujeros" que conducen a lagunas en el flujo de precios que no tienen nada que ver con la realidad. Huelga decir que no tiene mucho sentido probar al asesor con esas citas.

Los datos incorrectos pueden llevar a cualquier análisis del sistema a un estado de caos completo, dar conclusiones poco rentables a los sistemas permanentes o, lo que es peor, dar luz verde a los sistemas que no valen la pena. Por lo tanto, vale la pena abordar los datos históricos con toda responsabilidad: esta es la base sobre la cual se construirá todo su comercio en el futuro. Una base histórica deficiente puede conducir sistemáticamente a errores y, como resultado, a la pérdida de mucho tiempo y dinero, y no entenderá cuál es el problema y por qué sus sistemas que hacen pruebas no quieren funcionar en la vida real.

Los errores de datos pueden tomar varias formas diferentes. Muy a menudo, al operar, hay ticks con precios claramente erróneos, que son simplemente imposibles. Por ejemplo, el precio por un segundo despega hacia el cielo y luego, en el siguiente segundo, regresa. Esta es la llamada "horquilla", que casi todos los corredores pecaron hace solo unos años. Tal error puede llevar a un acuerdo con grandes ganancias o pérdidas. Y si hay muchos de estos "pines" en los datos, entonces la prueba de cualquier sistema estará lejos de la realidad. Esto es especialmente cierto para las pruebas de varias estrategias de cuadrícula, donde la horquilla es un drenaje garantizado del depósito y, como resultado, la prueba no pasa el filtro.

Más comunes y menos notables son pequeños errores comunes en los niveles de precios. Por ejemplo, en lugar del precio de cierre de 1.4378, tenemos un precio de 1.4387. Naturalmente, tal error es difícil de notar, especialmente si se encuentra en un marco de tiempo alto. Afortunadamente, la mayoría de las veces no afectan en gran medida los resultados de la prueba, aunque hay excepciones. Por lo tanto, vale la pena consultar las cotizaciones de varios proveedores diferentes para obtener los precios más confiables.

Bueno, el error más común es omitir datos. Por alguna razón, un cierto período de tiempo no se registra en la base de datos, formando saltos de cotización. Muy a menudo, este problema ocurre durante las vacaciones, en la víspera de Año Nuevo y por la noche. Cuanto "más agudo" sea el gráfico, menor será la realidad en las pruebas. Este problema también se aborda rellenando los vacíos de otras fuentes.

Como ya entendió, al evaluar a los asesores, la cuestión de crear un archivo de presupuestos de calidad actúa como la tarea número uno. Pero, desafortunadamente, el terminal MT4 no tiene herramientas integradas para verificar la integridad de los datos históricos, por lo que debe usar herramientas auxiliares que llenen esta brecha molesta al equipar la plataforma.

¿Qué, en mi opinión, deberían ser datos históricos de alta calidad?

Los datos históricos cualitativos se forman a partir de barras del período M1. Todo lo anterior nos aleja aún más de la precisión de reproducir el comportamiento del asesor. Al formar el historial de citas, es mejor usar citas M1. Además, idealmente, los asesores de prueba se realizan mejor con cotizaciones M1. En este caso, debe asegurarse de que los períodos estén fijos en el propio código del asesor y que el período predeterminado (Período ()) no esté establecido, de lo contrario no obtendrá los resultados con los que contaba, porque el algoritmo no funcionará según lo planeado.

También vale la pena recordar que el asesor simplemente está obligado a trabajar precisamente en la apertura de la vela. Para hacer esto, como regla general, se prescribe una función especial en el código del asesor, que permite operar solo cuando se abre una nueva vela de un período de tiempo determinado. Para realizar pruebas confiables, no cerrando una vela, necesitará ticks de alta calidad y un software especial que le permita realizar tales pruebas. Si no tiene esto, la terminal misma inventará lo que estaba sucediendo dentro de las velas. Entiendes, él puede inventar cualquier cosa.

Dichos datos no tienen fallas significativas, es decir, los llamados "agujeros". Depende principalmente del proveedor de cotizaciones: qué tan bien funcionó el equipo que almacena los datos históricos.

Dichas citas no tienen omisiones de una o varias barras. Idealmente, debe tener cotizaciones 100% completas (que no debe confundirse con la calidad del modelado). El 100% de la historia completa de las citas de minutos, en mi opinión, es necesario porque los períodos de tiempo posteriores se forman a partir de un minuto y la ausencia de algunas barras de minutos finalmente genera barras "curvas" de períodos de tiempo más altos.

Quiero señalar de inmediato que pocos DC tienen su propio largo historial de citas en el dominio público, especialmente con respecto a las citas de plazos pequeños. Hablamos sobre dónde obtener datos históricos en este artículo.

Análisis de agujeros en el historial de cotizaciones

El script history_data_analysis lo ayudará a descubrir la calidad del gráfico.

Este código identifica barras faltantes ("agujeros") y espacios (agujeros grandes) en los datos del historial, determina su tamaño, duración y espacio. Funciona en todos los instrumentos y está diseñado para gráficos intradía, por lo que el plazo se limita al período H4.

El análisis solo tiene en cuenta los fines de semana (sábado y domingo - 48 horas), los momentos restantes que el código considera agujeros o huecos. Para la conveniencia de trabajar en el gráfico, el código proporciona un filtro en el que puede establecer la cantidad de barras faltantes en los marcos temporales (M1,5,15,30), que el código ignorará como agujeros, la cantidad de barras faltantes (el valor mínimo), que el código consideraría una brecha (por 20 barras por defecto), así como el número de pips faltantes que el código ignorará como un espacio. Después de ejecutar el script y finalizar su trabajo, verá un mensaje:

Por ejemplo, probé la calidad de las cotizaciones para el par EURUSD Alpari:

Bueno, por ejemplo, hagamos la misma prueba para las cotizaciones Dukascopy EURUSD M1:

Como puede ver, el uso de los datos de Dukascopy para las pruebas es el mejor: la calidad general de las cotizaciones aquí es del 99,55%. Solo 0.45% de pases y huecos, un muy buen resultado. Sin embargo, todavía tenemos 4,662 brechas, casi veinticinco mil barras y faltan hasta 39,740 puntos. Y, por lo tanto, para las pruebas más confiables, este problema deberá corregirse.

Llevar la calidad de las cotizaciones al 100%

1. Recomiendo el uso de datos de Ducaskopy para el historial básico de citas, hay pocos agujeros en ellos y luego tendrán que "parchearse" menos. Para hacer esto, puede usar cualquier programa auxiliar que descargue los ticks de Ducaskopy. Recomiendo Tickstory Lite.

2. Después de descargar ticks en el programa Tickstory Lite, haga clic derecho en el par de divisas que le interesa y seleccione la opción "Exportar a archivo":

3. Complete los campos con la configuración:

4. Abra el directorio de datos:

5. En el directorio de datos encontramos la carpeta de historial, luego encontramos la carpeta deseada por el nombre de nuestro servidor:

6. Elimine todos los archivos hst del par de divisas deseado.

7. Exporte las cotizaciones descargadas al terminal presionando F2, seleccionando el par de divisas deseado, período M1 y haciendo clic en el botón "Importar":

8. Abra el gráfico de un par de divisas del período M1.

9. Realice una prueba de calidad utilizando el script history_data_analysis. Usando el archivo de texto obtenido como resultado de las pruebas, necesita encontrar los lugares más críticos. Luego se eliminan estos lugares críticos. Los repondremos más tarde con citas de otras fuentes (ponga los llamados "parches").

Quiero llamar su atención por separado sobre la falta de citas durante las vacaciones de Año Nuevo: muchos corredores simplemente no trabajan en este momento, y aquellas fuentes cuyos corredores funcionan parecen un tamiz en la víspera de Año Nuevo y puede ser muy difícil encontrar un historial adecuado para este período . Por lo tanto, nada malo sucederá si faltan un par de días en la víspera del año nuevo: debe eliminarse por completo, de lo contrario, los asesores en las pruebas pueden mostrar resultados incorrectos.

10. Dónde obtener materias primas para parches: ya lo hemos discutido en este artículo. Necesitará una, tal vez dos fuentes; todo depende del caso específico.

11. En primer lugar, sus datos para parches deben convertirse al formato csv, si los tiene en formato hst, y el script hst2csv le ayudará.

12. Luego, estos datos de otras fuentes deben llevarse a la hora correcta, es decir, establecer el mismo GMTOffset para ellos que su corredor y cotizaciones corregidas. No pase por alto, esta es información sobre cuál es exactamente el cambio relativo a GMT para una fuente de cotización en particular, si alguna vez ha cambiado y si se utilizó la conversión de horario de invierno / verano. Por ejemplo, las cotizaciones de Alpari tenían GMT + 2 antes de 2011 y GMT + 3 después de 2011.

Para hacer esto, necesitará una terminal separada. Es necesario descargar citas de cada fuente, cambiar el tiempo GMT usando el script GMTconverter, que escribí cuando descubrí que por alguna razón no hay tales scripts en la red. Puede encontrar / descargar el script al final del artículo. Además, al importar cotizaciones descargadas a un terminal separado, puede especificar el GMT deseado, pero a veces esto no funciona. Para especificar el GMT deseado al importar cotizaciones, debe especificar el "Shift" en horas. Luego, estas citas deben exportarse haciendo clic en el botón Exportar. Por lo tanto, las cotizaciones se guardarán en el formato deseado y con el GMT que necesite.

13. Después de ajustar las cotizaciones a la forma deseada, simplemente abra nuestro archivo con nuestra prueba de calidad y la fuente de los parches que recibimos.Además, debe abrir los archivos en el Bloc de notas, ya que Excel puede no abrir todo el archivo si hay muchas historias.

14. Encontramos cada uno de los segmentos problemáticos en el archivo de parche y transferimos las piezas a un archivo de Bloc de notas abierto por separado:

15. Si en una de las fuentes no hay suficientes datos, tratamos de encontrar en otras fuentes.

16. A continuación, guarde el archivo preparado en formato csv. Simplemente cambie la extensión del archivo de txt a csv.

17. Importar a la terminal para cotizaciones de Ducascopy. Las secciones eliminadas se restaurarán automáticamente del archivo preparado por nosotros.

18. Después de un trabajo largo y minucioso en la importación de parches, debe cerrar el terminal y abrirlo nuevamente para que se cargue el historial de parches. Nuevamente, dibuje el script history_data_analysis y observe el resultado de nuestro trabajo.

19. Ahora llega el turno del segundo script AllMinutes_Step1. Que esta haciendo el El hecho es que esas barras de minutos en las que no pasó nada y no hubo precios, la terminal se salta automáticamente. El script proporciona relleno técnico de las barras omitidas para garantizar la generación correcta posterior de velas de períodos de tiempo más altos. Por lo tanto, colóquelo en el gráfico y active la pestaña "Expertos". Necesitamos esta pestaña para ver el mensaje sobre la finalización de este script y su breve informe.

20. Tan pronto como aparezca el mensaje sobre la finalización de la secuencia de comandos, debe abrir la programación fuera de línea (Archivo - Abrir fuera de línea - ALLEURUSD1):

21. Colocamos el primer script history_data_analysis en el gráfico abierto. Recibimos un informe al que volveremos un poco más tarde.

22. Luego, ejecute el tercer script, hst2csv. El hecho es que el script anterior en el curso de su trabajo no solo llenó todas las barras faltantes en el gráfico en modo fuera de línea, sino que también formó la misma base completa de citas en formato hst. El archivo se formó en la carpeta del historial y tiene el nombre "ALLEURUSD1". Ejecute el script history_data_analysis en un gráfico independiente. Ahora tendremos que formatear este archivo ALLEURUSD1.hst en un formato .csv manejable (en términos de cambios de tiempo), que el script hst2csv realmente hará.

23. Y ahora volviendo al informe realizado sobre la base del análisis del calendario autónomo. Esto es necesario para rastrear esos espacios mínimos que el script no puede notar. Esto no siempre sucede, pero a veces sucede. El guión encontró y llenó miles de bares solitarios, pero, por desgracia, podría haberse perdido algunos. Y por lo tanto, este defecto tendrá que repararse manualmente.

En principio, esto no es difícil: el informe de la tabla muestra las coordenadas específicas de estos pases. Por lo tanto, el trabajo es muy similar al que hicimos en el párrafo 14. En general, vamos a la carpeta "Archivos". Abra "ALLEURUSD1.csv" con el programa Bloc de notas. Usando la función de "búsqueda", nos encontramos en la fecha correcta. Completamos las barras perdidas con el último precio conocido, sin olvidar cambiar la hora de las barras.

24. Abra el archivo de cotizaciones (F2) en el terminal, elimine todo el historial de formato hst almacenado en él y luego cargue este nuevo archivo convertido. Cierre y abra la terminal nuevamente. Abrimos el gráfico, en nuestro caso EURUSD M1, y hacemos una medición de control con el script history_data_analysis en caso de que perdamos algo.

25. El asunto se deja a los pequeños: para el script period_converter_ALL. Con él, en general, todo es simple: arroje el gráfico y mire la esquina superior izquierda, mientras los números se ejecutan allí, el script aún funciona. Tan pronto como se detiene el movimiento en esa esquina, se completa el trabajo. Y al final, cambiamos secuencialmente todos los marcos de tiempo para que se carguen.

Conclusión

Eso es todo: en nuestro terminal ahora las cotizaciones son 100% de calidad. Puede obtener las pruebas más precisas y una buena garantía de la fiabilidad de los resultados, si hay marcos de tiempo auxiliares del período M1, que cubren el 100% del período de estudio.

Por lo tanto, la cuestión de las pruebas de calidad se convierte en una búsqueda de datos históricos detallados y el posterior ensamblaje de citas de la mejor calidad posible. En cualquier caso, si desea obtener resultados de prueba confiables, debe cuidar su propia base de datos de datos históricos de alta calidad.

Descargar un conjunto de scripts necesarios

Instrucciones para instalar scripts en MT4

Deja Tu Comentario