Nash Equilibrium
- Experten
- Tomasz Adrian Bialous
- Version: 1.4
- Aktualisiert: 23 Dezember 2025
- Aktivierungen: 10
Ich freue mich, Ihnen eine leistungsstarke EA zu präsentieren, und alles über diese EA ist RIESIG: Gewinn, Drawdown, Anzahl der Aufträge, Kaution.
EA Handel alle 28 Symbole x 5 Zeitrahmen (M15,M30,H1,H4,D1), können einzelne Zeitrahmen und Währungen (nicht Symbole) deaktiviert werden.
Einfache Berechnung: 28 * 5 = 140 Signale zu handeln, und * 2 Richtungen (Kauf / Verkauf) = 280. Wenn Sie interessiert sind, lesen Sie weiter.
1. Wie es erstellt wurde:
Der EA wurde erstellt, als ich nach dem Schreiben eines EA für den manuellen Korbhandel nach einer Idee suchte, diesen zu automatisieren. Dann sah ich mir den Film "A Beautiful Mind" erneut an und wurde von der folgenden Szene inspiriert. Um zu verstehen, wie alles funktioniert, müssen Sie nur verstehen, worüber John Nash in der folgenden Szene spricht:
https://www.youtube.com/watch?v=LJS7Igvk6ZM
" DAS BESTE ERGEBNIS WÜRDE ERZIEHEN, WENN JEDER IN DER GRUPPE DAS BESTE FÜR SICH UND DIE GRUPPE TUT" , so funktioniert EA.
Ich werde die Gruppenbildung weiter unten erklären. Aus diesem Grund sind Kauf- und Verkaufssignale nicht das Wichtigste. Es genügt, dass sie potenziell profitabel sind. Was wichtig ist, ist die Verwaltung von Gruppen (Körbe und Körbe in Gruppen).
2. Mindestanforderungen:
Mindesteinlage: 5.000 $ für einen Hebel von 1:500, 25.000 $ für einen Hebel von 1:100 (das Konto muss in der Lage sein, eine große Anzahl von Positionen zu verwalten, der EA kann mit jeder Anzahl umgehen)
Maximaler Ping: 50 ms (30 ms ist besser als genug), kleine Verzögerungen beim Schließen wirken sich zu Gunsten des EA aus
Arbeitszeit: 24 Stunden/5 Tage
Ohne diese Bedingungen zu erfüllen, ist es eine Verschwendung Ihrer Zeit und Ihres Geldes.
3. Warum billige Miete:
Ich habe die EA-Miete auf einen sehr niedrigen Preis für 6 Monate festgelegt, weil es nicht möglich ist, Backtests für alle Symbole im MT4 durchzuführen. Das Einzige, was Sie tun können, ist eine Optimierung des Take Profits für ein Symbol (als Referenz), da ohnehin alles für 28 Währungspaare x 5 Zeitrahmen in Echtzeit berechnet wird.
Die EA-Miete ist zeitlich begrenzt, und mein Vorschlag lautet wie folgt: a) 2-3 Monate Lernen und Verstehen, b) 3 Monate reales Konto, c) verdienen und kaufen. Sie müssen nur verstehen, wie es funktioniert und was die Risiken sind und es ist hoch.
4. Erzeugen Sie Ihre eigenen Parameter:
Der EA hat die gleichen SAFE-, MODERATE- und AGGRESSIVE-Parameter verschlüsselt wie der folgende EA: Short Trend Reversal Mit diesem EA können Sie Ihre eigenen Signalparameter generieren (dieser EA wurde zu diesem Zweck erstellt) und sie in die Datei "ReadFromFile.txt" eingeben.
Die Datei mit den Details wird erstellt, wenn Sie die Option Activity:ReadFromFile zum ersten Mal für einen beliebigen Zeitrahmen aktivieren.
5. EA als Manager:
Zusätzlich kann EA als unabhängiger Manager für Ihren EA arbeiten oder ihn ergänzen. Sie müssen die Logik für OrderMagicNumber() anwenden. Details finden Sie im EA-Verzeichnis in der Datei 'ReserveMagic.txt', die nach dem Start des EA erstellt wird. Wenn Sie meinen vorherigen EA Short Trend Reversal an einen mit diesem EA geöffneten Chart anhängen, können die Orders im Verwaltungsmodus (Extern oder Main&Extern) verwaltet werden. Die EAs sind kompatibel.
Sie können dem EA von einem anderen EA/Indikator/Skript EventChartCustom senden, um Aufträge zu schließen oder zu öffnen.
Schließen von Aufträgen CustomEvents von einem anderen EA, Indikator oder Skript
char EAManageMode = 0; 0 - Main, 1 - External, 2 - Main&External long currChartID = ChartID(); EventChartCustom(EAChartID,201,currChartID,EAManageMode,"M15"); /*close all M15*/ returned: EventChartCustom(currChartID,299,0,1,"M15"); EventChartCustom(EAChartID,202,currChartID,EAManageMode,"M30"); /*close all M30*/ returned: EventChartCustom(currChartID,299,0,2,"M30"); EventChartCustom(EAChartID,203,currChartID,EAManageMode,"H1"); /*close all H1*/ returned: EventChartCustom(currChartID,299,0,3,"H1"); EventChartCustom(EAChartID,204,currChartID,EAManageMode,"H4"); /*close all H4*/ returned: EventChartCustom(currChartID,299,0,4,"H4"); EventChartCustom(EAChartID,205,currChartID,EAManageMode,"D1"); /*close all D1*/ returned: EventChartCustom(currChartID,299,0,5,"D1"); EventChartCustom(EAChartID,200,currChartID,EAManageMode,"ALL"); /*close all ALL*/ returned: EventChartCustom(currChartID,299,0,0,"ALL");
Öffnen von Aufträgen CustomEvents von einem anderen EA, Indikator oder Skript
char ManageMode = 0; //0 - Main, 1 - External, 2 - Main&External char tf_idx; switch(_Period) { case PERIOD_M15: tf_idx = 1; break; case PERIOD_M30: tf_idx = 2; break; case PERIOD_H1: tf_idx = 3; break; case PERIOD_H4: tf_idx = 4; break; case PERIOD_D1: tf_idx = 5; break; default: break; } ushort EventID = (ushort)StringFormat("3%d%d",tf_idx,ManageMode); long currChartID = ChartID(); double Lots = 0.01; string trade_cmd = "STRONG,EUR,EURUSD"; //example EventChartCustom(EAchartID,EventID,currChartID,Lots,trade_cmd); returned: EventChartCustom(currChartID,300,ChartID(),Lots,"STRONG,EUR,EURUSD");
6. GUI, CLI:
GUI-Auflösung für FullHD (1920x1080) gemacht, ich habe keine Pläne für 4k (wenn Sie kaufen, fragen Sie per PM), die GUI-Engine ist meine eigene Schöpfung.
Sie können die clickables sehen, indem Sie in der Befehlszeile: show demo.
Sie können die Liste der CLI sehen, indem Sie auf 'i' in der oberen Leiste der GUI. Die Liste der Befehle ist ziemlich lang und in EA beschrieben, so dass es nicht nötig ist, hier alles zu beschreiben.
7. Ereignisse lesen:
EA hat die Möglichkeit, schwebende Orders ein paar Sekunden vor dem Lesen der makroökonomischen Daten zu senden und sie nach dem Lesen zu löschen. Die Daten werden von ForexFactory (HIGH IMPACT) automatisch heruntergeladen und im lokalen Modus wird eine *.txt-Datei verwendet. Diese Funktionalität steht nur Käufern zur Verfügung, in der Mietversion ist sie gesperrt. In der Mietversion können ausstehende Aufträge für Messwerte manuell gesendet werden. Sie können die Befehle sehen, indem Sie auf 'i' in der oberen GUI-Leiste klicken.
Events funktionieren nicht auf VPS.
8. Modi (Gruppenbeschreibung):
Jedes Kauf-/Verkaufssignal erzeugt 4 Spieler
Beispiel: EURUSD-Verkaufssignal
dual: (4 Aufträge) (höheres Risiko, größere DD-Bewegungen, größerer Gewinn)
EA sendet zwei SELL-Aufträge und erkennt sie als:WEAK EUR und STRONG USD
+ 2 x entgegengesetzte schwebende BUY STOP: STRONG EUR und WEAK USD
single: (2 Orders) (geringeres Risiko, kleinere DD-Bewegungen, kleinerer Gewinn)
EA sendet eine SELL-Order, erkennt sie aber als:WEAK EUR oder STRONG USD
+ 1 x entgegengesetzter schwebender BUY STOP:STRONG EUR oder WEAK USD
Die folgenden Gruppen werden aus dem obigen Beispiel erstellt:
group(-1): oder groupM15,groupM30,... Gruppe Mxx Orders (alle Orders)' (ich nenne das Clearing der Tabelle)
- gruppiert alle Orders unabhängig von der Richtung, einfach (Summe der Orders) * (Gruppe Mxx Profit pro Order)
- erreicht selten TakeProfit, aber es hängt vom TakeProfit ab, der für TF eingestellt wurde (Differenz: Mxx Profit pro Order und Gruppe Mxx Orders) (der Mittelungsmodus hat einen großen Einfluss, ist aber sehr riskant)
group0: (pro Zeitrahmen, Hauptgruppe)
- STARK ODER SCHWACH auf jedem Zeitrahmen gibt es einen eigenen TakeProfit und diese werden ständig eingegeben: Mxx Profit pro Auftrag
Gruppe1:
- (STRONG, WEAK für alle Orders) wird aus Gruppe0 (pro Zeitrahmen) erstellt und hat ihren eigenen TakeProfit, aber zusätzliche Ausführungsbedingungen (Gruppendefinition und Orders sind für mehr als 1 Zeitrahmen)
group1ext:
- gruppiert die beiden oben genannten STRONG&WEAK, mit ähnlichen Bedingungen, und eine von group1 kann nicht leer sein (hängt auch von der Gruppendefinition und dem Unterschied zwischen TP group1 und group1ext ab) (Tabellenclearing)
groupN: (table clearing):
- Ich habe noch nie eine TP-Ausführung gesehen (linke Seite der GUI) Sie können Gruppen (-1) in jeder Konfiguration kombinieren und anzeigen.
Wie Sie oben lesen können, können Sie nur den entsprechenden TakeProfit wählen. Ohne Backtesting auf allen Symbolen ist es unmöglich, dies mit 100%iger Sicherheit einzustellen (vergessen Sie nicht, was D. Trump im Jahr 2025 tat, es ist unmöglich, perfekte Einstellungen zu generieren).
9. Einstellungen:
Einstellungen, die sich auf das Risiko auswirken:
- Initial Lots,
- Averaging Method,
- Averaging steps,
- TF activity,
- Pending rules1,
- Pending rules2
GUI einschalten GUI EIN/AUS GUI 3D 3D EIN/AUS Start/Stop (Broker-Zeit) Handel starten/stoppen MaklerAbweichung (Erinnerung an die Zeitumstellung) Differenz zwischen lokaler Zeit und Brokerzeit (es ist sicherer, sie manuell einzustellen) Anfängliche Lots ändert sich nicht, wenn Sie zuvor die Mittelwertbildung aktiviert haben und offene Aufträge haben Schwebende Lots Anfängliche Lots, gleich wie der zuvor geöffnete Auftrag Methode der Mittelwertbildung KEINE, einfach: Initial Lots*(cnt+1), fibo: Initial Lots * fibo[cnt] z.B. [1,1,2,3,...] Mittelungsschritte Array-Größe für Mittelungsmethode, max. 7 Faktor einschalten für Berechnungen NUR nach Umstellung von Mittelwertbildung Manuelle Grenzen noLimits, byTotalOrders, byMarginLvL, byTotalAndMargin, byTotalOrMargin EA-Arbeitsmodus DualMode, SingleMode (Beschreibung siehe oben) Deaktivieren von Order-Abstandslimits Deaktivierung der Abstandslimits für neue Orders, 3. Signalparameter Zeitrahmen-Einstellungen (Gruppen0, Handelssignale): TF einschalten Aktivierung des TF-Handels TF=(M15, M30, H1, H4, D1) TF-Basis MagicNumber mind. 4stellig, für jeden TF unterschiedlich (Standard belassen) TF Profit pro Auftrag group0, (0 Deaktivierung) TF-Aufträge gruppieren group(-1), alle Aufträge Gruppe TF Gewinn pro Auftrag Gruppe(-1) Gewinn pro Auftrag TF-Aktivität Sicher, Moderat, Aggressiv, ReadFromFile (siehe Beschreibung oben) Gruppen-Körbe (group1, group1ext): Alle STRONG gruppieren Gruppierung der STRONG-Aufträge aktivieren/deaktivieren (group1) Alle gruppieren WEAK aktiviert/deaktiviert die Gruppierung von WEAK-Aufträgen (group1) Alle gruppieren STRONG&WEAK Gruppierung STRONG&WEAK Aufträge aktivieren/deaktivieren (group1ext) Gruppendefinition minimale Aufträge in Gruppe1, um TakeProfit zu schließen STRONG TakeProfit für STRONG-Korb (Gruppe1) WEAK TakeProfit für WEAK-Korb (Gruppe1) Optimierung nur für Backtesting, setzt den gleichen TP für beide der oben genannten STRONG&WEAK TakeProfit für STRONG&WEAK-Körbe (group1ext) D1 zu STRONG&WEAK Gruppen hinzufügen D1-Aufträge zu den Berechnungen hinzufügen Timeframes gruppieren (groupN): Gruppierung der Zeitrahmen set1-set11 Gruppierung Gruppen(-1), GruppenN Gruppe set1-set11 Gewinn pro Auftrag TP für erstellte GruppenN Anhängige Einstellungen: Pending speichern/wiederherstellen OFF, SaveToFile, InternalArray. Speichern/Wiederherstellen von Pending Orders für Overnight Spreads. Auf VPS verwendet EA ein internes Array Speichern nach StopTrading [min] (0 = AUS) Wiederherstellen vor StartTrading [min] (0 = AUS) Save/Restore Verhalten für externe Anhängsel: Do Not Touch, Save/Restore As Is, Take Ownership Alte Pending-Distanz löschen Löschen von Pendenzen, wenn der Abstand mehr als N Pips beträgt Pending-Regeln öffnen1 (wenn andere Pending existieren): Ablehnen, wenn Pending vorhanden ist, Verschieben, Hinzufügen, auch wenn Pending vorhanden ist Pending-Regeln2 öffnen (wenn andere Käufe oder Verkäufe vorhanden sind): Ablehnen, wenn eröffnet, Hinzufügen, wenn unter dem Höchstwert/über dem Tiefstwert, Hinzufügen, auch wenn eröffnet, vorhanden AutoEvents (nur Käufer): AutoEvents aktivieren/deaktivieren, Ereignisse werden direkt von ForexFactory mit den folgenden Einstellungen heruntergeladen. Ereignisse funktionieren nicht auf VPS Zeitrahmen Zeitrahmen für den Handel Abstand Pending Orders mit N Pips Abstand platzieren Verfall[e] Verfall ist kodiert, max 23m:59s umgerechnet in Sekunden Vor[s] Pending Orders N Sekunden vorher platzieren, max 23m:59s umgerechnet in Sekunden Einstellungen verwalten: Durch Komma getrennte Liste ausgeschlossener Körbe Hier können Sie Körbe deaktivieren. Mehr als zwei Körbe zu deaktivieren macht keinen Sinn. Beispiel:CHF,JPY EA-Suffix nützlich für mehrere Instanzen, max. 5Buchstaben Externer EA Bestellkommentar() ein Teil des Textes reicht zur Erkennung aus Verwaltender Modus Haupt, Extern, Haupt&Extern Externes Verhalten beim Löschen von Anhängern DoNotTouch: wenn true und Manage Mode ist External oder Main&External wird EA keine Pending Orders vom externen EA löschen Externer ChartEvents-Empfänger Aktivierung/Deaktivierung des Empfangs von CustomChartEvents zum Schließen oder Öffnen von Aufträgen von anderen EA oder Indikatoren Benachrichtigungen/Benachrichtigungen/Logs: Es besteht keine Notwendigkeit zu beschreiben Heartbeat alle N Stunden senden (0 deaktivieren), sendet alle N Stunden eine Push-Benachrichtigung "Alive and Kicking". Grafik-Einstellungen: muss nicht beschrieben werden, Schriftarten: Arial Narrow, Arial Nova, Bahnschrift (prüfen Sie, ob Sie sie installiert haben)
10. Indikator für die Analyse: https://www.mql5.com/en/code/65634
11. Externer Indikator mit verbotener Import-DLL (für einige Funktionen benötigen Sie diese):
#property copyright "https://www.mql5.com/en/market/product/Nash Equilibrium" #property link "https://www.mql5.com/en/market/product/154150" #property description "NashEquilibrium ChartEvents" #property version "1.00" #property strict #property indicator_chart_window #import "user32.dll" int GetParent(int hWnd); int SetWindowPos(int hWnd,int hWndInsertAfter ,int X,int Y,int cx,int cy,int uFlags); int MoveWindow(int hWnd,int X,int Y,int nWidth,int nHeight,int bRepaint); #import #import "shell32.dll" int ShellExecuteW (int hwnd, string lpOperation, string lpFile, string lpParameters, string lpDirectory, int nShowCmd); #import //---------- int OnInit(void) { return(INIT_SUCCEEDED); } //---------- void OnDeinit(const int reason) { } //---------- int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { return(rates_total); } //---------- void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { int customEventID,parent; if(id>CHARTEVENT_CUSTOM) {//Drucken(lparam," | ",dparam," | "sparam); customEventID = id - CHARTEVENT_CUSTOM; switch(customEventID) { case 1: parent = GetParent((int)ChartGetInteger(0,CHART_WINDOW_HANDLE)); SetWindowPos(parent,0,0,0,(int)lparam,(int)dparam,0x0002); break; //GUI EIN case 2: parent = GetParent((int)ChartGetInteger(0,CHART_WINDOW_HANDLE)); SetWindowPos(parent,0,0,0,(int)lparam,(int)dparam,0x0002); break; //GUI AUS case 3: ShellExecuteW(NULL, "open", "explorer",TerminalInfoString(TERMINAL_DATA_PATH)+"\\MQL4\\Files\\"+sparam, NULL, 1); break; case 4: ShellExecuteW(NULL, "open", "notepad", TerminalInfoString(TERMINAL_DATA_PATH)+"\\MQL4\\Files\\"+sparam, NULL, 1); break; default: break; } if(customEventID>=11 && customEventID<40) { int Width = 282,Height = 363; long chartID = lparam; parent = GetParent((int)ChartGetInteger(chartID,CHART_WINDOW_HANDLE)); int _X = (int)ObjectGetString(chartID,"X",OBJPROP_TEXT); int _Y = (int)ObjectGetString(chartID,"Y",OBJPROP_TEXT); MoveWindow(parent,_X,_Y,Width,Height,true); } else if(customEventID==100) { Print(sparam); //Ihre Befehle } } }
12. Zum Schluss
Wenn Sie bis hierher gelesen haben, wäre ich Ihnen für Verbesserungsvorschläge sehr dankbar. Ich kann auch zusätzliche Einstiegssignale hinzufügen (sie müssen auf allen Zeitrahmen und Symbolen funktionieren). MACD-Divergenz werde ich hinzufügen und informieren.
