Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 891

 
elibrarius:
31 categoría... no, es más bien una discretización con 31 pasos. Uno de los artículos de Vladimir lo utiliza y el resultado es igual de bueno.

Sólo si los datos originales son buenos....

 
Mihail Marchukajtes:

En primer lugar, registra el momento en que se toma la decisión. Que sea un evento. Entonces, en ese momento en que se produjo el evento, guarde los valores de los indicadores.

Para ser sincero, no entiendo muy bien su mesa. ¿Qué contiene?

Entonces, qué sentido tiene guardar el valor exacto, y no un patrón - por ejemplo el conocido RSI, como tengo yo, si abre por encima del nivel 70, entonces 1, por debajo del nivel 30, entonces -1, pero no ambos, entonces 0.

En la tabla hay un conjunto de reglas con alta puntuación, que se han formado en base a los resultados del árbol. Utilizo Deductor Studio - para los principiantes, que creo que soy, es bastante bueno, pero es difícil obtener resultados de análisis de la versión gratuita, así que filtré las reglas y elegí las mejores y las introduje manualmente en el código.

Hoy he automatizado el proceso y me he dado cuenta del siguiente fenómeno: una regla puede estar incompleta si su parte después de filtrar una muestra da sólo un valor de predictor (es decir, por ejemplo si el predictor tiene 2 posiciones, y después de filtrar (aplicando algunas reglas) obtenemos un conjunto tan raro, un ejemplo en dos reglas:

con reglas definidas - verde, cualquier valor - amarillo, indefinido - rojo.

La incertidumbre sólo aparece cuando después de filtrar por reglas no tenemos valores alternativos de las variables, pero en otras condiciones pueden aparecer y la regla se ejecutará, no porque se demuestre que es correcta, sino porque no se ha encontrado antes con la situación y no ha podido evaluarla y la considerará similar aunque pueda ser todo lo contrario.

 
Aleksey Vyazmikin:

Entonces, qué sentido tiene mantener el valor exacto y no algún patrón, por ejemplo el conocido RSI, como el mío, si abre por encima de 70 entonces 1, por debajo de 30 entonces -1, si no ambos entonces 0.

En la tabla hay un conjunto de reglas con alta puntuación, que se han formado a partir de los resultados del árbol. Utilizo Deductor Studio - para los principiantes, que creo que soy, es bastante bueno, pero la versión gratuita es difícil de obtener los resultados del análisis, así que filtré las reglas y elegí las mejores y las introduje manualmente en el código.

Hoy he automatizado el proceso y me he dado cuenta del siguiente fenómeno: una regla puede estar incompleta si su parte después de filtrar una muestra sólo da un valor de predictor (es decir, por ejemplo si el predictor tiene 2 posiciones, y después de filtrar (aplicando algunas reglas) obtenemos un conjunto tan raro, un ejemplo en dos reglas:

con reglas definidas - verde, cualquier valor - amarillo, indefinido - rojo.

La ambigüedad apesta cuando después de filtrar por reglas no tenemos valores alternativos de las variables, pero en otras condiciones pueden aparecer y la regla se ejecutará no porque se demuestre que es correcta, sino porque no se ha encontrado antes con esa situación y no ha podido evaluarla y la considerará similar, aunque podría ser todo lo contrario.

Para responder a su pregunta principal. Cuando el RSI está por encima de 70, sólo tiene un valor de 1 (uno), pero es muy importante para NS saber cuánto por encima de 70 muestra el RSI. Si es el 70,05, es una cosa y si es el 73, es otra muy distinta, por no hablar del 90, el 80 o cualquier otro número entre el 70 y el 100. ¡Es en estas nimiedades donde el modelo trata de aferrarse a lo IMPORTANTE...! En fin, así es. Y al asignar estrictamente las unidades se priva a la red de información importante para ella, ¡¡¡MHO, por supuesto!!!

 

Sabes, todos aquí están lejos de ser estúpidos, incluso diría que son muy inteligentes y lógicos en sus razonamientos. La programación es un compromiso con la lógica. Pero aquí está la cosa.... Cuando empiezas a relacionar las ST te basas únicamente en tus conclusiones lógicas y en todas las conclusiones que sacas de tu experiencia y en la frase "Pues es lógico", que debes hacer tal y cual cosa. Pero las pruebas demuestran la invalidez de tus conclusiones y no entiendes por qué no funciona. Después de todo, lo has hecho todo lógicamente bien. Pero hacer algo con lógica no significa que sea correcto. Mucha gente es rehén de su propia lógica, que es naturalmente correcta, pero por qué no funciona...... Y cometes el mismo error sin saber que lo haces una y otra vez basándote en tus conclusiones lógicas.

Como ejemplo, ya he puesto: Lógicamente, cuanto más grande es el modelo, más inteligente es...

Un ejemplo: los modelos medianos funcionan mejor que los grandes o pequeños. Esto es como un ejemplo...

Has calculado que asignar 1 si el RSI está por encima de 70 es correcto, y para una red no lo es. Y tú dices, qué pasa con la red, te he facilitado el trabajo, ¿cómo no lo entiendes, por qué eres tan estúpido? Pero, por desgracia, no podrá responderle que no es suficiente. Que con tu unidad mataste estúpidamente toda la información importante.... Eso también es un ejemplo...

Y en general el campo de la MO es alógico. Aquí las conclusiones lógicas no funcionan bien. ¡¡¡¡Las conclusiones lógicas van bien aquí!!!!

 
Mihail Marchukajtes:

Para responder a su pregunta principal. Cuando su PSI es superior a 70, sólo tiene un valor de 1 (uno), pero es muy importante para NS saber cuánto más alto de 70 muestra el PSI. Si es el 70,05, es una cosa y si es el 73, es otra muy distinta, por no hablar del 90, el 80 o cualquier otro número entre el 70 y el 100. ¡Es en estas nimiedades donde el modelo trata de aferrarse a lo IMPORTANTE...! En fin, así es. Y al asignar estrictamente las unidades se priva a la red de información importante para ella, ¡¡¡MIO, naturalmente!!!

Puede que tengas razón, pero yo parto de tales consideraciones, si el sistema sin NS funciona según tales reglas con éxito, entonces ¿qué impide entender y encontrar estas reglas de NS? Ayer colgué capturas de pantalla para comparar. Hasta ahora mi tarea es tal que el resultado del aprendizaje de la máquina sería mejor que la optimización y la lógica suficiente en TS.

 
Aleksey Vyazmikin:

Puede que tengas razón, pero mi razonamiento es que si un sistema sin NS funciona con éxito según esas reglas, ¿qué te impide entender y encontrar esas reglas de NS? Ayer publiqué capturas de pantalla para comparar. Hasta ahora, mi objetivo es que el resultado del aprendizaje automático sea mejor que la optimización y la prescripción de una lógica bastante estricta en TS.

Pásame el enlace donde has colgado las capturas de pantalla... Voy a echar un vistazo a .... Y sobre las reglas, se las estás dando mal. Crees que la alimentas bien, pero ella se muere de hambre por falta de información. Os estáis entendiendo mal. No puedes explicarle exactamente lo que quieres, así que te da el resultado tal y como ella lo entiende. ¿Quieres que te ayude con tu TS? Sólo dentro de las directrices ....

En primer lugar, dígame qué TS básico utiliza.

 
Mihail Marchukajtes:

Lánzame un enlace de dónde has colgado las capturas de pantalla... déjame ver.... Y en cuanto a las reglas, se las estás dando mal. Crees que la alimentas bien, pero en realidad está hambrienta por falta de información. Así que os estáis entendiendo mal. No puedes explicarle exactamente lo que quieres, así que te da el resultado tal y como ella lo entiende. ¿Quieres que te ayude con tu TS? Sólo dentro de las directrices ....

Primero dime qué TS básico estás usando.

Aquí está el enlacehttps://www.mql5.com/ru/forum/86386/page889#comment_7378517

Sobre el hambre, justo ahora estoy pensando que estoy sobrealimentando los datos, ya que de hecho no van todos a las reglas...

¿Interesante la idea de que no puedo explicar lo que quiero, es decir, que se trata de objetivos equivocados?

Y TC, por lo que el básico es simple - tortugas en minutos. El resto se realiza mediante cascadas de filtros basados en mis observaciones del mercado.

 
Aleksey Vyazmikin:

Aquí está el enlacehttps://www.mql5.com/ru/forum/86386/page889#comment_7378517

Sobre el hambre, justo ahora estoy pensando que estoy sobrealimentando los datos, ya que de hecho no van todos a las reglas...

¿Interesante la idea de que no puedo explicar lo que quiero, es decir, que se trata de objetivos equivocados?

Y TC, por lo que el básico es simple - tortugas en minutos. Y el resto se hace mediante cascadas de filtros construidas a partir de mis observaciones del mercado.

¿Cuántas señales al día da la tortuga en los minutos ????

La ST básica sólo se necesita para el momento de tomar una decisión. Hay una señal en el TS básico. Todo empieza a analizar el mercado. Capturas de pantalla de las señales del TS básico.

 
Mihail Marchukajtes:

¿Cuántas señales al día da la tortuga en el minuto ????

La ST básica sólo se necesita para el momento de tomar una decisión. Una señal está formada por el TS básico. Todos empezamos a analizar el mercado. Captura de pantalla de las señales del TS básico.

Mi Asesor Experto está mejorando todo el tiempo, así que no tengo estadísticas - tengo 8 señales el 8 de mayo y 5 señales perdedoras, pero cerré el día con ganancias. He notado por mí mismo que la noche antes de las vacaciones es mejor no operar - Voy a comprobar en la historia - en la noche hubo 1 entrada estúpida, que podría haber sido evitada, pero que mordió el 20% de los ingresos diarios.

Bueno, mi sistema de trading no está estructurado de manera estándar, es decir, la decisión de entrar en el mercado se genera constantemente, dependiendo de la posición del precio en el canal de Doncian, y luego los filtros comienzan a trabajar y finalmente proporcionan la decisión de abrir la posición o no. En general, lo ideal es encontrar un factor externo que pueda activar/desactivarlas en diferentes momentos del mercado. Acabo de empezar a trabajar en NS esta misma semana, mientras estoy creando el entorno para mi trabajo y no he trabajado mucho en la selección de predictores, pero ya he encontrado algunos patrones interesantes, que de todas formas uso en mi EA.

 

Eso es más o menos todas las condiciones básicas para la entrada

      double HighD=Donchianf(0,0);
      double LowD=Donchianf(1,0);
      double PriceProc=0.0;

      if(HighD-LowD>0) PriceProc=((Open(0)-LowD)/(HighD-LowD))*100.0;
      else
        {
         SellNow=false;
         BuyNow=false;
        }

      priceBuy   =Open(0);
      priceSell  =Open(0);


      if(CountMarketOrder_OS==0 && CountMarketOrder_OB==0 && HighD>0 && LowD>0)
        {
         if(PriceProc<=ProcOpenBuy && PriceProc>50.0)BuyNow=true;
         if(PriceProc>=ProcOpenSell && PriceProc<50.0)SellNow=true;
        }