Hallo Ronald, hier ist der Kern des Codes ...... offensichtlich muss er richtig in einen EA eingebunden werden ........ Eingefügter Code int AutoMagic () {string Cur1 = StringSubstr (Symbol (), 0,3), Cur2 = StringSubstr (Symbol (), 3,3), magic1 = 0, magic2 = 0; int Period_ID = 0; if (Cur1 == EUR) magic1 = 1; if (Cur1 == GBP) magic1 = 2; if (Cur1 == USD) magic1 = 3; if (Cur1 == AUD) magic1 = 4; if (Cur1 == CHF) magic1 = 5; if (Cur1 == CAD) magic1 = 6; if (Cur1 == JPY) magic1 = 7; if (Cur1 == NZD) magic1 = 8; if (Cur2 == EUR) magic2 = 1; if (Cur2 == GBP) magic2 = 2; if (Cur2 == USD) magic2 = 3; if (Cur2 == AUD) magic2 = 4; if (Cur2 == CHF) magic2 = 5; if (Cur2 == CAD) magic2 = 6; if (Cur2 == JPY) magic2 = 7; if (Cur2 == NZD) magic2 = 8; switch (Period ()) {case PERIOD_MN1: Period_ID = 9; brechen; case PERIOD_W1: Period_ID = 8; brechen; case PERIOD_D1: Period_ID = 7; brechen; case PERIOD_H4: Period_ID = 6; brechen; case PERIOD_H1: Period_ID = 5; brechen; Fall PERIOD_M30: Period_ID = 4; brechen; Fall PERIOD_M15: Period_ID = 3; brechen; case PERIOD_M5: Period_ID = 2; brechen; case PERIOD_M1: Period_ID = 1; brechen; } AutoMagic = StringConenate (EA_Number, EA_Instance_UID, magic1, magic2, Period_ID, 0); while (GlobalVariableCheck (AutoMagic)) {//Wenn MagicNumber bereits vorhanden ist, dann inkrementieren Sie Instance_UID EA_Instance_UID ; AutoMagic = StringConenate (EA_Number, EA_Instance_UID, magic1, magic2, Period_ID, 0); } if (! GlobalVariableCheck (AutoMagic)) GlobalVariableSet (AutoMagic, StrToDouble (AutoMagic));/MagicNumber existiert nicht, also schreibe es als Gvar if (EA_Instance_UID gt; 1) {Print (Beachten Sie, dass dies die Instanznummer EA_Instance_UID dieses EA für dieses Währungspaar ist!);/den Benutzer auf die Konfliktwarnung aufmerksam machen (mehrere Instanzen desselben EA-Währungspaares. Überprüfen Sie Ihre Risikoeinstellungen. EA_Instance_UID neu zugewiesen!); } return (StrToInteger (AutoMagic)); } Im Wesentlichen wird eine magische Zahl zugewiesen, die auf einem Währungspaar, einem Zeitrahmen und einer EA-Nummernkennung sowie einer eindeutigen Kennung der EA-Instanz basiert (dh derselbe EA, der mehr als einmal in derselben Währung und im gleichen Zeitrahmen ausgeführt wird). Es ordnet die magische Zahl einer globalen Variablen zu, sodass andere EAs überprüfen können, ob die Zahl vorhanden ist. Wenn die Nummer vorhanden ist, kann es nur derselbe EA, das gleiche Währungspaar und derselbe Zeitrahmen sein. Daher wird die EA_Instance_UID um eins erhöht, bis eine gefunden wird, die nicht belegt ist. Diese magische Zahl wird dann als Zeichenfolge mit demselben Namen gespeichert. Denken Sie daran, die globale Variable in der Funktion uninit () zu löschen, da dies zu Problemen führen kann. EA_Instance_UID EA_Number wird vor den Funktionen deklariert, damit sie von der Funktion, die von der aufgerufen wird, gesehen werden könneninit () - Funktion. Ich denke, man könnte sie auch in der init-Funktion deklarieren und als Parameter übergeben.