Einzelnen Beitrag anzeigen
  #3 (permalink)  
Alt 07.06.20
Benutzerbild von Indikator-Trading
Indikator-Trading Indikator-Trading ist offline
Premium Mitglied
 
Registriert seit: May 2020
Ort: Bielefeld
Beiträge: 345
Indikator-Trading befindet sich auf einem aufstrebenden Ast
Standard

Es liegt es daran, dass du die For-Schleife mit 0 anfängst, anstatt bei der Max-Position der externen Variablen.



Ist dann das gleiche Problem, welches du hättest, wenn du z.B. alle Orders Closen willst, aber bei der Ersten anfängst.

Du löschst ja eine globale Variable. Dann nimmt die nächste in der Reihe direkt den Platz der gerade gelöschen ein. Diese fragst du im Schleifendurchlauf aber nicht mehr ab, sondern springst zur nächsten!

Var0 ist gelöscht -> Var1 geht an i =0. for-schleife springt auf i = 1, var2 wird jetzt gelöscht, da var1 ja auf i =0 sitzt, var3 nimmt die Position von Var2 ein usw.

Daher löscht du nur 9 Variablen, obwohl 18 vorhanden waren. Außerdem fragt deine For-Schleife ja auch jedes mal die Anzahl der vorhandenen externen Variablen ab, daher halt auch nur die 9 Durchläufe!

Lösung zum Problem:
Code:
for(int i=GlobalVariablesTotal()-1; i>=0; i--)
Außerdem könntest du deine If-Abfrage sicherer gestalten, wenn du das folgendermaßen machst, zumindest solange der jeweilige SubString nicht nochmal irgendwo auftaucht!

Code:
if(StringFind(glob_name,GPFX,0)>=0)