Optimierungsbereich - Seite 4

 

Die Aufgabe der Optimierung besteht darin, solche TS-Parameter zu finden, bei denen wir ein stabiles Ergebnis über den getesteten Zeitraum erhalten... Je größer die Zeitspanne ist, desto mehr kann man den Ergebnissen der Website future.... vertrauen. Bei der Prüfung erhalten wir nahezu vollständige Informationen... Ich würde auch gerne die Kurven der Bilanz und des Eigenkapitals in Abhängigkeit vom Zeitrahmen sehen... Aber das ist wahrscheinlich nur ein Traum...

Frage: Wofür sind diese Kurven? Gestrichelte Linien oder vielmehr Zickzacklinien zeichnen, um die Extrema zu bestimmen.... Die Höhen und Tiefen... Wir analysieren die Ergebnisse und wählen Parameter aus...

Heute, nach dem Test, kennen wir nur ein Extremum: den maximalen Drawdown, der offensichtlich nicht ausreicht ...

 
Vinsent_Vega писал(а) >>

was wahr ist, ist wahr... Ich frage mich also, ob ich Neutron beim Wort nehmen soll oder nicht...

Optimiert - wie? Einfach nur seinen Berater optimiert oder was? Ich dachte, es wurde ernsthaft geforscht... (Ich habe Jeschow selbst nicht gelesen, deshalb dachte ich, es sei seine Zahl - "4")


Vinsent, ich bin kein Apostel, dem man glaubt. Alles, was ich in meinen Beiträgen zitiert habe, lässt sich durch triviale Wiederholung leicht überprüfen.

Der Koeffizient kann auf zwei sich nicht überschneidende Arten bestimmt werden: durch direkte Ableitung, was mir schwerfällt, und durch Schätzung. Ezhov und Shumsky haben die analytische Abhängigkeit der optimalen Storylänge von der Anzahl der einstellbaren Parameter bis zu einer Genauigkeitskonstante in der Größenordnung von Eins gezeigt. Diese Abhängigkeit hat keine Beschränkungen für den Anwendungsbereich, so dass es ausreicht, ihren optimalen Wert durch mehrere Beispiele zu finden und sich ihrer Stationarität zu vergewissern, um nicht mit komplizierten mathematischen Berechnungen zu spielen, ohne dass es einer besonderen Notwendigkeit bedarf. Das ist bereits geschehen.

 

OK, vielen Dank... :)


Warum ich so sehr darauf herumhacke - für mich ist diese Frage (Optimierungsbereich) im Moment zentral... Vielleicht hat rider recht - in vielerlei Hinsicht ist es eine Frage der Psychologie - ich möchte mich von der Zuverlässigkeit meiner Wahl überzeugen... Aber ich brauche einen guten Grund (vorzugsweise eine ernsthafte wissenschaftliche Untersuchung), um das eine oder andere Optimierungsschema zu wählen...


aber anscheinend muss ich mich nur auf meine Erfahrung und Intuition verlassen...

 
Vinsent_Vega писал(а) >>

warum ich so sehr darauf herumhacke - für mich ist dieses Thema (Optimierungsbereich) im Moment zentral... vielleicht hat rider recht...

Eigentlich hat nicht rider recht, sondern eher kharko:

kharko schrieb >>

Die Aufgabe der Optimierung besteht darin, solche TS-Parameter zu finden, bei denen wir ein stabiles Ergebnis in dem getesteten Zeitrahmen erhalten... Je größer die Zeitspanne ist, desto mehr können Sie den Ergebnissen der Website future.... vertrauen.

Das Problem ist paradoxerweise viel umfassender und heikler. Wenn wir uns nämlich der Formel zuwenden, die die Abhängigkeit des Generalisierungsfehlers des Strategietesters zeigt, sehen wir, dass er mit zunehmender Anzahl von P Transaktionen monoton abnimmt: E=Eapprox+ Ecomplex=d/W+W/P, d.h. je größer die Trainingsstichprobe, desto besser... Aber dies gilt unter der Annahme der Unveränderlichkeit (Stationarität) des Marktes, aber in Wirklichkeit ist er veränderlich, und ausgehend von einigen P werden die Beispiele nutzlos, mehr noch - schädlich. Unter diesen Bedingungen ist es wichtig, die Grenze zu definieren, ab der eine weitere Erhöhung der Zahl der Beispiele die Situation nur noch verschlimmert. Wir müssen die linke Grenze für den Parameter P bestimmen. Dies ist dann der Fall, wenn der durch die Komplexität des Modells bedingte Fehler mit dem Näherungsfehler vergleichbar oder geringfügig kleiner als dieser ist und nicht gegen Null tendiert, wie es der von kharko vorgeschlagene Fall wäre. Daher gibt es ein sanftes Optimum beim Parameter P=k*W um k=3-6.

Daher kommt der Koeffizient, er liegt in der Natur der Nicht-Stationarität der Prozesse auf dem Markt.

 
Neutron >> :

Es ist nicht wirklich Rider, der Recht hat, sondern eher Kharko:

Das Problem ist paradoxerweise viel umfassender und heikler. Wenn wir uns nämlich auf die Formel beziehen, die die Abhängigkeit des Generalisierungsfehlers des Strategietesters zeigt, sehen wir, dass er mit zunehmender Anzahl von Transaktionen P monoton abnimmt: E=Eapprox+ Ecomplex=d/W+W/P, d.h. je größer die Trainingsstichprobe, desto besser... Aber dies gilt unter der Annahme der Unveränderlichkeit (Stationarität) des Marktes, aber in Wirklichkeit ist er veränderlich, und ausgehend von einigen P werden die Beispiele nutzlos, mehr noch - schädlich. Unter diesen Bedingungen ist es wichtig, die Grenze zu definieren, ab der eine weitere Erhöhung der Zahl der Beispiele die Situation nur noch verschlimmert. Wir müssen die linke Grenze für den Parameter P bestimmen. Dies ist dann der Fall, wenn der durch die Komplexität des Modells bedingte Fehler mit dem Näherungsfehler vergleichbar oder geringfügig kleiner als dieser ist und nicht gegen Null tendiert, wie es der von kharko vorgeschlagene Fall wäre. Daher gibt es ein sanftes Optimum beim Parameter P=k*W um k=3-6.

Daher kommt dieser Koeffizient, er liegt in der Natur der Nicht-Stationarität der Prozesse auf dem Markt.

Gott sei mit ihr im Reinen.... ich bestehe nicht darauf, und ich finde ein solches Recht für mich nicht )))..... ich würde sehr gerne an Ihr k=3-6 glauben und auf jegliche Vorwärts...... verzichten (((..... aber irgendetwas lässt mich nicht mitmachen, und vor allem, dass die Routinevorgänge nicht weniger werden: Sie könnten im Optimierer die Anzahl der Transaktionen für ein bestimmtes Intervall festlegen - es würde eine ganz andere Unterhaltung stattfinden.....

Kann ich einen Link zu Yezhov usw. bekommen?

 
rider писал(а) >>

und kann ich bitte einen Link zu Yezhov usw. bekommen?

Catch, Seiten 64-66.

Dateien:
ts.zip  1592 kb
 
Dankeschön
 
Neutron писал(а) >>

Nein, nein. Warte!

Die Häufigkeit der Geschäfte an sich und ihre optimale Anzahl in der Testhistorie an sich. Sie optimieren die Parameter von TS, indem Sie sich die Handelsergebnisse ansehen - finden Sie das Maximum einer bestimmten Funktionalität, in diesem Fall kann es das kumulative Einkommen oder die Rentabilität (Anzahl der Punkte pro Transaktion) sein. Nun stellt sich eine Frage: Angesichts der Anzahl der einstellbaren Parameter müssen Sie die optimale Anzahl von Transaktionen finden, auf deren Grundlage der Tester die Strategie optimieren wird. Beachten Sie, nicht die Zeit, nämlich die Anzahl der Ein- und Ausstiege auf dem Markt.

Kurz gesagt, die Aufgabe umfasst nur die Anzahl der Gewerke - sie dürfen nicht mehr oder weniger als die optimale Anzahl sein. Sie haben die optimale Rentabilität gefunden - handeln Sie. Nach einer gewissen Zeit fängt man an, übermäßig zu optimieren und macht das ständig. Wie kann man sie im Strategy Tester implementieren? Du musst nachdenken...

....

Wenn wir 5 Parameter im Tester optimiert haben (z.B. Wellenperioden), dann sollte die optimale Länge der Historie so sein, dass der Tester 4*5=20 Transaktionen auf ihr macht. Es kann zwischen 1 und ... 200 Tagen dauern, das hängt von der gewählten Strategie ab. Eine Verringerung dieser Zahl führt zu einer Anpassung des Prüfers an die Historie, eine Erhöhung zu einer Verschlechterung der Approximationsqualität und damit zu einer Verschlechterung der Vorhersagegenauigkeit.

Zitierte Auszüge aus Ihren Beiträgen.... Schlussfolgerungen...

Sie argumentieren, dass es eine optimale Anzahl von Geschäften gibt, die von der Anzahl der Anpassungsparameter abhängt... Also... Einigen wir uns....

Unsere Aufgabe besteht nun darin, für jeden Durchlauf den optimalen Zeitbereich zu finden, in dem der TS die geschätzte optimale Anzahl von Gewerben durchgeführt hat.... D.h. für einige Parameter reicht die Historie von einem Tag aus, für andere ist sogar ein Jahr nicht genug... Diese Variante ist nicht geeignet...

OK... Vereinfachen wir die Aufgabe.... Lassen wir ein konstantes Zeitintervall... Betrachten wir nur die Läufe, die uns die optimale Anzahl von Geschäften bescheren...

Welche ist die beste? Die Antwort liegt auf der Hand... Derjenige mit der höchsten mathematischen Erwartung....

Aber was ist mit den Läufen, die wir aussortiert haben...? Sind sie nicht brauchbar?

Angenommen, die optimale Anzahl von Geschäften ist N... Es gibt einen Lauf mit dieser Anzahl von Geschäften... Aber es gibt einen Lauf mit K-mal so vielen Angeboten...

Während unser idealer Lauf 1 Geschäft macht, wird ein anderer, der nicht ideal in der Anzahl der Geschäfte ist, bereits K Geschäfte machen....

Vergleichen wir nun den Gewinn, den wir mit den perfekten und nicht perfekten Läufen erzielen... Multiplizieren Sie dazu die Anzahl der Abschlüsse mit dem entsprechenden Wert der erwarteten Auszahlung...

Wenn der Gewinn aus einem nicht-optimalen Lauf größer erscheint, bedeutet dies, dass wir einen zu großen Zeitraum für die Optimierung dieses Laufs gewählt haben, da die Anzahl der Geschäfte von der optimalen Anzahl abweicht... Wieder die Diskrepanz...

Selbst wenn wir einen Durchlauf nehmen, der die Bedingung der optimalen Anzahl von Trades erfüllt, erhalten wir unterschiedliche Ergebnisse für die Anzahl der Trades, wenn wir das Zeitintervall einfach nach rechts oder links verschieben...

Fazit: Die vorgeschlagene Optimierungsmethode ist eine Utopie.

 

zu Neutron

Eine weitere Sache über die Anzahl der Geschäfte: in meinem EA gibt es einen solchen Parameter als maximale Anzahl von Aufträgen und wenn die Parameter richtig gewählt werden, die Erhöhung der Anzahl der gleichzeitigen Geschäfte, die von der EA erhöht den Gewinn, aber auf der anderen Seite, erhalten wir eine nicht-optimale Anzahl von Geschäften in einem bestimmten Zeitrahmen in Bezug auf die Anzahl der Eingabeparameter für die EA, wie sollten wir mit diesem umgehen?

 

Möchten Sie diese Art von Optimierung und Backtesting in Betracht ziehen?

int start()
{
   if(IsTesting()==true)
   {
      if(IsOptimization()==true && DayOfWeek()&0xE==DayOfWeek())return;
      if(IsOptimization()==false && DayOfWeek()&0xE!=DayOfWeek())return;
   }
//код советника
//код советника
}

Anstelle von

DayOfWeek()
könnten Sie zum Beispiel eine andere Funktion einfügen,

Month()

oder andersherum, eine kleinere.

  Hour()