Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading - Seite 320

 
Mihail Marchukajtes:

<Grafiken>.

Ich würde die Optimierungsdaten um den Faktor sechs kürzen, so dass der Optimierer nur die Spitze all dieser Graphen sieht, und mit einem Rollover-Datum in den Parametern optimieren, wie ich oben schrieb.

Und dann, um die besten gefundenen Ergebnisse zu überprüfen, führen Sie den Test bereits über mehrere Monate von Daten, rein visuell zu bewerten.

 
Mihail Marchukajtes:

Der Punkt ist, dass wir nicht über NS sprechen, sondern über Sequent, also schauen Sie sich dessen Eigenkapital mit verschiedenen Eingabewerten bei gleicher Arbeitsdauer an. Ich habe sie nicht optimiert, sondern bin sie nur von Hand durchgegangen.

5-5

6-6

7-7

Dieser Fall ist noch interessanter mit 4-8, gleicher Zeitraum. Und es funktioniert mit einem Stop-Loss von 300 Pips.

Dies gilt vom 1. Januar bis heute. Ich gestehe, dass ich den letzten Bildschirm mit dem Optimierer ausgewählt habe, nun, es gibt nur 49 Durchgänge im Optimierer. Ich muss also lernen, die notwendigen Parameter nicht aus der dimensionslosen Menge, sondern aus der endlichen Menge mit einer so geringen Anzahl von Varianten richtig auszuwählen. So..........


Warum verwenden Sie nicht Reshetovs RNN, sondern den Klassifikator? Er hat einen interessanten logischen Kern, und der Bot kann so eingestellt werden, dass er standardmäßig funktioniert

Nun gibt es eine solche Aufgabe, den Eingang von NS mit Oszillator und Regressionssteigung für eine bestimmte Anzahl von Balken zu füttern. Theoretisch funktionieren Oszillatoren nur in flachen, und sie sind Gießen in den Trend. Wenn wir normalisierte Werte der Regressionssteigung hinzufügen, wird das Raster die Steigung des Trends berücksichtigen. Hier habe ich mich noch nicht entschieden, ob ich die Werte in Grad oder in Punkten nehmen soll. Vorerst soll es in Punkten sein, und von wie vielen auf wie viele Punkte normalisiert werden :)

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);
     }

Und dies ist das RNN-Neuron selbst; nur 3 Werte des Oszillators werden dem Eingang zugeführt, was natürlich nicht ganz korrekt ist

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:


Warum verwenden Sie nicht Reshetovs RNN? Es hat eine interessante Logik-Engine und Sie können den Bot standardmäßig verdienen lassen

Die Theorie besagt, dass Oszillatoren nur im Flachen funktionieren, während sie im Trend ausschütten. Theoretisch funktionieren Oszillatoren nur in der Ebene, während sie im Trend gießen. Wenn wir normalisierte Werte der Regressionssteigung hinzufügen, wird das Raster die Steigung des Trends berücksichtigen. Hier habe ich mich noch nicht entschieden, ob ich die Werte in Grad oder in Punkten nehmen soll. Vorerst soll es in Punkten sein, und von wie vielen auf wie viele Punkte normalisiert werden :)

Und dies ist das RNN-Neuron selbst - nur 3 Werte des Oszillators werden ihm zugeführt, was nicht sehr korrekt ist


Danke für den Tipp, ich werde es heute auf jeden Fall mit meinen Daten ausprobieren.

Bitte sagen Sie mir, wo ich es bekommen kann, ich kann es nicht finden, unverschämt. Ich kann sie nicht finden, wenn ich herumschnüffle.

 
Mihail Marchukajtes:


Danke für den Tipp, ich werde es heute auf jeden Fall mit meinen Daten ausprobieren.

Bitte sagen Sie mir, wo ich es herunterladen kann, ich kann es nicht finden. Ich danke Ihnen!

Es gibt RNN und RNN3 und seinen unveröffentlichten Artikel in MQL5, aber er ist nutzlos. RNN funktioniert im Optimierer besser als RNN3.
Dateien:
RNN_MT5.zip  223 kb
 
Maxim Dmitrievsky:

Und das ist das RNN-Neuron selbst, nur 3 Oszillatorwerte werden dem Eingang zugeführt, was natürlich nicht ganz korrekt ist

Interessanter Code, danke. Und auch für den Artikel.


RNN(double p1,double p2,double p3)

Alle Werte der Parameter p1, p2, p3 sollten zwischen 0 und 1 liegen. Wenn Sie B aus der Regression an einen dieser Parameter übergeben, stellen Sie sicher, dass er auf dasselbe Intervall [0;1] normalisiert wird.


Im Allgemeinen basiert diese Strategie auf der Theorie, dass ein hoher RSI-Wert bedeutet, dass der Kurs im Begriff ist, zu fallen. Im Interesse der Genauigkeit werden drei RSI-Werte genommen, und nach den Regeln der Wahrscheinlichkeitstheorie erhalten wir eine Schätzung aus drei Parametern.
Wenn Sie also anstelle des dritten RSI Ihr eigenes Signal geben, dann muss der hohe Wert dieses Signals bedeuten, dass der Preis sinken wird. Andernfalls werden Sie die Strategie verletzen.

 
Dr. Trader:

Interessanter Code, danke. Und auch für den Artikel.

Wenn Sie einen B-Wert aus der Regression in einen dieser Parameter eingeben, muss er auf das gleiche Intervall [0;1] normiert werden.


Ja, das ist richtig. Nur sollten wir die Regressionswerte invertieren, wenn wir wollen, dass er bei einem steigenden Markt kauft und bei einem fallenden verkauft, denn er wird kaufen, wenn die Wahrscheinlichkeit <0,5 am Ausgang des Neurons ist, während rsi gegen Null tendieren sollte und die Regression auch fallen wird, wenn sie <0,5 ist, während wir wollen, dass sie >0,5 wächst
 
Dr. Trader:

Im Allgemeinen basiert diese Strategie auf der Theorie, dass ein hoher RSI-Wert bedeutet, dass der Kurs sinken wird. Um eine genaue Vorhersage zu treffen, haben wir drei RSI-Werte genommen, so dass wir nach der Wahrscheinlichkeitstheorie mit drei Parametern die gleiche Schätzung erhalten.
Wenn Sie also anstelle des dritten RSI Ihr eigenes Signal geben, dann muss der hohe Wert dieses Signals bedeuten, dass der Preis sinken wird. Andernfalls werden Sie die Strategie verletzen.


Ja, genau, ich habe gerade oben darüber geschrieben :)

Standardgitter optimiert auf m5 in die Überwachung eingestellt https://www.mql5.com/ru/signals/297732

Dann werde ich mehr mit verschiedenen Eingaben für das Neuron experimentieren

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

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

Nur gibt es einen Fehler im Code, ich glaube, der Indikator ist falsch rationiert

Наклон линейной регрессии
Наклон линейной регрессии
  • Stimmen: 24
  • 2010.07.05
  • Vladimir
  • www.mql5.com
Наклон линейной регрессии, нормализованный к SMA
 
Maxim Dmitrievsky:
Es gibt RNN und RNN3 und seinen unveröffentlichten Artikel in MQL5. RNN funktioniert im Optimierer besser als RNN3.


Danke!!! Schade, dass es nur eine 5 ist, aber ich werde es trotzdem mit meinen Daten versuchen....

 
Mihail Marchukajtes:


Danke!!! Schade, dass es eine Fünf ist, aber ich werde es trotzdem mit meinen Daten versuchen....


die Version 5 ist praktisch, weil man Vorwärtstests machen kann, es ist einfach das Richtige für NS, und für die Version 4 war das Gleiche meiner Meinung nach in der Codebasis, wenn Sie schauen

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

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