Diskussion zum Artikel "Algorithmen zur Optimierung mit Populationen: Mikro-Künstliches Immunsystem (Mikro-AIS)" - Seite 4
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
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Diskussion des Artikels "Populationsoptimierungsalgorithmen: Micro Artificial immune system (Micro-AIS) Algorithmen"
fxsaber, 2024.01.21 01:38 AM
IWO hat die besten Koordinaten, die nicht mit dem zurückgegebenen Wert übereinstimmen.
Ich habe es eingezogen.
Soweit ich verstanden habe, wird die benutzerdefinierte Optimierung nur auf dem Terminalgraphen auf einem Kern durchgeführt, und ich sprach von einer Multithread-Optimierung im Tester (für den Partikelschwarm-Algorithmus, den ich im Artikel beschrieben habe, für die meisten anderen Algorithmen sollte dies analog auch möglich sein, da es normalerweise ein Prinzip der Aufteilung von Aufgaben in Gruppen von Agenten gibt). Aber der Tester bleibt am primitivsten Beispiel hängen (ich habe den Test oben angegeben), was die Idee im Keim erstickt hat.
Ich habe das Projekt zusammengestellt und kompiliert. Technisch funktioniert alles einwandfrei, außer beim PSO-Algorithmus, der hier von Stanislav übernommen wurde, sind Fehler aufgetreten, so dass er nicht in den Protokollen zu finden ist, die ich weiter unten angeben werde.
Als ich mir den Quellcode ansah, gab es eine Frage zur Anzahl der FF-Durchläufe, der Standardwert ist 1000. Dies ist sehr niedrig, die Ergebnisse werden nicht viel besser sein als zufällig. Der interne Tester hat 19968 FF-Durchläufe gemacht, also habe ich den Quellcode auf 20000 gesetzt.
Ich habe 5 Optimierungsläufe in der Belegschaft durchgeführt, die Ergebnisse zeigen die besten von allen. In den Artikeln habe ich 10 Optimierungsläufe verwendet und das durchschnittliche Ergebnis wird angezeigt.
Als nächstes habe ich FF Megacity verwendet, die diskrete Funktion, die den realen diskreten Handelsstrategieproblemen am nächsten kommt (Hilly und Forest sind glatter und besser geeignet für die Bewertung der Leistungsfähigkeit bei MO-Aufgaben).
Einstellungen im Testprogramm:
Optimierungsergebnisse nach 5 Durchläufen:
Ergebnisse des benutzerdefinierten Laufs #1:
Ergebnisse des Custom Launch #2:
Ergebnisse des benutzerdefinierten Laufs Nr. 3:
Ergebnisse mit 100 % Konvergenz sind gelb hervorgehoben.
Wie wir sehen können, kann sogar der RND-Algorithmus bei einer solch groben Schrittweite konvergieren. Aber nur mehrere Durchläufe (wie in den Artikeln beschrieben) und die Berücksichtigung von Durchschnittsergebnissen können den Ergebnissen Zuverlässigkeit verleihen. Wie wir sehen können, konvergieren von den hervorgehobenen Algorithmen nicht alle wiederholt.
Schlussfolgerungen:
1. Die Algorithmen entfalten ihre volle Leistungsfähigkeit nur in Mehrfachtests (in Einzeltests können die Ergebnisse zufällig gut sein).
2. Die Fähigkeiten der Algorithmen zeigen sich bei vielen Variablen und kleinen Schritten, ansonsten sind die Ergebnisse eher zufällig (RND ist ein Beispiel, das in einem einzigen Test 100 % Konvergenz zeigte).
3. Die Anzahl der Durchläufe sollte groß sein, etwa 10000 (z.B. bei einer Population von 50 beträgt die Anzahl der Epochen 10000/50=200, bei 1000 Durchläufen sind es nur 20 Epochen), je weniger FF-Durchläufe, desto mehr tendieren die Ergebnisse aus offensichtlichen Gründen zum Zufall.
Die Ergebnisse des Notensystems mit dem hervorgehobenen Cursor, des ersten Notensystems mit 0,666 und des vierten Notensystems mit einem Maximum von 0,97. In der Ergebnisliste wird der beste Wert mit 0,97 angegeben.
Soweit ich verstanden habe, wird die benutzerdefinierte Optimierung nur auf dem Terminalgraphen auf einem Kern durchgeführt, und ich sprach von einer Multithread-Optimierung im Tester (für den Partikelschwarm-Algorithmus, den ich im Artikel beschrieben habe, für die meisten anderen Algorithmen sollte dies analog auch möglich sein, da es normalerweise ein Prinzip der Aufteilung von Aufgaben in Gruppen von Agenten gibt). Aber der Tester bleibt am primitivsten Beispiel hängen (ich habe den Test oben angegeben), was die Idee im Keim erstickt hat.
alles funktioniert perfekt, bis auf den PSO-Algorithmus , der hier von Stanislav übernommen wurde, sind Fehler aufgetreten
Es wäre gut, wenn wir der Sache auf den Grund gehen könnten.
Das sind die Fehler
solche Fehler
Holen Sie sich TypeToBytes.mqh von hier.