L'apprentissage automatique dans la négociation : théorie, modèles, pratique et algo-trading - page 620

 
Anatolii Zainchkovskii:

Par exemple, si j'analyse seulement 10 barres de l'historique pour prédire une barre dans le futur, un réseau neuronal trouvera des centaines de modèles à partir de ces 10 barres, mais je suggère un modèle et je forme le réseau neuronal à l'avance.


Le SN trouvera difficilement quelque chose par lui-même, il doit d'abord faire une analyse statistique de toute façon, ou il peut trouver quelque chose qui n'est pas clair. J'essaie toujours d'adapter le SN aux TS existants, pour éviter de devoir écrire toutes les règles manuellement.

Vous pouvez utiliser alglib dans tous les cas, vous pouvez l'essayer, vous apprenez NS en 5 lignes

 
Maxim Dmitrievsky:

Il est peu probable que la NS trouve quelque chose par elle-même, vous devez d'abord faire une analyse statistique de toute façon... ou elle peut trouver quelque chose qui n'est pas clair. J'essaie toujours d'adapter le SN au TS existant, afin de ne pas prescrire toutes les règles manuellement.

En tout cas, vous pouvez prendre alglib et l'essayer, il enseigne le NS en 5 lignes


Quand je cherche je vois que tu es arrivé à une Random Forest, on m'en a parlé depuis longtemps.... et pour l'analyse statistique j'ai juste dit que c'était 50/50, j'ai continué à jouer le robot et j'ai écrit les résultats dans un fichier... Je ne peux pas voir quels signes peuvent changer ou avoir de l'importance pour le résultat, alors j'ai décidé de laisser le réseau neuronal reconnaître quelque chose que je ne peux pas voir...

 
Anatolii Zainchkovskii:

Je n'ai jamais vu d'exemple d'utilisation d'Algleb NS, j'ai cherché et je suis arrivé sur ce fil de discussion et j'ai vu que tu as essayé de le mettre en œuvre. En lisant plus loin, je vois que tu es arrivé à Random Forest, dont on m'a parlé depuis longtemps.... et à propos de l'analyse statistique, j'ai juste dit 50/50, j'ai lancé le robot et j'ai écrit les résultats dans un fichier ... J'ai essayé d'utiliser un neurone pour reconnaître quelque chose que je ne peux pas voir...

Voici un exemple de Random Forest, utilisant des exemples de la table de multiplication, puis un entraîné compte les exemples (génère des réponses dans le journal)
#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);
}
et voici un exemple pour MLP https://www.mql5.com/ru/forum/8265/page2#comment_333746
Библиотеки: ALGLIB - библиотека численного анализа
Библиотеки: ALGLIB - библиотека численного анализа
  • 2012.10.12
  • www.mql5.com
Статьи и техническая библиотека по автоматическому трейдингу: Библиотеки: ALGLIB - библиотека численного анализа
 
Maxim Dmitrievsky:

Eh bien, le portefeuille n'est pas stationnaire, il ne va pas de sigma en sigma, mais se fissure périodiquement... et puis il recalcule et se fissure à nouveau...

Il ne doit pas aller de sigma en sigma, il doit vivre tant que la cointégration entre les lignes est vivante.


PS. On parle de co-intégration lorsque deux séries non stationnaires sont additionnées d'une manière particulière et qu'une série stationnaire est obtenue en vertu de cette addition particulière. Il existe un test spécial pour cela. Cette idée est largement utilisée par les créateurs de portefeuilles.

Il y a beaucoup de tests qui garantissent un "crash".

 
SanSanych Fomenko:

Elle ne doit pas aller de sigma en sigma, mais doit vivre aussi longtemps que la cointégration entre les lignes est vivante.


PS. La co-intégration consiste à additionner deux séries non stationnaires d'une manière particulière et à obtenir une série stationnaire en vertu de cette addition particulière. Il existe un test spécial pour cela. Cette idée est largement utilisée par les créateurs de portefeuilles.

Beaucoup de tests qui garantissent contre un "crash".


Je ne savais pas :) il y a d'autres "variations sur le thème".

et sans tests vous pouvez tout voir dans le testeur

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

Cointegration
Cointegration
  • votes : 18
  • 2017.12.26
  • Maxim Dmitrievsky
  • www.mql5.com
Индикатор находит коэффициенты линейной регрессии для каждого из выбранных инструментов со всеми остальными, и выводит на график в виде стандартных отклонений. Сумма всех кривых...
 
Maxim Dmitrievsky:
Voici un exemple de Random Forest, utilisant des exemples de la table de multiplication, puis un entraîné compte les exemples (génère des réponses dans le journal)
et voici un exemple pour MLP https://www.mql5.com/ru/forum/8265/page2#comment_333746

quel cadeau. merci Max !!!

 
Maxim Dmitrievsky:

Je ne savais pas :) il y a d'autres "variations sur le thème".

et sans tests vous pouvez tout voir dans le testeur

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

Je n'ai vu aucune preuve que votre indicateur est lié au mot "cointégration". La ligne orange semble être une série clairement non-stationnaire, alors qu'elle devrait être stationnaire, bien que l'échantillon soit petit, donc la cointégration doit être prouvée.
 
SanSanych Fomenko:
Je n'ai vu aucune preuve que votre indicateur ait quelque chose à voir avec le mot "cointégration". Un morceau de graphique - ligne orange apparemment, cela ressemble clairement à une série non stationnaire, et elle devrait être stationnaire, bien que l'échantillon soit petit, donc la cointégration doit être prouvée.

la cointégration est une relation linéaire entre des séries temporelles ayant une série stationnaire, toutes les vraies

les symboles doivent être appariés... il peut compter la régression linéaire pour beaucoup de symboles, pas seulement 2. Pire encore, pour 2 ne comptera pas correctement, parce qu'il recalcule la régression linéaire 2 fois, potmou qui a fait à l'origine multidevise. Il y a un bot, les résultats versés dans un autre sujet. J'ai quelques indices qui ont une dépendance explicite, mais mon bénéfice est faible, environ 100% par an.

Il y a la même merde, mais par le biais du modèle non linéaire, mais il est basé sur les incréments et non sur les prix nus

P.s. Je n'ai pas vu une seule personne qui négocie avec succès des instruments cointégrés sur le marché des changes (parce qu'il n'y en a presque pas). Parce que peu importe comment vous vous tortillez, s'il n'y a pas de dépendance fondamentale, il n'y en a pas.
 
SanSanych Fomenko:
Je n'ai vu aucune preuve que votre indicateur ait quelque chose à voir avec le mot "cointégration". Un morceau de graphique - la ligne orange semble apparemment être une série non stationnaire, alors qu'elle devrait être stationnaire, bien que l'échantillon soit petit, donc la cointégration doit être prouvée.

Voici une cointégration sur la première, et le canal est construit, et sur la deuxième, comment cette même cointégration se termine...

Voici un autre exemple de l'effondrement de la cointégration...
Dossiers :
g7p4.png  47 kb
0zz22.PNG  56 kb
 
Maxim Dmitrievsky:

la cointégration est une relation linéaire entre des séries temporelles ayant une série stationnaire, toutes les vraies

les symboles doivent être appariés... il peut compter la régression linéaire pour beaucoup de symboles, pas seulement 2. Pire encore, pour 2 ne comptera pas tout à fait juste, car recalculer la régression linéaire 2 fois, potmou qui à l'origine fait multidevise. Il y a un bot, les résultats versés dans un autre sujet. Il gagne de l'argent sur certains indices, qui ont une dépendance explicite, mais mon bénéfice est faible, environ 100% par an.

Il y a la même merde, mais à travers un modèle non linéaire, mais il est basé sur les incréments et non sur les prix bruts.

p.s. Je n'ai pas vu une seule personne négocier avec succès des instruments cointégrés sur le marché des changes (parce qu'il n'y en a presque pas).

Il n'y a pas de gens sérieux dans le forex - c'est un marché de paris à un centime. C'est pourquoi ce n'est pas un indicateur.

J'ai un tel modèle, mais il est limité par l'écart, qui est variable.

Les modèles d'autorégression vectorielle sont largement utilisés sur d'autres marchés, il existe de nombreux outils prêts à l'emploi. Granger s'épanouit.