Haciendo un sistema de trading en Python para MT. - página 10

 
Yuriy Asaulenko:

No me dedico a la optimización ni a todo tipo de ajuste y selección de parámetros. Una metodología diferente, pero necesitas un entorno como MatLab, R, SciLab, etc. Python es igual de bueno.

Tampoco necesito 10^6 barras. Para todo - unos 6, máximo 9 meses en minutos es suficiente. Ahora la prueba es de 3 meses -2,5 m, aunque el sistema aún no es tan complicado.

El más largo es aprender ML, pero no hay nada mejor que Python, y aquí es sólo como un lenguaje de scripting. Digamos que la respuesta de la red neuronal de 5 capas, unas 60 neuronas - 3-5 ms.

Hasta ahora no veo ninguna confirmación real del alarmismo.

¡No, no estoy de ninguna manera tratando de asustar o incluso para espesar los colores, el hecho de que usted mismo escribe toda la infraestructura de análisis ya es - super!

Estás haciendo lo correcto, sólo estoy pensando en voz alta sobre lo que yo mismo he afrontado y tropezado, si no te importa no me meteré en el medio))

 
pantural:

No, no estoy tratando de asustar ni de pintar por encima, ¡el mero hecho de que escribas tú mismo toda la infraestructura analítica es súper!

Lo estás haciendo bien, sólo estoy pensando en voz alta sobre lo que he afrontado y tropezado yo mismo, si no te importa que salga del paso)).

Sí, está bien comunicarse. Las opiniones diferentes están bien. Los opositores siempre son buenos).

 
Yuriy Asaulenko:

Sí, nos comunicamos normalmente. Las opiniones diferentes están bien. Los opositores siempre son buenos).

De acuerdo. Pues bien, qué más se puede decir después de leer https://c.mql5.com/3/236/Public.zip ...

Ciertamente, me gustaría tener estructura y claridad, siempre y cuando el pitoniso trabaje en el "divide y vencerás".

Como mínimo, necesitamos una separación clara en algo así como "interfaces" de los módulos de alimentación de datos, su análisis/previsión (de alimentación de datos), la ejecución y el análisis de los resultados de las operaciones; lo ideal sería que estos módulos fueran independientes

Haciendo abstracción de los detalles, en lo principal debe haber al menos cuatro objetos complejos, los datos, los modelos de estos datos, la implementación (ejecución) de los modelos al mercado y el objeto de estimación de esta actividad.

En el caso más sencillo el feed será simplemente una matriz de velas, la única sutileza de trabajar con un feed así es tener una protección fiable de los modelos/módulos de ejecución/estimación para que no se asomen al futuro, el modelo más sencillo puede ser cualquier indicador, como el RSI, el estocástico o el indicador de red neuronal, ya sea modulado o en su forma pura. Se trata de una interpretación de las previsiones en una señal de negociación y de su ejecución ociosa/real, por ejemplo al cruzar algunos niveles del módulo de previsión, etc. Y la estimación es "probar", de hecho el probador es sólo una carrera ociosa a través de toda la serie de datafeed, técnicamente es mejor trabajar con el estado actual del mercado, los módulos de modelo/ejecución/estimación como en la realidad, pero es mucho más lento que emitir señales para toda la serie y luego ejecutarlas por separado en el probador, pero hay un gran peligro de espiar el futuro y obtener resultados irreales.


PD: Ahora todos los gurús del Forex me echarán en cara, pero debo decir que en el algotrading los stops y los trailing stops - una tecnología dañina, son sólo para el trading manual, episódico, cuando abres una posición por una suerte y te vas de picnic, y cuando la IA monitoriza continuamente el mercado, entonces actuar en función de tu drawdown local no tiene sentido, no depende en absoluto del movimiento futuro del mercado y las decisiones de la IA no deberían basarse en esto.

 
pantural:

DE ACUERDO. Pues bien, qué más se puede decir después de leer https://c.mql5.com/3/236/Public.zip ...

Estás atacando a Público en vano. Es sólo una plantilla de estrategia simple con una estrategia simple en 2 MAs, trailing stop y probador. Debe tener un código sencillo que todo el mundo pueda entender, y nada innecesario. Además, existe la posibilidad de experimentar con estrategias de indicadores. Y, si alguien empieza a modelar estrategias en Python, esta plantilla puede editarse y desarrollarse según sea necesario.

De hecho, en un principio se diseñó como banco de pruebas para ensayar varios módulos del sistema y para su posterior publicación en este tema. En cualquier caso, no es en absoluto lo que usted cree que es. En definitiva, no es lo que parece.

 
pantural:

PD Por cierto, ¿qué te hace pensar que tu probador funciona correctamente? El probador es algo complicado....

pantural:

"testing", en esencia el tester es sólo una ejecución ociosa a través de toda la fila de datafeed, técnicamente es más correcto trabajar con el estado actual del mercado, los módulos de modelo/ejecución/estimación como en la realidad, pero esto será significativamente más lento que si se emiten inmediatamente señales para toda la fila y luego se ejecutan por separado en el tester, pero de esta manera hay un gran peligro de espiar el futuro y obtener resultados irreales.

Esta es una pregunta interesante. También es interesante porque el foro ya está produciendo leyendas sobre los milagros de las pruebas). En realidad, por eso necesitamos nuestro propio probador, que podemos controlar totalmente.

Qué es un probador - es sólo un bucle que debe informar a la estrategia sobre el número de una vela (o el número de otra cosa, un tick, digamos) con el que el probador tiene que trabajar. Además, el probador recoge datos sobre el estado de la estrategia y los sistematiza de alguna manera en el archivo para que el usuario los procese posteriormente. Eso es todo. ¿De qué hay que tener miedo? Aunque el probador se esfuerce mucho, no puede hacer nada).

Sólo puede haber una razón para que las pruebas sean insidiosas: la propia estrategia funciona con otros tipos de datos en la vida real que en las pruebas. Por ejemplo, con ticks en lugar de velas. Y una vida divertida está garantizada para nosotros.

Mientras utilicemos sólo Open o sólo Close en una estrategia y siempre que se utilice sólo esto y nada más en la operativa real, no corremos peligro (si no hay errores evidentes, claro). Pero en cuanto intentemos utilizar el OHLCV en las pruebas, tendremos muchas oportunidades de mirar hacia el futuro. En primer lugar, HL no tiene marcas de tiempo y, en segundo lugar, el precio dentro de una vela puede comportarse como quiera, y cualquier suposición sobre el comportamiento del precio sólo puede conducir a distorsiones en la prueba.

En este tipo de análisis estamos muy limitados en lo que podemos hacer, y de hecho podemos utilizar la información de OHLCV sólo al principio de la siguiente vela. Casi todo lo que podemos hacer sin riesgo es cerrar la operación si el precio en la vela actual va por debajo del stop. La parada, al hacerlo, no debe cambiar, por supuesto, en la barra actual.

ZS supongo que es el momento de hablar de las pruebas sobre las garrapatas ). No utilizo los ticks en las pruebas, y creo que analizar los ticks es análogo a intentar calcular la trayectoria y los parámetros de movimiento de un avión midiendo las vibraciones de su fuselaje y las fluctuaciones de su trayectoria.

 
Tuve que hacer mi propio probador, no es una selección de parámetros, aunque afecta, pero la creación de la estrategia en la forma de definir las condiciones de entrada / salida, el cálculo de TP / SL, la estrategia resultante no es una "caja negra". La cuestión de "mirar al futuro" se aborda muy a fondo, es una de las cuestiones más importantes, el probador encuentra información sobre el futuro en los datos, si está disponible.
 
Yuriy Asaulenko:

Una pregunta interesante. También es interesante porque ya hay leyendas sobre las maravillas de las pruebas en este foro). En realidad, por eso necesitamos nuestro propio probador, que podemos controlar totalmente.

Lo que es un probador - es sólo un bucle, que debe informar a la estrategia sobre el número de una vela (o el número de otra cosa, una garrapata, por ejemplo) que el probador tiene que trabajar. Además, el probador recoge datos sobre el estado de la estrategia y los sistematiza de alguna manera en el archivo para que el usuario los procese posteriormente. Eso es todo. ¿De qué hay que tener miedo? Aunque el probador se esfuerce mucho, no puede hacer nada).

Sólo puede haber una razón para que las pruebas sean insidiosas: la propia estrategia funciona con otros tipos de datos en la vida real que en las pruebas. Por ejemplo, con ticks en lugar de velas. Y una vida divertida está garantizada para nosotros.

Mientras utilicemos sólo Open o sólo Close en una estrategia y siempre que se utilice sólo esto y nada más en la operativa real, no corremos peligro (si no hay errores evidentes, claro). Pero en cuanto intentemos utilizar el OHLCV en las pruebas, tendremos muchas oportunidades de mirar hacia el futuro. En primer lugar, HL no tiene marcas de tiempo y, en segundo lugar, el precio dentro de una vela puede comportarse como quiera, y cualquier suposición sobre el comportamiento del precio sólo puede conducir a distorsiones en la prueba.

En este tipo de análisis estamos muy limitados en lo que podemos hacer, y de hecho podemos utilizar la información de OHLCV sólo al principio de la siguiente vela. Casi todo lo que podemos hacer sin riesgo es cerrar la operación si el precio en la vela actual va por debajo del stop. El tope, al hacerlo, no debe cambiar, por supuesto, en la barra actual.

ZS supongo que es el momento de hablar de las pruebas de garrapatas ). No utilizo ticks en las pruebas, y creo que el análisis de ticks es análogo a intentar calcular la trayectoria y los parámetros de movimiento de un avión midiendo las vibraciones de su fuselaje y las fluctuaciones de su trayectoria.

Estoy de acuerdo con muchos, el probador necesita su propio, transparente y rápido, el algoritmo en sí en el caso simple (cuando sólo los mercados en el mejor (oferta, sask)) es de aproximadamente 10 líneas de código, pero incluso en ella se puede disparar en el pie. Bueno, por ejemplo, si se utiliza la "ejecución instantánea", es decir, para calcular la transacción en el momento de la señal, sucede cuando un hombre tomó una vela, por ejemplo, un Klos y luego tomó de esta serie que nibutuya diferencias mashah y luego en su turno de nuevo en klos (oferta o demanda) abrió / cerró un acuerdo en el momento de la señal, este error dará un resultado ligeramente más positivo que el real, no será evidente. Por otro lado, si tomamos la siguiente vela para operar sobre la señal anterior, el resultado será significativamente más negativo que el real. Clásicamente, la señal se considera sobre opciones, y la operación se basa en las ralentizaciones de la misma vela, pero tampoco es muy buena, la práctica demuestra que las señales son mejores sobre opciones, y las operaciones deben ser procesadas por la media (H+L+C)/3, aunque algunas personas las mezclan más inteligentemente.

Por cierto, todo es muy respetable y aceptable si se empaquetan en "tick candlesticks", es decir, estructuras de velas que contengan los ticks que han pasado entre la opción y el cierre, el indicador puede ser calculado por ticks y ejecutado por ticks dentro de una vela, aunque IMHO no tiene mucho sentido, los resultados serán bastante similares.

Pero con el vidrio hay más dificultades y ambigüedades, afortunadamente se trata sólo de los que utiliza las sumas que pueden secar fuertemente este vidrio y así es posible sin el vidrio.

 
pantural:

Estoy de acuerdo con muchas cosas, el probador necesita su propio, transparente y rápido, el algoritmo en sí en un caso simple (cuando sólo los mercados en el mejor (oferta, demanda)) es de aproximadamente 10 líneas de código, pero incluso en ella se puede disparar en el pie. Bueno, por ejemplo, si se utiliza la "ejecución instantánea", es decir, para calcular la transacción en el momento de la señal, sucede cuando un hombre tomó una vela, por ejemplo, un Klos y luego tomó de esta serie que nibutuya diferencias mashah y luego en su turno de nuevo en klos (oferta o demanda) abrió / cerró un acuerdo en el momento de la señal, este error dará un resultado ligeramente más positivo que el real, no será evidente. Por otro lado, si tomamos la siguiente vela para operar sobre la señal anterior, el resultado será significativamente más negativo que el real. Clásicamente, la señal se considera sobre opciones, y la operación se basa en las ralentizaciones de la misma vela, pero tampoco es muy buena, la práctica demuestra que las señales son mejores sobre opciones, y las operaciones deben ser procesadas por la media (H+L+C)/3, aunque algunas personas las mezclan más inteligentemente.

Por cierto, todo es muy respetable y aceptable si se empaquetan en "tick candlesticks", es decir, estructuras de velas que contengan los ticks que han pasado entre la opción y el cierre, el indicador puede ser calculado por ticks y ejecutado por ticks dentro de una vela, aunque IMHO no tiene mucho sentido, los resultados serán bastante similares.

Pero con el vidrio hay más dificultades y ambigüedades, afortunadamente se trata sólo de los que utiliza las sumas que pueden secar fuertemente este vidrio y así es posible sin el vidrio.

Me estoy enamorando de ti. De lo claro que has escrito lo que no tienes que hacer. Y mucha gente lo hace. No lo entienden. No me extraña que te hayan bloqueado. Qué raro.
 

) En general, es una profunda modernización del Oscilador Estocástico clásico, pero a pesar de los genes comunes, el descendiente tiene muy poco en común con el Oscilador Estocástico clásico. Las matemáticas son completamente diferentes, pero la similitud externa es evidente.

Hasta ahora el indicador se ha implementado sólo en Python. Su finalidad es determinar el momento de entrar en el trato y como parte de su mecanismo de apoyo. Ya se puede ver en la figura que lo hace bien y a tiempo.

Por supuesto, el indicador no está pensado para ser utilizado por sí mismo, sino en simbiosis con otros métodos e indicadores.

Creo que tal vez debería poner el indicador en MQL y ponerlo en el Mercado.

 

Los que leyeron el tema De la teoría a la práctica ya saben que mi sistema y el de A_K2 están construidos más o menos sobre la misma ideología: el trabajo de los canales. La única diferencia es que el mío fue construido hace un año. Ya he escrito antes, que ahora esta estrategia está implementada y probada en Python, con algunos cambios menores, pero no tiene sentido lanzarla - no se espera nada nuevo.

Como no tenía ninguna idea en particular, desarrollé todo tipo de indicadores - uno de ellos está en el post anterior. He hecho una decena de ellos. Como resultado, he decidido cruzar erizo con erizo: combinar el trabajo en el canal con el seguimiento de la tendencia en un sistema consistente. Todavía no lo he probado en su totalidad, pero he practicado algunos elementos. Todo parece encajar, pero tengo algunas preguntas. No puedo decir lo que saldrá en la práctica, puede que nada. Esperemos y veamos.

Razón de la queja: