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

 
fxsaber #:

Danke, ich werde es mit MathRand-Inkrementen versuchen.

Aleksey Nikolayev #:

Die universellste Methode ist wahrscheinlich Monte Carlo.

Sieht aus, als hätte ich eine interessante Zufallsgenerierung.

double GetAvgPrice( const MqlTick &Tick )
{
  return((Tick.bid + Tick.ask) / 2);
}

void SetAvgPrice( MqlTick &Tick, const double Price )
{
  const double Spread = (Tick.ask - Tick.bid) / 2;
  
  Tick.bid = NormalizeDouble(Price - Spread, 8);
  Tick.ask = NormalizeDouble(Price + Spread, 8);
  
  return;
}

// Случайный знак приращения средней цены.
bool RandomPrice( MqlTick &Ticks[] )
{  
  const int Size = ArraySize(Ticks) - 1;
  
  if (Size > 0)
  {
    Print("Random price...");
    
    MqlTick PrevTick = Ticks[Size];
    double PrevPrice = GetAvgPrice(PrevTick);
    
    MathSrand((int)TimeLocal());
    
    for (uint i = Size; (bool)i--;)
    {
      const double Diff = GetAvgPrice(PrevTick) - GetAvgPrice(Ticks[i]);
      
      PrevTick = Ticks[i];

      SetAvgPrice(Ticks[i], PrevPrice += !(MathRand() & 1) ? Diff : -Diff);
    }
  }
  
  return(Size >= 0);
}

Oben ist ein reales Symbol, unten ein zufälliges.

RandomPrice kann iterativ angewendet werden. Spreads und Zeit werden beibehalten.


Korrekt wäre es, es über den Logarithmus zu machen, aber ich habe mir nicht die Mühe gemacht, das zu tun. Wenn wir es verfeinern, könnte es die beste Option für Monte Carlo sein, um ein Zufallssymbol mit den erforderlichen statistischen Eigenschaften zu erzeugen.

 
fxsaber #:

für Monte Carlo ist wahrscheinlich die beste Option zur Erzeugung eines Zufallssymbols mit den gewünschten statistischen Eigenschaften.

Läusetest mit demselben Satz.

Oben - echt, unten - zufällig.

Scheitern.

 

Der Unterschied besteht darin, dass in den Optimierungsergebnissen nach nichts gesucht wird. Das heißt, die ersten fünf Optimierungsergebnisse wurden noch nie auf OOS ausgeführt.

 

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

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

Valeriy Yastremskiy, 2023.08.17 10:44 AM

Es scheint logisch, dass die Wahrscheinlichkeit falsch positiver und negativer Ergebnisse sinkt, aber für mich ist das kein Allheilmittel gegen Fehler.

Glauben Sie, dass Sie dem Modell train_optim + test_forward mehr vertrauen sollten als (train+test)_optim?

 
Aleksey Vyazmikin #:

Es gibt keinen Fehler. Kein Fehler.

Ich habe eine weitere Stichprobe genommen - 47% der Einheiten und Beispiele 5 mal weniger - nach ein paar Durchläufen kann ich sagen, dass es bereits viele Quantensegmente findet.

Was ich noch beachtet habe, ist die Ähnlichkeit des ursprünglichen Ziels und des generierten Ziels - sie sind 49% ähnlich - vielleicht ist es notwendig, hier einen Schwellenwert zu setzen - nicht mehr als 30% Ähnlichkeit? Irgendeine Idee?

Ich habe ein Diagramm erstellt - wenn es eine Übereinstimmung gibt "-1", wenn es keine Übereinstimmung gibt, dann "+1", ich habe eine solche Bilanz.

Es gibt viele Trends, was denken Sie?

 
fxsaber #:

Oben ist echt, unten ist zufällig.

Ich habe die Optimierung mit den gleichen Einstellungen für das reale und das generierte Symbol durchgeführt.


Real.


Zufällig.


Es ist nicht auf Random trainiert.

 
fxsaber #:

Habe eine Optimierung mit den gleichen Einstellungen für den echten und den generierten Charakter durchgeführt.


Real.


Zufällig.


Nicht auf Random trainiert.

Wie oft wurde das Zufallssymbol generiert?) Je länger die Sequenz ist, desto öfter muss sie generiert werden, damit sie auch funktioniert.
 
fxsaber #:

Der Unterschied besteht darin, dass in den Optimierungsergebnissen nach nichts gesucht wird. D.h. die ersten fünf Optimierungsergebnisse wurden noch nie auf OOS ausgeführt.

Ich weiß nicht, wie ich es einfach ausdrücken soll.

Man wählt "von Hand" bessere Varianten auf OOS aus, nachdem man den Test optimiert hat, und es passt NICHT...

Und wenn der Algorithmus nach der Optimierung die besten Varianten auf OOS auswählt, ist es bereits passend... Warum?

Die Auswahl der besten Optionen/Variante aus der Gesamtheit der Optionen ist eine Optimierung.... Dabei spielt es keine Rolle, ob Sie dies von Hand oder mit einem Algorithmus tun.

Vielleicht haben Sie nur mit einem Tester in MT gearbeitet und denken ein wenig formelhaft über die Optimierung selbst und die Art und Weise ihrer Anwendung, deshalb haben wir einige Missverständnisse


 
fxsaber #:

Habe eine Optimierung mit den gleichen Einstellungen für den echten und den generierten Charakter durchgeführt.


Real.


Zufällig.


Es ist nicht auf Random trainiert.

Entspricht Random den Kurscharakteristika: Mittelwert, Standardabweichung, Kovarianz?
 

Maxim Dmitrievsky #:
Сколько раз был сгенерирован рандом символ?)

Erstens.

es liegt auf der Hand, dass je länger die Sequenz ist, desto mehr Male muss sie erzeugt werden, um sie auch zu bearbeiten.

Ich verstehe diese Aussage nicht. Was ist mit den beiden folgenden Optionen gemeint?

  1. Man muss viele Iterationen der Randomisierung durchführen, damit sie funktioniert.
  2. Wenn man viele zufällige Zeichen erstellt, steigt die Wahrscheinlichkeit, dass ein brauchbares darunter ist.

Scheinbar einfache Dinge, denn selbst bei verschiedenen realen Symbolen funktioniert der gleiche TC nicht.

Der Algorithmus der Randomisierung sieht wie folgt aus:

  1. Es wird eine reale Tick-Historie genommen.
  2. Daraus wird eine Folge von Inkrementen des durchschnittlichen ((Geld+Brief)/2) Preises gebildet.
  3. In dieser Folge wird jeder Term zufällig entweder mit +1 oder -1 multipliziert.
  4. Aus der erhaltenen Folge von Inkrementen wird eine neue Tick-Historie erstellt, bei der Zeit und Spread mit Punkt 1 übereinstimmen.
  5. Die neue Tick-Historie wird in ein benutzerdefiniertes Symbol geschrieben.
D.h. ein reales Symbol wird zufällig ausgewählt. Sie können Punkt 3 beliebig oft anwenden. Wenn nach Punkt 5 alle fünf Punkte wiederholt werden, ist dies dasselbe wie die zweimalige Wiederholung von Punkt 3.
Grund der Beschwerde: