Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
А
leider ist diese Beobachtung unglücklich...auch bemerkt...
SHOOTER können Sie uns kurz erklären, was genau die Parametergruppen optimieren
- x
- y
- z
- X
- Y
- Z
Wahrscheinlich verstehe ich einiges davon, aber ich habe noch nicht das ganze Bild im Kopf.Hier ist eine weitere Merkwürdigkeit, oder vielleicht nur ein Fehler
Es stellt sich heraus, dass, wenn nun F == 0 ist und es überhaupt keine offenen Positionen gibt - dann können wir zuerst in den ersten und dann in den zweiten Block einsteigen, was dann zu falschen Ergebnissen führt.
Oder übersehe ich etwas?
Wahrscheinlich aber nicht. Wir können nicht in beide Blöcke gleichzeitig eindringen, weil sie uns nicht reinlassen.
lässt uns nicht rein.
Ich kritisiere nicht gerne Dinge, die funktionieren. Ich werde Ihnen nur einige Kritikpunkte am Code nennen:
Spsb. Ich verstehe die Kritik nicht als Kritik, sondern als Anleitung zum Handeln, d.h. zumindest ein wenig im MQL-Handbuch zu lesen.
Akzeptiert, aber wahrscheinlich in zukünftigen Arbeiten. Zu dieser "Handschrift" kam ich nach einigen anderen, globaleren Projekten und aufgrund der geringen Auflösung meines 12-Zoll-Monitors. Ihre Version sieht zweifellos besser aus, aber ich müsste ständig vor und zurück durch die Liste blättern. Aber da ich nicht für mich selbst hier bin, sage ich es noch einmal - ich werde es im Kopf behalten.
Siehe oben! Obwohl ich meine Namen mag, muss man sich einfach an sie gewöhnen, so wie wir uns an die Abkürzungen GOELRO, OBHSS, IMHO usw. gewöhnt haben. Wenn Sie genau hinsehen, habe ich einigen Variablen mehr oder weniger sinnvolle Namen gegeben, aber alle Vokale abgekürzt.
Ich habe die Variablen noch nicht in den Griff bekommen. Wenn Sie den Code von Grund auf neu schreiben, haben Sie keine Ahnung, wo eine Variable liegen wird, also ist fast alles global.
empirisch ist es nicht so, ich werde mich daran erinnern, wo ich es gefunden habe - ich glaube, es war in der Funktion BuSll ()
Ich stimme zu, korrigieren wir es wieder, wenn man einen Block von Null an schreibt, hat man noch keine Ahnung, welche Parameter man der Funktion übergeben wird, und dann wird das Auge "schmutzig" und man achtet nicht auf solche "Kleinigkeiten" ))
SHOOTER können Sie uns kurz erklären, was genau die Parametergruppen optimieren
Die wichtigste treibende und lenkende Kraft des Expert Advisors ist die berüchtigte)) Funktion G12(). In dieser Funktion werden die bevorzugten Handelsrichtungen anhand von Indikatoren berechnet. Aber eine Richtung ist nicht genug - wir brauchen Einstiegspunkte. Bei "Klassikern" wird auf einem Zeitrahmen entweder nach Patterrons gesucht, oder der Indikator selbst wird angepasst, wenn es externe Parameter gibt, wenn es zwei oder mehr gibt, werden diese ebenfalls optimiert. Ich habe eine weitere für mich neue Methode ausprobiert NN
Hier diese Funktion
double prcptrnAC(int q1,int q2,int q3,int q4,int pr,int at)
{double qw = (q1-50)+((q2-50)*iA_C(pr)+(q3-50)*iA_C(2*pr)+(q4-50)*iA_C(3*pr))/iA_C(1);
if (MathAbs(qw)>at) return(qw);else return(0);}
eine Art Perzeptron, das darauf ausgelegt ist, etwas zu bekommen..... Hier finden Sie einige Antworten auf viele Fragen, und zwar besser, als ich sie beantwortet hätte. Wie man eine profitable Handelsstrategie findet" und Neural Net Recipes. Zugegeben, ich selbst habe alles schräg gelesen und bin durch das Studium der Arbeiten anderer interessanter geworden, siehe unten.
Dieser EA ist "erstellt auf" MTS "Neural network + MACD" von Batohov, MTS "Сombo", "Combo_Right" & AI von Reshetov, PROphet von PraVedNiK,RSI_Test von zerkmax, auto_optimization.mqh von Igor Malcev und einigen anderen.
Hier ist eine weitere Merkwürdigkeit, oder vielleicht nur eine Panne
Es stellt sich heraus, dass, wenn nun F == 0 ist und es überhaupt keine offenen Positionen gibt - dann können wir zuerst in den ersten und dann in den zweiten Block einsteigen, was dann zu falschen Ergebnissen führt.
Oder verstehe ich vielleicht etwas nicht?
F == 0 nur in den ersten beiden Optimierungsphasen, wenn zusätzlich zu Delta_G12 noch Trd_Up_X und Trd_Dn_Y vorhanden sind.
Wenn alle sechs Schritte ordnungsgemäß durchlaufen werden und die Optimierungssetdateien nacheinander verwendet werden, sollte F immer gleich 1 sein.
Und bei der Überprüfung des Codes habe ich einen weiteren Fehler gefunden. Ich sehe, dass die neuesten Versionen schlechter funktionieren. Dieser Fehler trat in den Versionen 7 und 9 auf.
Hat das jemand bemerkt?
Hier diese Funktion
double prcptrnAC(int q1,int q2,int q3,int q4,int pr,int at)
{double qw = (q1-50)+((q2-50)*iA_C(pr)+(q3-50)*iA_C(2*pr)+(q4-50)*iA_C(3*pr))/iA_C(1);
if (MathAbs(qw)>at) return(qw);else return(0);}
eine Art Perceptron genannt und soll .... etwas bringen.
Das ist mir im Moment noch ein Rätsel. Natürlich weiß ich, wozu es dient und wozu es gut ist. Aber die Formel selbst ist etwas ungewöhnlich.
Das Ergebnis der Arbeit der Neuronen sollte eine Zahl sein, die sich aus der Summe der Eingänge der Neuronen multipliziert mit den Gewichten dieser Eingänge ergibt.
D.h. logischerweise müsste es in etwa so aussehen:
Offensichtlich handelt es sich bei beiden um eine Funktion von 4 Variablen (oder sind es 8?), die an der Ermittlung des Maximums (des sich daraus ergebenden Gleichgewichts) beteiligt ist, aber es ist trotzdem seltsam :)
Diese Funktion ist mir immer noch ein Rätsel. Natürlich verstehe ich, was sie tut und warum sie das tut. Aber die Formel selbst ist etwas ungewöhnlich.
Das Ergebnis der Arbeit der Neuronen sollte eine Zahl sein, die sich aus der Summe der Eingänge der Neuronen multipliziert mit den Gewichten dieser Eingänge ergibt.
Logischerweise müsste es also in etwa so aussehen:
Offensichtlich sind beide eine Funktion von 4 Variablen (oder sind es 8?), die an der Ermittlung des Maximums (resultierendes Gleichgewicht) beteiligt sind, aber es ist trotzdem seltsam :)
Sie haben eine vereinfachte Version der Funktion angegeben, zumindest habe ich sie so verstanden
Hier wird das Thema diskutiert
MTS 'Sombo'.
Fairerweise muss man sagen, dass es sich nicht um ein neuronales Netz in seiner reinsten Form handelt. Erstens fehlt ein Schwellenwert, ohne den die Teilungsfähigkeit des NS viel geringer ist. Zweitens ist es meiner Meinung nach sinnvoll, eine Schwelle für die Aktivierung des Ausgangs hinzuzufügen. Was bedeutet das? Das Signal wird nur dann zum Handel zurückgegeben, wenn die Aktivierungsschwelle überschritten wird. Zum Beispiel:
double res = (w1 * a1 + w2 * a2 + w3 * a3 + w4 * a4 // )/Close[0] - T); // Division durch Close[0] zur Vereinheitlichung
if (MathAbs(res) > ActivityThreshold) return(res); // ActivityThreshold -- Aktivierungsschwelle
In früheren Versionen wurde Close(0) in der Perceptron-Formel z1 verwendet, in 7 und 9 jedoch Close(1). Ist es das, worüber wir hier reden?
Nein, ich glaube nicht, dass es darum geht, schließlich gibt es eine Vorschrift, an geformten Stäben zu arbeiten.
Aber die Tatsache, dass die Flagge Flq=false; eine für Kaufen und Verkaufen hat einen großen Einfluss auf die Trennung dieser beiden Handelsrichtungen und damit auf die Ergebnisse.