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

 
Mihail Marchukajtes:

<Graphs>.

Je raccourcirais les dates d'optimisation d'un facteur six, afin que l'optimiseur ne voie que la pointe de tous ces graphiques, et j'optimiserais avec une date de reconduction dans les paramètres comme je l'ai écrit ci-dessus.

Et puis pour vérifier les meilleurs résultats trouvés, il faut déjà effectuer le test sur plusieurs mois de données, en faisant une évaluation purement visuelle.

 
Mihail Marchukajtes:

Le fait est que nous ne parlons pas de NS, mais de Sequent, alors regardez son équité avec différentes valeurs d'entrée à la même période de travail. Je ne l'ai pas optimisé, je l'ai juste parcouru à la main.

5-5

6-6

7-7

Ce cas est encore plus intéressant avec 4-8, même période. Et cela fonctionne avec un stop-loss de 300 pips.

Ceci depuis le 1er janvier jusqu'à aujourd'hui. J'avoue que j'ai choisi le dernier écran avec l'optimiseur, enfin, il n'y a que 49 passes dans l'optimiseur. Donc, en fait, je dois apprendre à choisir correctement les paramètres nécessaires non pas à partir de l'ensemble sans dimension, mais à partir de l'ensemble fini avec une si petite quantité de variantes. So..........


Pourquoi n'utilisez-vous pas le RNN de Reshetov mais le classificateur ? Il y a un noyau logique intéressant, et le robot peut fonctionner par défaut.

Maintenant il y a une telle tâche, pour alimenter l'entrée de NS avec l'oscillateur et la pente de régression pour un nombre donné de barres. En théorie, les oscillateurs ne fonctionnent qu'à plat, et ils versent dans la tendance. Si nous ajoutons des valeurs normalisées de la pente de régression, la grille prendra en compte la pente de la tendance. Ici, je n'ai pas encore décidé si je devais prendre les valeurs en degrés ou en points. Pour le moment, c'est en points, et de combien à combien de points pour les normaliser :)

double CalcRegression(double &PricesArray[])
     {
      double Summ_x=0.0;
      double Summ_y=0.0;
      double Summ_xy=0.0;
      double Summ_x_2=0.0;
      int jcount;
      for(int xcount=1; xcount<=глубина_анализа && !IsStopped(); xcount++)
        {
         jcount=глубина_анализа-xcount;
         Summ_x+=xcount;
         Summ_y+=PricesArray[jcount];
         Summ_xy+=xcount*PricesArray[jcount];
         Summ_x_2+=MathPow(xcount,2);
        }

      double bcoef=(глубина_анализа*Summ_xy-Summ_x*Summ_y)/(глубина_анализа*Summ_x_2-MathPow(Summ_x,2));  
      return(bcoef);
     }

Et voici le neurone RNN lui-même ; seules 3 valeurs de l'oscillateur sont transmises à l'entrée, ce qui n'est bien sûr pas très correct.

double RNN(double p1,double p2,double p3)
  {
//--- вероятности для правил из базы знаний экспертной системы
   double y0 = x0; // Вероятность правила №0 в процентах
   double y1 = x1; // Вероятность правила №1 в процентах
   double y2 = x2; // Вероятность правила №2 в процентах
   double y3 = x3; // Вероятность правила №3 в процентах
   double y4 = x4; // Вероятность правила №4 в процентах
   double y5 = x5; // Вероятность правила №5 в процентах
   double y6 = x6; // Вероятность правила №6 в процентах
   double y7 = x7; // Вероятность правила №7 в процентах

//--- база знаний, состоящая из набора взаимоисключающих правил
   double probability=
                      (1.0 - p1) * (1.0 - p2) * (1.0 - p3) * y0 + // Правило №0
                      (1.0 - p1) * (1.0 - p2) * p3 * y1 +         // Правило №1
                      (1.0 - p1) * p2 * (1.0 - p3) * y2 +         // Правило №2
                      (1.0 - p1) * p2 * p3 * y3 +                 // Правило №3
                      p1 * (1.0 - p2) * (1.0 - p3) * y4 +         // Правило №4
                      p1 * (1.0 - p2) * p3 * y5 +                 // Правило №5
                      p1 * p2 * (1.0 - p3) * y6 +                 // Правило №6
                      p1 * p2 * p3 * y7;                          // Правило №7

//--- конвертируем проценты в вероятности 
   probability=probability/100.0;

//--- возвращаем результат в виде вероятности
   return(probability);
  }
 
Maxim Dmitrievsky:


Pourquoi n'utilisez-vous pas le RNN de Reshetov ? Il a un moteur logique intéressant et vous pouvez faire fonctionner le robot par défaut.

La théorie est que les oscillateurs ne fonctionnent que dans le plat, alors que dans la tendance ils se déversent. En théorie, les oscillateurs ne fonctionnent que dans le plat, alors qu'ils versent dans la tendance. Si nous ajoutons des valeurs normalisées de la pente de régression, la grille prendra en compte la pente de la tendance. Ici, je n'ai pas encore décidé si je devais prendre les valeurs en degrés ou en points. Pour l'instant, ce devrait être en points, et de combien à combien de points pour les normaliser :)

Et voici le neurone RNN lui-même - seulement 3 valeurs de l'oscillateur lui sont fournies, ce qui n'est pas très correct.


Merci pour cette astuce, je vais certainement l'essayer sur mes données aujourd'hui.

S'il vous plaît, dites-moi où l'obtenir, je ne peux pas le trouver impudemment. Je ne peux pas le trouver en fouinant.

 
Mihail Marchukajtes:


Merci pour cette astuce, je vais certainement l'essayer sur mes données aujourd'hui.

Veuillez me dire où le télécharger, je ne le trouve pas. Merci !

Il y a RNN et RNN3 et son article non publié dans MQL5, mais c'est inutile. RNN fonctionne mieux dans l'optimiseur que RNN3.
Dossiers :
RNN_MT5.zip  223 kb
 
Maxim Dmitrievsky:

Et voici le neurone RNN lui-même, seules 3 valeurs d'oscillateur sont transmises à l'entrée, ce qui n'est bien sûr pas très correct.

Un code intéressant, merci. Et pour l'article aussi.


RNN(double p1,double p2,double p3)

Toutes les valeurs des paramètres p1, p2, p3 doivent être comprises entre 0 et 1. Si vous passez B de la régression à l'un de ces paramètres, veillez à le normaliser au même intervalle [0;1].


En général, cette stratégie est basée sur la théorie selon laquelle une valeur RSI élevée signifie que le prix est sur le point de baisser. Par souci de précision, trois valeurs RSI sont prises et, selon les règles de la théorie des probabilités, nous obtenons une estimation à partir de trois paramètres.
Ainsi, si au lieu du troisième RSI vous donnez votre propre signal, alors la valeur élevée de ce signal doit signifier que le prix va baisser. Sinon, vous briserez la stratégie.

 
Dr. Trader:

Un code intéressant, merci. Et pour l'article aussi.

Si vous passez une valeur B issue de la régression dans l'un de ces paramètres, elle doit être normalisée dans le même intervalle [0;1].


Oui, c'est exact. Seulement nous devrions inverser les valeurs de régression si nous voulons qu'il achète sur un marché en hausse et qu'il vende sur un marché en baisse, parce qu'il achètera si la probabilité <0.5 à la sortie du neurone, alors que le rsi devrait tendre vers zéro et la régression tombera aussi quand <0.5, alors que nous voulons qu'il croisse >0.5
 
Dr. Trader:

En général, cette stratégie est basée sur la théorie selon laquelle une valeur RSI élevée signifie que le prix va baisser. Pour faire une prédiction précise, nous avons pris trois valeurs RSI, et par certaines règles de la théorie des probabilités, nous obtenons une estimation à partir de trois paramètres.
Ainsi, si au lieu du troisième RSI vous donnez votre propre signal, alors la valeur élevée de ce signal doit signifier que le prix va baisser. Sinon, vous briserez la stratégie.


Oui, exactement, je viens d'en parler ci-dessus :)

Grille par défaut optimisée sur la m5 mise en surveillance https://www.mql5.com/ru/signals/297732

Ensuite, je vais expérimenter davantage avec différentes entrées pour le neurone.

Торговые сигналы для MetaTrader 5: NEUROSHELL test
Торговые сигналы для MetaTrader 5: NEUROSHELL test
  • Maxim Dmitrievsky
  • www.mql5.com
Торговый Сигнал NEUROSHELL test для MetaTrader 5: копирование сделок, мониторинг счета, автоматическое исполнение сигналов и социальный трейдинг
 

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

mais il y a une erreur dans le code, je pense que l'indicateur est mal rationné.

Наклон линейной регрессии
Наклон линейной регрессии
  • votes : 24
  • 2010.07.05
  • Vladimir
  • www.mql5.com
Наклон линейной регрессии, нормализованный к SMA
 
Maxim Dmitrievsky:
Il y a RNN et RNN3 et son article non publié dans MQL5. RNN fonctionne mieux dans l'optimiseur que RNN3.


Merci ! !! C'est dommage qu'il s'agisse d'un 5, mais je vais quand même l'essayer avec mes données.....

 
Mihail Marchukajtes:


Merci ! !! C'est dommage que ce soit un cinq, mais je vais quand même essayer avec mes données.....


la version 5 est pratique parce que vous pouvez faire des tests en avant, c'est juste la bonne chose pour NS, et pour la version 4 la même chose, à mon avis, était dans le codebase, si vous regardez

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

RNN_MT4
RNN_MT4
  • votes : 2
  • 2012.02.20
  • Yury Reshetov
  • www.mql5.com
Советник со встроенной экспертной системой