Diskussion zum Artikel "Brute-Force-Ansatz zur Mustersuche (Teil VI): Zyklische Optimierung"

 

Neuer Artikel Brute-Force-Ansatz zur Mustersuche (Teil VI): Zyklische Optimierung :

In diesem Artikel zeige ich den ersten Teil der Verbesserungen, die es mir ermöglicht haben, nicht nur die gesamte Automatisierungskette für den Handel mit MetaTrader 4 und 5 zu schließen, sondern auch etwas viel Interessanteres zu tun. Von nun an ermöglicht mir diese Lösung, sowohl die Erstellung von EAs als auch die Optimierung vollständig zu automatisieren und die Arbeitskosten für das Finden effektiver Handelskonfigurationen zu minimieren.

Das wichtigste Element der ganzen Idee ist das Interaktionssystem zwischen dem Terminal und meinem Programm. Es handelt sich um einen zyklischen Optimierer mit erweiterten Optimierungskriterien. Die wichtigsten wurden bereits im vorherigen Abschnitt behandelt. Damit das gesamte System funktioniert, benötigen wir zunächst eine Quelle für Kurse, nämlich eines der MetaTrader 5-Terminals. Wie ich bereits im vorigen Artikel gezeigt habe, werden Kurse in eine Datei in einem für mich bequemen Format geschrieben. Dies geschieht mit Hilfe eines EA, der auf den ersten Blick recht seltsam funktioniert:

.

Konzept zum Schreiben von Zitaten durch einen EA

Ich fand es eine interessante und nützliche Erfahrung, mein eigenes Schema für das Funktionieren des EA zu verwenden. Dies ist nur eine Demonstration der Probleme, die ich zu lösen hatte, aber all dies kann auch für Handels-EAs verwendet werden:

 

Beispiel für die Verwendung eines EA zum Schreiben von Kursen

Autor: Evgeniy Ilin

 

формулы 2

Linearitätsfaktor

Machen wir uns klar, was in dieser Formel steckt:

  • N - die Anzahl der vollständig geöffneten und geschlossenen Handelspositionen während des gesamten Backtests oder Handelsabschnitts.
  • B(i) - der Wert der Saldenlinie nach der entsprechenden geschlossenen Position "i".
  • L(i) - die Linie, die von Null bis zum letzten Bilanzpunkt (Endbilanz) gezogen wird.

Es scheint fast Sharpe zu sein:

//--- Berechnung der Logarithmen von Inkrementen aus dem Eigenkapital-Array
   for(int i = 1; i < m_bars_counter; i++)
     {
      //--- nur hinzufügen, wenn sich das Eigenkapital geändert hat
      if(m_equities[i] != prev_equity)
        {
         log_return = MathLog(m_equities[i] / prev_equity); // Logarithmus der Schrittweite
         aver += log_return;            // durchschnittlicher Logarithmus der Inkremente
         AddReturn(log_return);         // Füllen der Logarithmenmatrix aus Inkrementen
         counter++;                     // Ertragszähler
        }
      prev_equity = m_equities[i];
     }
//--- wenn nicht genügend Werte für die Berechnung der Sharpe-Ratio vorhanden sind, wird 0 zurückgegeben
   if(counter <= 1)
      return(0);
//--- Durchschnittswert des Logarithmus der Schrittweite
   aver /= counter;
//--- Berechnung der Standardabweichung
   for(int i = 0; i < counter; i++)
      std += (m_returns[i] - aver) * (m_returns[i] - aver);
   std /= counter;
   std = MathSqrt(std);
//--- Sharpe Ratio für den aktuellen Zeitrahmen
   double sharpe = aver / std;
Математика в трейдинге: Коэффициенты Шарпа и Сортино
Математика в трейдинге: Коэффициенты Шарпа и Сортино
  • www.mql5.com
Доходность является самым очевидным показателем, который используют инвесторы и начинающие трейдеры для анализа эффективности торговли. Профессиональные трейдеры пользуются более надежными инструментами для анализа стратегии, среди них — коэффициенты Шарпа и Сортино.
 
fxsaber #:

Ich glaube, es ist fast ein Sharpe:

Es gibt etwas Ähnliches, aber nur auf den ersten Blick. Jeder vermisst das Modell des Bilanzwachstums. Wenn die Steigung des Bilanzwachstums ständig sinkt (die zweite Ableitung der Bilanzkurve ist negativ), dann ist ein solches Modell nicht zu bevorzugen, weil es bald negativ werden kann. Es geht also darum, die Kurven auszuwählen, die grafisch am vielversprechendsten aussehen.

 
Evgeniy Ilin #:

Es gibt Ähnlichkeiten, aber nur auf den ersten Blick. Jeder vermisst das Modell des Saldenwachstums. Wenn die Steigung des Saldenwachstums ständig abnimmt (die zweite Ableitung der Saldenkurve ist negativ), ist ein solches Modell nicht zu bevorzugen, da es bald in den negativen Bereich gehen kann. Es geht also darum, die Kurven auszuwählen, die grafisch am vielversprechendsten aussehen.

Der Sharpe-Algorithmus für absteigende Kurven wird einen negativen Wert ergeben. Ich habe Ihnen nur eine Analogie gegeben, es hat keinen Sinn, Sharpe.... zu diskutieren.


Beispiele aus meiner Erfahrung.

  • Kriterium "schöne Kurve" - besteht nicht OOS.
  • Kriterium "hässliche Kurve" - besteht OOS, während sich die Kurve selbst als schön erweist.
  • Null-Provision - gilt nicht als OOS.
  • Provision ist festgelegt - besteht OOS.

D.h. es stellt sich heraus, dass bei der Optimierung auf Schönheit die Anpassungskomponente hoch ist. Wenn etwas Sinnvolles gefunden wird, sieht es schön aus.

Deshalb suche ich selbst nicht nach Schönheit. Ich verlasse mich mehr auf die Anzahl der Angebote und den Algorithmus des TS-Kerns. Das Ziel ist es, Schönheit ohne Schönheitskriterien zu erhalten. In der Regel geht diese Variante OOS.


ZY Die Variante mit einer Provision ist interessanter (aber in der Regel umgekehrt: weniger Provision - mehr Wahrscheinlichkeit, ein Muster zu finden). Sie reduziert zwar die Anzahl der Transaktionen (statistische Signifikanz), erhöht aber die Wahrscheinlichkeit einer erfolgreichen Suche.

 
fxsaber #:

Der Sharpe-Algorithmus für abwärts gerichtete Kurven ergibt einen negativen Wert. Dies ist nur eine Analogie, es hat keinen Sinn, Sharpe..... zu diskutieren.


Beispiele aus meiner Erfahrung.

  • Das Kriterium "schöne Kurve" - erfüllt das OOS-Kriterium nicht.
  • Das Kriterium "hässliche Kurve" - besteht OOS, aber die Kurve selbst ist schön.
  • Null-Provision - gilt nicht als OOS.
  • Kommissionssatz - besteht OOS.

Es zeigt sich also, dass die Anpassungskomponente hoch ist, wenn die Optimierung auf Schönheit ausgerichtet ist. Wenn etwas Sinnvolles gefunden wird, sieht es schön aus.

Deshalb suche ich selbst nicht nach Schönheit. Ich verlasse mich mehr auf die Anzahl der Angebote und den Algorithmus des TS-Kerns. Das Ziel ist es, Schönheit ohne Schönheitskriterien zu erhalten. In der Regel geht diese Variante OOS.


ZY Die Variante mit einer Provision ist interessanter (aber in der Regel umgekehrt: weniger Provision - mehr Wahrscheinlichkeit, ein Muster zu finden). Sie reduziert zwar die Anzahl der Transaktionen (statistische Signifikanz), erhöht aber die Wahrscheinlichkeit einer erfolgreichen Suche.

Nun, es ist klar, dass es da noch Grenzen gibt. Ich gehe zum Beispiel folgendermaßen vor:

  • Ich lege die erforderliche Mindesterwartung in Pips fest (ich berücksichtige nur den Spread, füge aber auch die Kommission und den Swap hinzu, ungefähr).
  • Ich lege die erforderliche Mindestanzahl von Trades fest, die ich unter Berücksichtigung der Länge des betrachteten Abschnitts benötige
  • Ich stelle den Kurvenanpassungsfaktor ein
Es macht keinen Sinn, etwas innerhalb des Spreads zu suchen). Es wird sehr wenige Trades geben, das ist eine Tatsache, da kann man nichts machen. Es gibt überall Anpassungen, die Frage ist nur, wie man sie minimieren kann, ohne auf den Algorithmus selbst zu achten. Es gibt Möglichkeiten. Nur ohne Kurvenschätzung können wir uns nur darauf verlassen, dass der Algorithmus zunächst graal ist, was ich an den Fingern abzählen kann. Ich habe Methoden, wie man darauf verzichten kann, aber ich habe Angst, so etwas hier zu schreiben ))).
 
Evgeniy Ilin #:

Es ist klar, dass es immer noch Grenzen gibt. Das ist meine Arbeitsweise:

  • Ich lege die erforderliche Mindesterwartung in Punkten fest (wobei ich nur den Spread berücksichtige, aber auch die Kommission und den Swap hinzurechne, ungefähr).

Ich tue das nicht. Die Regelmäßigkeiten des Marktes hängen nicht von den Handelsbedingungen des Brokers ab. Ich bin dazu geneigt.

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

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

fxsaber, 2023.08.19 11:10 AM

Broker für historische Daten, um nach dem höchsten Gewinnpotenzial zu wählen. Zum Beispiel ist das Potenzial von EURUSD_Broker1 höher als das von EURUSD_Broker2. Dann nehmen Sie EURUSD_Broker1.

Sowohl Majors als auch Crosses können skaliert werden. Aber nicht alle. Trainieren Sie einfach mit jedem von ihnen und sehen Sie sich die Ergebnisse an. Das ist es, was ich mache, grob gesagt.

D.h. es ist logisch, dort zu suchen, wo die Konzentration von "Gold im Stein" höher ist.


  • Ich lege die Mindestanzahl von Zügen fest, die ich angesichts der Länge des fraglichen Gebiets benötige.
Ja, dies ist eine Art Hilfe für die Genetik, um nicht in Sackgassen zu geraten.
  • Ich passe den Faktor der Kurvenanpassung an.
Das ist genau das, was ich absichtlich nicht mache. Man kann den TS zum Beispiel so trainieren, dass er einen PF>2,5 erzeugt. Mit einer angemessenen Anzahl von Trades wird er fast automatisch eine schöne Kurve erzeugen. Ich habe noch nicht angefangen, viel zu üben. Aber für die Forschung ist es natürlich immer interessant zu sehen.
Es hat keinen Sinn, nach etwas innerhalb des Spreads zu suchen). Es wird sehr wenige Trades geben, das ist eine Tatsache, damit kann man nichts anfangen. Es gibt überall Anpassungen, die Frage ist nur, wie man sie minimieren kann, ohne auf den Algorithmus selbst zu achten. Es gibt Möglichkeiten. Nur ohne Kurvenschätzung können wir uns nur darauf verlassen, dass der Algorithmus zunächst graal ist, was ich an den Fingern abzählen kann. Ich habe Methoden, wie man darauf verzichten kann, aber ich habe Angst, so etwas hier zu schreiben ))).

Ich verstehe den Zusammenhang zwischen dem TS und dem Spread nicht.

 
@fxsaber

  • Например, можно обучить ТС, чтобы выдавал PF>2.5. При должном количестве сделок это почти автоматом выдаст красивую кривую
Es mag schön sein, aber die Form ist anders, die mögliche Weiterleitung hängt von der Form ab. Zumindest wird es die Wahrscheinlichkeit erhöhen, ein funktionierendes Setup zu finden. Gewinnfaktor von 2,5 ist sehr fett, ich würde sagen, 1,5 ist ziemlich viel )) solche Zahlen bei der Anpassung in der Regel passieren. Es ist eine Art, die verbleibenden Einstellungen (meine Kriterien) zu gewichten, indem mehr Einstellungen verworfen werden. Ich bin in der Robotik zu einem interessanten Paradigma gelangt, bei dem die Hauptarbeit von Add-ons über Algorithmen geleistet wird und wenig vom Algorithmus abhängt. Hier ist jedes Kriterium, das die Bedeutung einer bestimmten Einstellung erhöht, wertvoll. Schließlich arbeiten sie alle zusammen auf ihrer eigenen Ebene.

Ich stimme mit dem Rest überein.

.
  • Ich verstehe den Zusammenhang zwischen dem TS und dem Spread nicht
Wenn Scalping dann ja, hier verwenden wir Bid und alle, in der Regel Ask Floats aus dem Spread. Aber Ticks sind für viele Leute anders, und es hängt viel davon ab ). Nur der Punkt ist, dass der Spread so klein wie möglich als die durchschnittliche Größe eines Handels in Punkten war, als ob wir den Spread vernachlässigen, so dass es nicht das Signal beeinflussen, wenn der Broker zu ändern, zum Beispiel, gut, das ist meine Phantasie).
 
Evgeniy Ilin #:
Sie kann schön sein, aber die Form ist anders, und die mögliche Weiterleitung hängt von der Form ab.

Beispiel für eine Kurve, die nach dem MaxBalance-Kriterium (nicht nach Schönheit) gefunden wurde.

 
fxsaber #:

Ein Beispiel für eine Kurve, die nach dem MaxBalance-Kriterium gefunden wurde (nicht nach Schönheit).

Es wäre interessant, viele Kurven auf diese Weise ausgewählt zu sehen (MaxBalance-Kriterium "nicht nach Schönheit").

 
Anatoli Kazharski #:

Es wäre interessant, viele Kurven auf diese Weise ausgewählt zu sehen (MaxBalance-Kriterium "nicht nach Schönheit").

Dies war das sechste Ergebnis in der entsprechenden opt-Datei. Die ersten fünf sehen schlechter aus.

Ich führe eine kleine Anzahl von GA-Durchläufen durch, damit die Eingabeparameter nicht zu nahe beieinander liegen.

 

Ich habe den Eindruck, dass es einige Ansätze zum Aufbau eines TS gibt, bei denen das MaxBalance-Kriterium mit einer Begrenzung der Anzahl der Trades von unten immer eine schöne Kurve beim Sample ergibt. In diesem Fall kann ein solcher TS als etwas Rationales angesehen werden, selbst wenn es einen vollständigen Verlust bei OOS gibt. Aber es scheint zweifelhaft, nach Schönheit durch Sharpe, R^2 oder Kriterien in diesem Artikel zu suchen. Vielleicht liege ich falsch.