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

 
Anatolii Zainchkovskii:

Por ejemplo, si analizo sólo 10 barras del historial para predecir 1 barra en el futuro, una red neuronal encontrará cientos de patrones a partir de estas 10 barras, pero yo sugiero 1 patrón y entreno la red neuronal en adelante.


La NS difícilmente encontrará algo por sí misma, primero tiene que hacer un análisis estadístico de todos modos, o puede encontrar algo que no está claro. Todavía estoy tratando de adaptar el NS a los TS existentes, para evitar tener que escribir todas las reglas manualmente

Puedes usar alglib en cualquier caso, puedes probarlo, aprendes NS en 5 líneas

 
Maxim Dmitrievsky:

Es poco probable que la NS encuentre algo por sí sola, de todas formas hay que hacer un análisis estadístico... o puede encontrar algo que no esté claro. Sigo tratando de adaptar la NS a la TS existente, sólo para evitar tener que escribir todas las reglas manualmente

En cualquier caso, puedes coger alglib y probarlo, enseña el NS en 5 líneas


Cuando leo esto veo que has llegado a un Bosque Aleatorio, hace tiempo que me lo dijeron .... y sobre el análisis estadístico sólo dije que era 50/50, seguí jugando con el robot y escribí los resultados en un archivo... No puedo ver qué signos pueden cambiar o importar para el resultado, así que decidí dejar que la red neuronal reconozca algo que no puedo ver...

 
Anatolii Zainchkovskii:

Nunca he visto un ejemplo de cómo usar Algleb NS, lo busqué y llegué a este hilo y vi que intentaste implementarlo. Leyendo un poco más veo que llegaste a Random Forest, del que me han hablado desde hace mucho tiempo.... y sobre el análisis de estadísticas sólo dije 50/50, corrí el robot y escribí los resultados en un archivo... Intenté usar una red neuronal para reconocer algo que no puedo ver...

He aquí un ejemplo de Random Forest, utilizando ejemplos de la tabla de multiplicar y luego uno entrenado cuenta ejemplos (genera respuestas en el registro)
#include <Math\Alglib\dataanalysis.mqh>
//+------------------------------------------------------------------+
#define _rand(min,max) ((rand()/(double)SHORT_MAX)*((max)-(min))+min)
//+------------------------------------------------------------------+
void OnStart()
{
   MathSrand(1600);
   CDecisionForest      Trf;
   //CDecisionForestShell RFshell;
   CMatrixDouble        PatternsMatrix;
   CDFReport            RF_report;
   int RFinfo;
   double vector[2], out[1];
   
   // подготовка данных
   PatternsMatrix.Resize(100,3);
   int m=0;     // first pattern
   for(int i=1; i<=10; i++)
      for(int j=1; j<=10; j++)
      {
         PatternsMatrix[m].Set(0,i/10.0);       // input 1
         PatternsMatrix[m].Set(1,j/10.0);       // input 2
         PatternsMatrix[m].Set(2,(i*j)/100.0);  // target
         m++; //next pattern
      }
   // создание RF
   CDForest::DFBuildRandomDecisionForest(PatternsMatrix,100,2,1,500,0.95,RFinfo,Trf,RF_report);
   Print("Info=",RFinfo,"   RMSE Error=",DoubleToString(CDForest::DFRMSError(Trf,PatternsMatrix,100),5));  
   // проверка сети на целочисленных данных
   string s="Тест 1 >> ";
   for(int i=1; i<=10; i++)
   {
      int d1=(int)_rand(1,10), d2=(int)_rand(1,10);
      vector[0]=d1/10.0;
      vector[1]=d2/10.0;
      CDForest::DFProcess(Trf,vector,out);
      s+=(string)d1+"*"+(string)d2+"="+DoubleToString(out[0]*100,0)+" // ";
   }
   Print(s);
   // проверка сети на дробныx данных
   s="Тест 2 >> ";
   for(int i=1; i<=5; i++)
   {
      double d1=NormalizeDouble(_rand(1,10),1), d2=NormalizeDouble(_rand(1,10),1);
      vector[0]=d1/10.0;
      vector[1]=d2/10.0;
       CDForest::DFProcess(Trf,vector,out);
      s+=DoubleToString(d1,1)+"*"+DoubleToString(d2,1)+"="+DoubleToString(out[0]*100,2)+
         "("+DoubleToString(d1*d2,2)+") // ";
   }
   Print(s);
}
y aquí hay un ejemplo para MLP https://www.mql5.com/ru/forum/8265/page2#comment_333746
Библиотеки: ALGLIB - библиотека численного анализа
Библиотеки: ALGLIB - библиотека численного анализа
  • 2012.10.12
  • www.mql5.com
Статьи и техническая библиотека по автоматическому трейдингу: Библиотеки: ALGLIB - библиотека численного анализа
 
Maxim Dmitrievsky:

Bueno, la cartera no es estacionaria, no va de sigma en sigma, se cae periódicamente... y luego se recalcula y se vuelve a caer

No debe ir de sigma en sigma, debe vivir mientras la cointegración entre filas esté viva.


PS. La cointegración se produce cuando dos series no estacionarias se suman de forma especial y se obtiene una serie estacionaria en virtud de esta adición especial. Hay una prueba especial para esto. Esta idea es muy utilizada por los creadores de carteras.

Hay muchas pruebas que garantizan un "choque".

 
SanSanych Fomenko:

No debe ir de sigma en sigma, sino que debe vivir mientras la cointegración entre las filas esté viva.


PS. La cointegración se produce cuando se suman dos series no estacionarias de una manera especial y se obtiene una serie estacionaria en virtud de esta adición especial. Existe una prueba especial para ello. Esta idea es muy utilizada por los creadores de carteras.

Un montón de pruebas que garantizan contra un "choque".


No lo sabía :) hay otras "variaciones sobre el tema"

y sin las pruebas se puede ver todo en el probador

https://www.mql5.com/ru/code/19630

Cointegration
Cointegration
  • votos: 18
  • 2017.12.26
  • Maxim Dmitrievsky
  • www.mql5.com
Индикатор находит коэффициенты линейной регрессии для каждого из выбранных инструментов со всеми остальными, и выводит на график в виде стандартных отклонений. Сумма всех кривых...
 
Maxim Dmitrievsky:
He aquí un ejemplo de Random Forest, utilizando ejemplos de la tabla de multiplicar y luego uno entrenado cuenta ejemplos (genera respuestas en el registro)
y aquí hay un ejemplo para MLP https://www.mql5.com/ru/forum/8265/page2#comment_333746

Qué regalo. ¡¡¡Gracias Max!!!

 
Maxim Dmitrievsky:

No lo sabía :) hay otras "variaciones sobre el tema"

y sin pruebas se puede ver todo en el probador

https://www.mql5.com/ru/code/19630

No he visto ninguna prueba de que su indicador esté relacionado con la palabra "cointegración". La línea naranja parece ser una serie claramente no estacionaria, mientras que debería ser estacionaria, aunque la muestra es pequeña, por lo que hay que demostrar la cointegración.
 
SanSanych Fomenko:
No he visto ninguna prueba de que su indicador tenga algo que ver con la palabra "cointegración". Un trozo de gráfico - línea naranja aparentemente, parece claramente una serie no estacionaria, y debería ser estacionaria, aunque la muestra es pequeña, por lo que hay que demostrar la cointegración.

La cointegración es una relación lineal entre las series temporales que tienen una serie estacionaria, toda verdadera

los símbolos deben coincidir... puede contar la regresión lineal para muchos símbolos, no sólo para 2. Peor aún, para 2 no contará correctamente, porque se vuelve a calcular la regresión lineal 2 veces, potmou que originalmente hizo multidivisa. Hay un bot, los resultados vertidos en otro tema. Tengo algunos índices que tienen dependencia explícita, pero mi beneficio es pequeño, alrededor del 100% anual.

Hay la misma mierda, pero a través del modelo no lineal, pero se basa en incrementos y no en los precios desnudos

P.d. No he visto ni una sola persona que opere con éxito con instrumentos cointegrados en forex (porque no hay casi ninguno). Porque, por mucho que se retuerza, si no hay dependencia fundamental, no la hay.
 
SanSanych Fomenko:
No he visto ninguna prueba de que su indicador tenga algo que ver con la palabra "cointegración". Un trozo de gráfico - la línea naranja aparentemente parece una serie no estacionaria, mientras que debería ser estacionaria, aunque la muestra es pequeña, por lo que hay que demostrar la cointegración.

Aquí hay una cointegración en el primero, y el canal se construye, y en el segundo, cómo esta misma cointegración llega a su fin...

Aquí hay otro ejemplo de cómo la cointegración se derrumba...
Archivos adjuntos:
g7p4.png  47 kb
0zz22.PNG  56 kb
 
Maxim Dmitrievsky:

La cointegración es una relación lineal entre las series temporales que tienen una serie estacionaria, toda verdadera

los símbolos tienen que coincidir... puede contar la regresión lineal para muchos símbolos, no sólo para 2. Peor aún, para 2 no contará del todo bien, porque volver a calcular la regresión lineal 2 veces, potmou que originalmente hizo multidivisa. Hay un bot, los resultados vertidos en otro tema. Gana dinero en algunos índices, que tienen una dependencia explícita, pero mi beneficio es pequeño, alrededor del 100% anual.

Existe la misma mierda, pero a través de un modelo no lineal, pero basado en incrementos y no en precios brutos.

p.d. No he visto ni una sola persona que opere con éxito con instrumentos cointegrados en forex (porque no hay casi ninguno)

No hay gente seria en el mercado de divisas, es un mercado de apuestas de un centavo. Por eso no es un indicador.

Yo tengo un modelo de este tipo, pero está limitado por la dispersión, que es variable.

Los modelos de autorregresión vectorial se utilizan ampliamente en otros mercados, con multitud de herramientas preparadas. Granger está floreciendo.