Diskussion zum Artikel "Algorithmen zur Optimierung mit Populationen: Evolution sozialer Gruppen (ESG)"
Forum zum Thema Handel, automatische Handelssysteme und Testen von Handelsstrategien
fxsaber, 2024.01.26 08:52
Vielen Dank für den Artikel! Ich habe den Algorithmus in die allgemeine Liste aufgenommen.34: OPTIMIZATION_METHOD_AO_HS = 1 e-323 33: OPTIMIZATION_METHOD_AO_GSA = 0.11926002964619356 32: OPTIMIZATION_METHOD_AO_ABC = 0.4042085745674859 31: OPTIMIZATION_METHOD_AO_MA = 0.612338549995716 30: OPTIMIZATION_METHOD_AO_BFO = 0.6679763921514072 29: OPTIMIZATION_METHOD_AO_BFO_GA = 0.71308437578657 28: OPTIMIZATION_METHOD_AO_CSS = 0.7316626048819873 27: OPTIMIZATION_METHOD_AO_FSS = 0.7355579934372427 26: OPTIMIZATION_METHOD_AO_GWO = 0.7390576242470235 25: OPTIMIZATION_METHOD_AO_RND = 0.8155449913938271 24: OPTIMIZATION_METHOD_AO_PSO = 0.8222303819859975 23: OPTIMIZATION_METHOD_AO_SC = 0.8340939685401099 22: OPTIMIZATION_METHOD_AO_BA = 0.845763320077643 21: OPTIMIZATION_METHOD_AO_Micro_AIS = 0.8528065344750899 20: OPTIMIZATION_METHOD_AO_SA = 0.8589854552563216 19: OPTIMIZATION_METHOD_AO_SFL = 0.8597046576708655 18: OPTIMIZATION_METHOD_AO_IWDm = 0.862259472275573 17: OPTIMIZATION_METHOD_AO_EM = 0.8779833807818905 16: OPTIMIZATION_METHOD_AO_SDS = 0.9027267066161594 15: OPTIMIZATION_METHOD_AO_NMm = 0.9076903894257041 14: OPTIMIZATION_METHOD_AO_FAm = 0.9111364322206529 13: OPTIMIZATION_METHOD_AO_ESG = 0.9128694208149278 12: OPTIMIZATION_METHOD_AO_SDOm = 0.9182612507465655 11: OPTIMIZATION_METHOD_AO_COAm = 0.9198698363722636 10: OPTIMIZATION_METHOD_AO_IWO = 0.923914294524697 09: OPTIMIZATION_METHOD_AO_SSG = 0.9304990658351672 08: OPTIMIZATION_METHOD_AO_BGA = 0.9389284935189659 07: OPTIMIZATION_METHOD_AO_ACOm = 0.944545536542497 06: OPTIMIZATION_METHOD_AO_DE = 0.9482478998933197 05: OPTIMIZATION_METHOD_AO_POES = 0.9528516011673952 04: OPTIMIZATION_METHOD_AO_SIA = 0.9540996483364099 03: OPTIMIZATION_METHOD_AO_MEC = 0.9574730447145243 02: OPTIMIZATION_METHOD_AO_SDSm = 0.9648638811101882 01: OPTIMIZATION_METHOD_PSO = 0.9653160312454183 00: OPTIMIZATION_METHOD_AO_P_O_ES = 0.9654152361899765
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
fxsaber, 2024.01.21 01:38 AM
Nach dieser Methodik, Testen mit der Hilly-Funktion.
34: OPTIMIZATION_METHOD_AO_ABC = 0.42453133581346014 33: OPTIMIZATION_METHOD_AO_IWDm = 0.48360991828383987 32: OPTIMIZATION_METHOD_AO_SIA = 0.49114081735004017 31: OPTIMIZATION_METHOD_AO_EM = 0.49479704987697276 30: OPTIMIZATION_METHOD_AO_RND = 0.5085913649249508 29: OPTIMIZATION_METHOD_AO_MA = 0.5129110822292692 28: OPTIMIZATION_METHOD_AO_HS = 0.5129110822292692 27: OPTIMIZATION_METHOD_AO_CSS = 0.5138134842496185 26: OPTIMIZATION_METHOD_AO_SSG = 0.518468314742929 25: OPTIMIZATION_METHOD_AO_SC = 0.5243709181146918 24: OPTIMIZATION_METHOD_AO_SA = 0.532630712905892 23: OPTIMIZATION_METHOD_AO_FSS = 0.5405996550405998 22: OPTIMIZATION_METHOD_AO_PSO = 0.5430691869913079 21: OPTIMIZATION_METHOD_AO_FAm = 0.5629971666466362 20: OPTIMIZATION_METHOD_AO_BA = 0.5653828707497576 19: OPTIMIZATION_METHOD_AO_BFO = 0.5708620661833331 18: OPTIMIZATION_METHOD_AO_IWO = 0.5736967768562664 17: OPTIMIZATION_METHOD_AO_NMm = 0.5818790406200212 16: OPTIMIZATION_METHOD_AO_ESG = 0.5945790493029925 15: OPTIMIZATION_METHOD_AO_GWO = 0.6234871646160723 14: OPTIMIZATION_METHOD_PSO = 0.6256882439878475 13: OPTIMIZATION_METHOD_AO_GSA = 0.6735183680285166 12: OPTIMIZATION_METHOD_AO_SFL = 0.6885524892005978 11: OPTIMIZATION_METHOD_AO_DE = 0.7092034045816206 10: OPTIMIZATION_METHOD_AO_COAm = 0.7263185318109061 09: OPTIMIZATION_METHOD_AO_SDS = 0.7686064552778226 08: OPTIMIZATION_METHOD_AO_Micro_AIS = 0.7722431882203732 07: OPTIMIZATION_METHOD_AO_SDOm = 0.7808430850753312 06: OPTIMIZATION_METHOD_AO_MEC = 0.7816647439743983 05: OPTIMIZATION_METHOD_AO_ACOm = 0.7830252357918316 04: OPTIMIZATION_METHOD_AO_POES = 0.8453008986622238 03: OPTIMIZATION_METHOD_AO_P_O_ES = 0.8523920887258357 02: OPTIMIZATION_METHOD_AO_SDSm = 0.9046058644799349 01: OPTIMIZATION_METHOD_AO_BGA = 0.9856063511804057 00: OPTIMIZATION_METHOD_AO_BFO_GA = 0.9880292622094636
Weil das größte Ergebnis nicht garantiert ist. Bei der stochastischen Suche ist kein Ergebnis garantiert.
Sie können nur das durchschnittliche Ergebnis für eine bestimmte Anzahl von Tests schätzen, in den Artikeln nehmen wir 10 Tests, das ist genug für eine gute Bewertung des Vergleichs der Algos untereinander. Es ist natürlich möglich, die Anzahl der Tests noch weiter zu erhöhen, zum Beispiel auf 100 oder mehr, aber das macht keinen Sinn mehr, weil die Messgenauigkeit schnell abnimmt. Kurz gesagt, 10 ist das Beste, früher habe ich 5 Tests verwendet - das war nicht genug.
Außerdem weisen einige Algorithmen eine sehr große Streuung der Konvergenz auf, was eine sehr wichtige Eigenschaft von Optimierungsalgorithmen ist - die Wiederholbarkeit der Ergebnisse, die die Stabilität des probabilistischen Modells des Algorithmus kennzeichnet (es sei denn, es handelt sich um deterministische Suchstrategien, deren Ergebnisse immer gleich sind, aber solche Algorithmen haben in der Regel eine geringe Konvergenz).
Im Allgemeinen müssen mindestens 10 Tests durchgeführt werden, um Algorithmen mit stochastischer Suchstrategie angemessen vergleichen zu können.
Ganz grob kann man eine Analogie anführen: Welche der Strategien, einen Speer in einen Heuhaufen zu stoßen, ist effektiver, um einen Apfel in einem Strohhaufen zu finden? Der Vergleich kann nur in mehreren Versuchen durchgeführt werden, da die Wahrscheinlichkeit, den Apfel mit dem Speer beim ersten Mal zu treffen, nicht Null ist, wenn man streng von der Spitze des Stapels in die Mitte sticht, und es ist falsch zu glauben, dass dies ein natürliches Ergebnis einer solchen Strategie ist.
Außerdem sind die Strategien in absolut reiner Form gegeben, man kann sagen, es ist ein Elixier von Strategien, ungetrübt durch die Anwendung von Duplikat-Screening und anderen Techniken der Suchbeschleunigung für eine begrenzte Anzahl von FF-Läufen. Jeder neue Dublettensatz verschwendet einen Durchlauf, und Algorithmen in dieser reinen Form sind sehr leicht zu vergleichen.
Wenn der Suchraum klein ist, kann der Ausschluss von Duplikaten einen sehr großen Unterschied machen, und selbst sehr schwache Algos können gute Ergebnisse erzielen. Aber je größer der Suchraum wird, desto schneller wird der Ausschluss von Duplikaten bedeutungslos, und desto mehr werden die Unterschiede in den Fähigkeiten der Suchstrategien deutlich.
Es mag sein, dass ich mich mit diesem Beitrag schlecht ausgedrückt habe, manche Dinge sind leider sehr schwer zu erklären.
Es ist nur möglich, das durchschnittliche Ergebnis über eine bestimmte Anzahl von Tests zu schätzen
Ich sehe es als logisch an, einen Eingabeparameter "Anzahl der Wiederholungen" zu haben, um das globale Maximum zu suchen.
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
fxsaber, 2024.01.21 01:38 AM
Nach dieser Methodik wird mit der Hilly-Funktion getestet.

34: OPTIMIZATION_METHOD_AO_HS = -1.7976931348623157 e+308 33: OPTIMIZATION_METHOD_AO_CSS = 0.49720358822818334 32: OPTIMIZATION_METHOD_AO_FSS = 0.5126268634117646 31: OPTIMIZATION_METHOD_AO_MA = 0.5456638212207142 30: OPTIMIZATION_METHOD_AO_SC = 0.5493573778417595 29: OPTIMIZATION_METHOD_AO_SFL = 0.5586288936731915 28: OPTIMIZATION_METHOD_AO_EM = 0.5622069376759021 27: OPTIMIZATION_METHOD_AO_BFO = 0.572272929264936 26: OPTIMIZATION_METHOD_AO_GWO = 0.576823172558009 25: OPTIMIZATION_METHOD_AO_BA = 0.5780620208551676 24: OPTIMIZATION_METHOD_AO_COAm = 0.6122501636921197 23: OPTIMIZATION_METHOD_AO_FAm = 0.6140389813209256 22: OPTIMIZATION_METHOD_AO_IWO = 0.668152749061326 21: OPTIMIZATION_METHOD_AO_RND = 0.6708834560036839 20: OPTIMIZATION_METHOD_AO_SDSm = 0.6949312990837662 19: OPTIMIZATION_METHOD_AO_ESG = 0.6998001260367949 18: OPTIMIZATION_METHOD_AO_DE = 0.7011196053256343 17: OPTIMIZATION_METHOD_AO_IWDm = 0.7021399692041209 16: OPTIMIZATION_METHOD_AO_GSA = 0.7220579685405103 15: OPTIMIZATION_METHOD_AO_PSO = 0.749441828773945 14: OPTIMIZATION_METHOD_AO_SA = 0.7682447940796119 13: OPTIMIZATION_METHOD_AO_MEC = 0.7861990306904714 12: OPTIMIZATION_METHOD_AO_ABC = 0.7907454297118246 11: OPTIMIZATION_METHOD_AO_SDS = 0.8196051951016118 10: OPTIMIZATION_METHOD_AO_SIA = 0.8221393904152611 09: OPTIMIZATION_METHOD_AO_SDOm = 0.8473736964247897 08: OPTIMIZATION_METHOD_PSO = 0.8554905139189528 07: OPTIMIZATION_METHOD_AO_BFO_GA = 0.9302287492114422 06: OPTIMIZATION_METHOD_AO_SSG = 0.9508929176886642 05: OPTIMIZATION_METHOD_AO_Micro_AIS = 0.9744230924005981 04: OPTIMIZATION_METHOD_AO_BGA = 0.9758026556865227 03: OPTIMIZATION_METHOD_AO_ACOm = 0.9842635986445009 02: OPTIMIZATION_METHOD_AO_P_O_ES = 0.9862393247408759 01: OPTIMIZATION_METHOD_AO_POES = 0.9939584765415376 00: OPTIMIZATION_METHOD_AO_NMm = 0.9992316949848764 inAmountCycles = 1000, inRepeats = 5
Repeats - die Anzahl der unabhängigen Aufrufe des Algorithmus.
AmountCycles - die Anzahl der FF-Aufrufe bei jedem Versuch (siehe Repeats).
Für jeden Algorithmus wird das beste Ergebnis ausgegeben (siehe Repeats).
MathSrand ((int)GetMicrosecondCount ()); // Zurücksetzen des Generators
Ich würde es auf diese Weise machen.
Sleep(1); // random GetMicrosecondCount (). MathSrand ((int)TimeLocal() + (int)GetMicrosecondCount ()); // Zurücksetzen des Generators
Andernfalls wird es bei jeder Ausführung des Skripts wiederholt.
Ich denke, es ist logisch, einen Eingabeparameter "Anzahl der Wiederholungen" zu haben, um nach dem globalen Maximum zu suchen. Wir optimieren zum Beispiel einen TS im Standardtester. Manchmal ist es logisch, den Optimierer mehrere Male hintereinander laufen zu lassen, um die Wahrscheinlichkeit zu verringern, dass man in lokalen Extrema stecken bleibt. Ja, die Geschwindigkeit der Berechnungen wird durch die entsprechende Anzahl von Durchläufen sinken, aber die Wahrscheinlichkeit, einen globalen Spitzenwert zu erreichen, wird höher sein.
Wiederholungen - Anzahl der unabhängigen Aufrufe des Algorithmus.
AmountCycles - Anzahl der FF-Aufrufe bei jedem Versuch (siehe Repeats).
Für jeden Algorithmus wird das beste Ergebnis angezeigt (siehe Wiederholungen).
Ja, um die Chance zu erhöhen, ein globales Ergebnis zu finden, müssen Sie nur die Anzahl der Versuche erhöhen und die beste gefundene Lösung verwenden, wenn alle anderen Dinge gleich sind. Sogar der RND-Algorithmus hat eine von Null abweichende Chance, mit diesem Ansatz zu finden, was Sie brauchen.
Aber, wie ich oben beschrieben habe, kann nur das durchschnittliche Ergebnis einen Vergleich der Algorithmen untereinander ermöglichen.
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Neuer Artikel Algorithmen zur Optimierung mit Populationen: Evolution sozialer Gruppen (ESG) :
Wir werden das Prinzip des Aufbaus von Algorithmen mit mehreren Populationen besprechen. Als Beispiel für diese Art von Algorithmus werden wir uns den neuen nutzerdefinierten Algorithmus - Evolution of Social Groups (ESG) - ansehen. Wir werden die grundlegenden Konzepte, die Mechanismen der Populationsinteraktion und die Vorteile dieses Algorithmus analysieren und seine Leistung bei Optimierungsproblemen untersuchen.
Im Bereich der Optimierung gibt es eine breite Palette von Populationsalgorithmen, die darauf ausgelegt sind, optimale Lösungen für verschiedene Probleme zu finden. Trotz ihrer Bedeutung sind die Algorithmen mit mehreren Populationen und Schwärmen bisher in meinen Artikeln nicht ausreichend behandelt worden. In diesem Zusammenhang halte ich es für notwendig, dieses faszinierende und vielversprechende Thema ausführlicher zu behandeln.
Algorithmen mit mehreren Populationen basieren auf der Idee, mehrere unabhängige Populationen zur Lösung von Optimierungsproblemen zu verwenden. Die Populationen arbeiten logisch parallel und können Informationen über optimale Lösungen austauschen, wodurch es möglich ist, gleichzeitig verschiedene Regionen des Parameterraums zu untersuchen und verschiedene Optima zu finden. Andererseits verwenden Multischwarm-Algorithmen soziale Gruppen (Schwärme) aus vielen interagierenden Partikeln (Mitgliedern), die auch miteinander kooperieren und Informationen austauschen können, um optimale Lösungen zu erzielen.
In diesem Artikel werden wir den ESG-Algorithmus mit mehreren Populationen betrachten, den ich speziell für diesen Artikel entwickelt habe. Wir werden uns mit den Grundprinzipien solcher Algorithmen befassen. Darüber hinaus werden wir die Ergebnisse vergleichender Studien berücksichtigen, die es uns ermöglichen, die Effektivität dieser Algorithmen im Vergleich zu Monopopulations-Optimierungsmethoden zu bewerten.
Autor: Andrey Dik