Librerías: BestInterval - página 11

[Eliminado]  
fxsaber:

No parece mucho. Aquí hay otra cosa a tener en cuenta. ML y BestInterval son conceptos diferentes. ML busca TC, BestInterval no busca nada.

Me pregunto cómo funcionaría un ejemplo como este. Supongamos que ML tiene 100 parámetros y encuentra un TC. ¿Qué será mejor al final, ML100 + BestInterval10 o ML110?

Bueno, como no pocos... hay que tener en cuenta los predictores de alguna manera, 1 parámetro para cada uno es el mínimo.

Yo creo que será +- lo mismo. Yo solo pongo los intervalos de trading manualmente, por ejemplo en la sesión nocturna - sigue reentrenando. Es decir, si se quita el mejor intervalo para algo, el overfit no desaparecerá.

 
Maxim Dmitrievsky:

Me limito a poner intervalos de negociación manualmente, por ejemplo en la sesión nocturna - todavía se reentrena.

Esta frase no puede evitar arrancar una sonrisa porque equivale a "todavía no es un grial".

En mi opinión, ML es relevante para BigData. Y series de precios no pueden ser llamados BigData incluso con un nyatyatyazhka BigData.

Es por eso que mi enfoque es algo diferente - conservador. Hago la investigación (un poco) y, por supuesto, me asomo (es estúpido no hacerlo). Luego escribo y observo el resultado. BestInterval, por supuesto, se ha convertido en indispensable.

Al mismo tiempo cojo algún trozo chulo de cotir real (con ciertas propiedades) y corro ideas sobre él. La diferencia fundamental con ML es que siempre entiendo por qué cotiza así y no al revés.

[Eliminado]  
fxsaber:

Esta frase no puede sino suscitar una sonrisa porque equivale a "todavía no es el grial".

En mi opinión, el ML es relevante para el BigData. Y las series de precios no pueden llamarse BigData ni siquiera con un poco de BigData.

Por eso mi enfoque es algo diferente: conservador. Investigo (un poco) y, por supuesto, miro (es estúpido no hacerlo). Luego escribo y observo el resultado. BestInterval, por supuesto, se ha vuelto indispensable.

Al mismo tiempo cojo algún trozo chulo de cotir real (con ciertas propiedades) y corro ideas sobre él. La principal diferencia con ML es que siempre entiendo por qué cotiza así y no al revés.

Quería subir noticias, ahí puede resultar muy interesante, pero no han hecho una api para el calendario incorporado, pero creo que querían hacerlo. Me da mucha pereza parsear.

si, me doy cuenta de que un ml no es suficiente :) bestinterval es una cosa muy chula en si, gracias por ello.

 

Si alguien recibe un Error Crítico de OnTester, que me dé los datos para reproducirlo. Yo nunca he tenido ninguno.


ZY Actualizado con Virtual.

 

La gente pregunta, ¿existe la posibilidad de hacer que BestInterval encuentre el mejor intervalo no para el beneficio, sino, por ejemplo, para el factor de recuperación (RF) o el factor de beneficio (PF) (cualquier variante)?


Para PF, la respuesta es obvia, porque el PF máximo se alcanza cuando sólo hay una operación en el historial. Y para que esta operación sea positiva. Por lo tanto, por supuesto, no.

Para PF la situación es aproximadamente la misma. La cosa es que BestInterval de FB puede calcular sólo por el equilibrio. Por lo tanto, la historia de un acuerdo (positivo) es suficiente. Así que la respuesta es la misma.


Pero cuando se trata de otros criterios de optimización, es necesario explicar con más detalle. Y por eso lo hago en la rama. El núcleo de BestInterval no es complicado y muy eficiente (de una sola pasada) algoritmo. Por ejemplo, si se realizan 1000 operaciones, BestInterval calculará el mejor intervalo para 1000 operaciones simples. BestInterval se basa en este algoritmo (puede aplicarse a semanas, no sólo a días) y en ningún otro. Aquí es donde la velocidad marca una gran diferencia: la optimización. Es por esto que los cálculos son libres de tiempo - instantáneos.


BestInterval no funciona según el principio de "tirar - mirarlo, tirar - mirarlo,..., hasta que se agote". De lo contrario sería monstruosamente lento. Por eso funciona sólo para aumentar el beneficio absoluto del historial de operaciones. Y por eso tiene mucho sentido usar el biblah cuando se optimiza para TS en el modo de lote constante. Y MM debe ser utilizado después de BestInterval se calcula.


Sin embargo, existe la posibilidad (aún no implementada) de hacer que encontrar el mejor intervalo para el máximo beneficio no sea absoluto, sino relativo (es decir, con reinversión). Esta (y otras) características están previstas...


Por ahora (estaba originalmente en la biblioteca, pero se dejó sólo para mí - sin descripción) hay una posibilidad. Si escribe una línea de este tipo

#define  BESTINTERVAL_ONTESTER_FORMULA BestInterval.GetProfit() * BestInterval.GetRecoveryFactor()

entonces al optimizar OnTester devolverá el valor resaltado en color. En este caso, es beneficio * FV. Puede sustituir esta fórmula por cualquier otra (cualquier expresión, incluidas las llamadas a funciones). En este caso, los siguientes participantes están disponibles en BestInterval:

BestInterval.GetProfit()
BestInterval.GetProfitPlus()
BestInterval.GetProfitMinus()
BestInterval.GetTotal()
BestInterval.GetTotalPlus()
BestInterval.GetTotalMinus()
BestInterval.GetProfitFactor()
BestInterval.GetMean()
BestInterval.GetMaxDrawDown()
BestInterval.GetRecoveryFactor()

De sus nombres se deduce claramente la información que contienen. Por lo tanto, es posible establecer un OnTester personalizado, pero utilizando los valores BestInterval correspondientes.


Así que si está buscando una buena variante según otro criterio, establezca la fórmula que necesita y el optimizador encontrará lo que necesita. Pero entienda que BestInterval se construyó para cada pasada para maximizar el beneficio, y su criterio de optimización sólo le ayuda (BestInterval no se ve afectado) a encontrar rápidamente una buena variante desde su punto de vista.


ZY Existen diferentes métodos en la librería para utilizarlo a la hora de programar. Estoy casi seguro de que nadie lo hará, por lo que esta parte no se describe en absoluto. Si realmente lo necesitas, hay una forma estándar

Desde el código fuente se entiende rápidamente el significado.

He marcado los métodos que considero importantes para el uso posterior de los resultados de los cálculos al crear robots de verdad.

 

Pensé que sería lógico generalizar el principio BestInterval. De hecho, BestInterval es una clasificación de transacciones por OrderOpenTime. Pero nadie nos impide clasificar por otro criterio.

Por ejemplo, sabemos a qué МАшка era igual (lo escribiremos en el OrderComment) en el momento de apertura de la posición. En consecuencia, todas las posiciones del historial de operaciones pueden compararse con estos valores de MA.

Y luego aplicamos BestInterval a estos MAs. Y en la salida obtenemos los rangos de МАшки en los que se deben abrir posiciones, y en cuáles - no.


Por supuesto, puede utilizar cualquier función numérica en lugar de una MA. Como resultado, usted puede encontrar filtros fresco que superan el tiempo.

[Eliminado]  
fxsaber:

Por supuesto, puede tomar cualquier función numérica en lugar de la MA. La conclusión es que puedes encontrar filtros geniales que superen al tiempo.

¿de qué campo de conocimiento es esto?

Usted hace ML, señor, sólo que a su manera, muy curiosa :)

y si es así, deberías hacerlo según los cánones de ML, con división en traine, test y validación, con generalización de las evaluaciones.

 
Maxim Dmitrievsky:

¿de qué campo de conocimiento procede?

El criterio de superioridad es el aumento del beneficio sobre la muestra de entrenamiento con el mismo número de "intervalos" lanzados (variables de entrada).

No veo ninguna razón para que una hora tomada al azar (sólo estamos acostumbrados a ella) sea mejor que otros indicadores.

Sí, podemos decir que la hora del día/semana tiene un impacto directo en la vida humana, y de ahí nacen las patas de los patrones de mercado. Pero algo-trading ya tiene una parte importante de volumen de negocios, y por lo tanto es bastante razonable utilizar otras funciones que bien pueden ser superiores a la hora por la misma razón.

Debería hacerse según los cánones del ML, con separación en traine, test y validación, con generalización de las evaluaciones

No se va a hacer nada de eso, porque es una búsqueda del grial sin fin. Tiene que haber un ML potencialmente rentable, ése es el primer requisito.

Francamente, es extraño que los métodos ML ni siquiera puedan acercarse al TesterEA más simple. Lo más probable es que los ML-adeptos caven todo a la vez.

[Eliminado]  
fxsaber:

No voy a hacer nada de eso, porque es una búsqueda interminable del grial. Tiene que haber una TS potencialmente rentable: es la primera condición necesaria.

Hablando francamente, es extraño que los métodos de ML no pudieran ni siquiera acercarse al TesterEA más simple. Lo más probable es que los adeptos a ML lo caven todo a la vez.

El problema es que los adeptos locales de ML tienen nivel cero no sólo en ML, sino también en programación. Los aficionados son solitarios. Pero todo evoluciona... muy lentamente :)

existe un claro teorema de Gödel que establece la necesidad de un criterio de evaluación externo, que puede ser un criterio sobre el intervalo de prueba, pero no sobre el intervalo de entrenamiento.

 
Maxim Dmitrievsky:

El problema es que los adeptos locales de ML tienen nivel cero no sólo en ML sino también en programación. Los aficionados son solitarios. Pero las cosas están evolucionando... muy lentamente :)

existe un claro teorema de Gödel que establece la necesidad de un criterio de evaluación externo, que puede ser un criterio sobre el intervalo de prueba, pero no sobre el intervalo de entrenamiento.

El 95% de los ML-makers toman cotizaciones EURUSD. Ni siquiera se preocupan por la calidad de las cotizaciones. Y empiezan a sufrir.

¿Por qué no GBPUSD? ¿Por qué cotizaciones de MQ y no de otra fuente? Por qué M1 y no M2, etc. Una preguntas elementales incluso antes de aplicar cualquier ML, que son fundamentales. Pero no, lo principal es conectar TensorFlow o CatBoost.


El truco más difícil para el mejor ML-mercancía en el mundo es dar SB y convencer de que son kotirs. Eso es suficiente investigación para el resto de tu vida.