Sagen Sie mir nicht, dass die TA nicht funktioniert. - Seite 24

 

Im Allgemeinen können wir sagen, dass das Geheimnis der TC-Anpassung bei Perceptrons gelöst ist:


Angenommen, wir haben drei nebeneinander liegende Abschnitte mit historischen Daten: A, B, C

Wenn wir eine Anpassung bei B und C haben und OOS bei A, dann werden falsche Signale durch den Filter abgeschnitten: PerceptronA = signum(signum(PerceptronB) + signum(PerceptronC))

Wenn wir eine Anpassung bei A und B und OOS bei C haben, werden falsche Signale durch den Filter herausgefiltert: PerceptronC = signum(signum(PerceptronA) - signum(PerceptronB))


Hier gelten die Gesetze der Arithmetik, d.h.: wenn A = B + C, dann: C = A - B


wo:

signum(x) ist eine Vorzeichenfunktion, d. h. ihr Wert ist abhängig vom Argument gleich:

signum(x) = 0 wenn x = 0

signum(x) = 1 wenn x > 0

signum(x) = -1 wenn x < 0

D.h. die Handelssignale müssen für einen erfolgreichen OOS-Test in der Vergangenheit konsistent und für einen erfolgreichen OOS-Test in der Zukunft divergent sein.


Jetzt ist klar, warum der TS auf Perceptrons, wenn er nur für einen einzigen Geschichtsabschnitt optimiert ist, in Zukunft passen wird. Denn wenn wir den optimierten Teil in zwei Teile aufteilen und berücksichtigen, dass die Signale darauf nicht übereinstimmen müssen, erhalten wir 0 auf der Differenz, d.h. kein Signal, da wir es mit Unsicherheit zu tun haben. Das Ergebnis ist, dass wir anstelle eines Handelssignals SB erhalten, was zum Verlust von ungefähr dem Spread führt.

 

Sehr cool!

Angenommen, wir haben drei benachbarte Abschnitte mit historischen Daten: A, B, C und einen zukünftigen Abschnitt D

Wenn B und C fit sind, dann

1) Um mit dem Plan A Gewinn zu machen, müssen wir öffnen, wenn die Signale B und C übereinstimmen,

2. und um einen Gewinn im D-Bereich zu erzielen, sollten wir öffnen, wenn die B- und C-Signale nicht übereinstimmen.


Was zum Teufel ist das, T. Reshetov? Hier ist die Implementierung des Algorithmus zum Öffnen/Schließen von Positionen:

//************************************************************          
void T_SetSignales(int PASS, bool& BUY_Sign, bool& BUY_Stop, bool& SELL_Sign, bool& SELL_Stop, int& LastBar )  
  {      
   BUY_Sign  = false;
   BUY_Stop  = false;
   SELL_Sign = false;
   SELL_Stop = false;
   
   int P1 = perceptron1();
   int P2 = perceptron2();
   
  switch(PASS)
   {
    case 1 : if (P1 > 0)      {BUY_Sign  = true; SELL_Stop = true;} 
                   else               {SELL_Sign = true; BUY_Stop  = true;}  break;
    case 2 : if (P2 > 0)      {BUY_Sign  = true; SELL_Stop = true;} 
                   else               {SELL_Sign = true; BUY_Stop  = true;}  break;
    case 3 : if (  (P1 + P2)  > 0)     {BUY_Sign  = true; SELL_Stop = true;} 
             if       (  (P1 + P2)  < 0)     {SELL_Sign = true; BUY_Stop  = true;}
             if         (  P1 > 0 &&  P2 < 0)  {SELL_Stop = true; BUY_Stop  = true;}
             if         (  P1 < 0 &&  P2 > 0)  {SELL_Stop = true; BUY_Stop  = true;}
             break; 
   }  // switch(PASS)
   return;  
  } //  void SetSignales ()       
//************************************************************          

Если вас не затруднит, поправьте.
 

Юрий Васильевич, хотелось бы обратить ваше внимание, что история самого последнего/правого интервала подгонки-оптимизации

не учитывается в вашей программе автоматизации подгонки-оптимизации.

Если я в 23 часа сегодня готовлю программу gold_dust для работы с начала следующего дня, то для Н1 пропадают 23 бара.

 

more:

Juri Wassiljewitsch, ich möchte Sie darauf aufmerksam machen, dass die Geschichte des jüngsten/richtigsten Anpassungsoptimierungsintervalls

wird in Ihrem Automatisierungsprogramm zur Optimierung der Anpassung nicht berücksichtigt.

Wenn ich heute um 23 Uhr ein gold_dust-Programm vorbereite, das ab dem nächsten Tag arbeiten soll, dann fehlen 23 Balken für H1.



1. Nicht Wassiljewitsch, sondern Wjatscheslawowitsch.

2. Nicht in meinem Programm, sondern im MT4-Strategie-Tester

 
Reshetov:

1. Nicht Wassiljewitsch, sondern Wjatscheslawowitsch.

2. Nicht in meinem Programm, aber im MT4-Strategie-Tester

1. ich entschuldige mich für den Tippfehler.

2. Immer wenn Sie das MT4-Terminal zur Ausführung laden, setzen Sie das Datum ganz rechts im Intervall für den Strategietester auf das aktuelle Datum,

also ohne den aktuellen Tag. Es wäre natürlicher, den nächsten Tag als rechten Rand des gesamten Prüfintervalls festzulegen,

dann wird der aktuelle Tag in das Prüfintervall einbezogen.

 
Farnsworth:Überprüfen Sie die resultierenden neuen Rentabilitätsgraphen auf Zufälligkeit.
Bitte gehen Sie auf diesen Punkt ein, Sergey. Worauf ist zu achten und welche Art von Zufälligkeit?
 
Mathemat:
Bitte gehen Sie auf diesen Punkt näher ein, Sergei. Was muss geprüft werden und auf welche Art von Zufälligkeit?
Irgendwie habe ich mich auch dafür interessiert, war aber zu schüchtern, um zu fragen)))) (um nicht als Narr dazustehen:)))
 
Mathemat:
Seien Sie ab jetzt bitte etwas genauer, Sergiy. Was soll geprüft werden und auf welche Art von Zufälligkeit?

Ich habe vielleicht etwas Dummes gesagt, aber ich bin kein Mathematiker, ich lerne gerade :o) Meine Überlegung ist: Was ist Handel? Ich kann viele Definitionen geben, aber eine davon könnte zum Beispiel lauten: Es handelt sich um einen Prozess der Umwandlung der "Angebotskurve" in eine "Einlagenkurve". Denn es ist klar, dass man die Qualität eines Handelsprozesses anhand der Einzahlungs- (oder Bilanz-) Kurve beurteilen kann. Der ideale Handelsprozess verwandelt die Kurskurve in die ideale, positiv verlaufende Gleichgewichtslinie.

Die Gleichgewichtskurve habe ich aus Gründen der Übersichtlichkeit von anderen übernommen (allerdings ohne Erlaubnis):

Wenn ich zum Beispiel ein Investor oder ein Händler bin und ein bestimmtes Handelssystem kaufen/vertrauen/überprüfen möchte, mit anderen Worten, eine Art objektive Bewertung des Handelsprozesses selbst vornehmen möchte, gibt es wahrscheinlich viele Möglichkeiten, dies zu erreichen. Ich versuche nur, die resultierende Kurve auf die Zufälligkeit des Ergebnisses zu untersuchen. Schließlich sagt die Tatsache, dass jetzt ein positiver Saldo erzielt wurde, noch gar nichts aus.

Im Folgenden untersuche ich die Zeitreihen der Gleichgewichtskurve:

  • Trend- und Zufallskriterien (Rang-, Serien-, Inversions-, Autokorrelationskriterium usw., von denen es viele gibt)
  • Fraktalanalyse

Ich prüfe immer auf diese Weise, genau diese Prüfung und lehnt viele meiner schönen Kurven mit positivem Saldo ab, weil es zufällige Fragmente gibt.

PS: Hier sind meine Zweifel, wenn ich eine solche Kurve betrachte. Es ist zu schief :o)

Nachtrag

Ich habe vergessen, eines der wichtigsten Kriterien hinzuzufügen: Wenn die fraktalen Merkmale eines Kursverlaufs mit den fraktalen Merkmalen eines Handelsprozesses übereinstimmen oder ihnen nahe kommen, wird die Strategie abgelehnt.

 

Heute habe ich eine interessante Funktion in dem EA gefunden, der in GD2 enthalten ist. Es stellt sich heraus, dass Sie in Zukunft nicht im 3. Modus (Pass = 3), sondern im 1. oder 2.

Wir nehmen den EA und die Historie für 12 Monate, d.h. ein Jahr. Wir unterteilen die Geschichte in 4 Teile von 3 Monaten: I, II, III und IV Quartale.

I und IV Viertel - dies ist OOS, II und III - Proben.

Stufe 1. Zunächst finden wir die optimalen Werte für p und sl, d.h. wir legen die Daten für die Quartale II und III fest, kreuzen das erste Perzeptron x11, x21, x31, x41 an und kreuzen auch p und sl an. Modus Durchgang = 1. Optimieren und bestes Ergebnis einstellen.

Stufe 2. Setzen Sie die Daten auf Q2, deaktivieren Sie p und sl und optimieren Sie die Einstellungen für das erste Perceptron. Stellen Sie das beste Ergebnis in den Einstellungen ein.

Stufe 3. Setzen Sie die Daten für das III. Quartal, entfernen Sie die Häkchen bei x11, x21, x31, x41, setzen Sie x12, x22, x32, x42, pass = 2 und optimieren Sie die Einstellungen für das zweite Perzeptron. Wir stellen das beste Ergebnis in den Einstellungen ein.

4. Schritt. Schalten Sie Pass = 3 ein, setzen Sie das Datum auf das erste Quartal und führen Sie den Test durch. Wenn der Test erfolgreich ist, bedeutet dies, dass mindestens eines der Perzeptrons robust ist.

D.h. alle oben genannten Schritte wie bei der GD2-Methodik.

Schritt 5. Daten auf Q4 setzen, Pass = 1. Führen Sie den Test durch.

Schritt 6. Termine für Q4 festlegen, bestehen = 2. Führen Sie den Test durch.

Mindestens einer der Tests in Par. 5 oder Abs. 6 sollte erfolgreich sein.

Aber wir haben die Tests in der Zukunft, also sozusagen im 4. Und GD lässt alles in der Vergangenheit laufen, d.h. in den ersten 3 Quartalen. Woher wissen wir, welcher Durchgang = 1 oder Durchgang = 2 bessere Ergebnisse bringt? Wir legen die Daten für die ersten 3 Quartale fest und lassen sie zunächst im Modus 1 und dann im Modus 2 laufen. Und dann schauen wir uns die besseren Ergebnisse für alle 9 Monate an - der Modus ist am robustesten.

 
Farnsworth:

Zur Untersuchung der Zeitreihen der Gleichgewichtskurve verwende ich die folgende Methode:

  • Trend- und Zufälligkeitskriterien (Rang-, Serien-, Inversions-, Autokorrelationskriterium usw., von denen es viele gibt)
  • Fraktalanalyse
Ich prüfe immer auf diese Weise, und genau diese Prüfung verwirft viele meiner schönen Kurven mit positivem Saldo, weil sie zufällige Fragmente enthalten.

Warum ist es so schwer (ich meine in blau)? Glauben Sie nicht, dass Sie auf diese Weise ein gutes System ablehnen können? Ja, ich verstehe schon: Sie scheinen ein extremer Perfektionist zu sein...

Imho ist die als "Erfolg-Misserfolg" ausgedrückte Abfolge von Geschäften überwiegend ein Bernoulli-Prozess. Wie entfernt man also den Zufall von dort?