|
Startseite | Registrieren | Hilfe | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
EA Variablen zurücksetzen
Hallo,
im Moment setze ich die Variablen einzeln im Bereich int init zurück. Geht das einfacher, sodass alle Variablen auf einmal zurücksetzt werden? Ich habe Probleme mit Aufsummierungen gehabt, nach Änderungen in der Eingabe. Raul |
|
|||
Ich habe rausgefunden, dass ich bei deinit() die Rücksetzungen tätigen kann.
Wie ich alle Variablen auf einmal zurücksetzen kann fehlt noch, bzw. den EA. Geht das überhaupt? Mit ExpertRemove() wäre es die sauberste Lösung, jedoch gehen die Einstellungen verloren. |
|
|||
Ich verstehe das Problem noch nicht ganz.
Klar, bei OnInit() werden alle Variablen resettet. Das passiert "auf einmal", auch wenn für jede Variable einzeln. Nur wo soll jetzt der Vorteil liegen, mittels einer Funktion alle Variablen zu resetten. Im Prinzip macht das ja eine Funktion und die heißt OnInit(). Du kannst auch eine eigene Funktion schreiben: z.B. Reset_Variables(). Dort werden alle Variablen natürlich wieder einzeln zurückgesetzt. Diese Funktion kannst Du dann aber irgendwo einsetzen, wo sie für Dich Sinn ergibt. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Ok, ein einfaches Beispiel. Die Variable test wird zu einem Zeitpunkt während des Betriebes auf 20 gesetzt.
Rufe ich mit F7 die Einstellungen auf und klicke ok, dann sehe ich über die Zeile bei init(), Print("test init ", test );, dass diese Variable noch den Wert 20 beibehalten hat, obwohl der EA mit neuen Einstellungen gestartet wurde. Ich hatte schon die Befehle bei mql durchgeschaut, leider nichts gefunden, sodass ich mit einem Befehl den Speicher der Variablen nullen kann. Alles nur Einzelabfertigung, was bei vielen Variablen gern zu Fehlern führt. PHP-Code:
|
|
|||
also ich kann ohne probleme über f7 änderungen vornehmen die auch geladen werden-oder habe ich was komplett falsch verstanden
2016.02.16 13:03:02.388 MACD Sample EURUSD,H1 inputs: TakeProfit=30.0; Lots=0.1; TrailingStop=30.0; MACDOpenLevel=3.0; MACDCloseLevel=2.0; MATrendPeriod=26; 2016.02.16 13:02:52.691 MACD Sample EURUSD,H1 inputs: TakeProfit=50.0; Lots=0.1; TrailingStop=30.0; MACDOpenLevel=3.0; MACDCloseLevel=2.0; MATrendPeriod=26; edit: ich denke das dies möglicherweise gar nicht über OnInit() läuft sondern über OnTick() da nur eine variable geändert wurde und auch nur diese initialisiert wird |
|
|||
Ja, aus diesem Grunde werden bei mir alle Variablen erst in der OnInit()-Funktion initialisiert. Damit wäre auch Dein Problem behoben.
traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Zitat:
Bei Veränderungen über F7 nimmt der EA diese externen Variablen-Veränderungen mit, aber eigentümlicherweise nicht die der globalen Variablen. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
ich gestehe, auch bei mir wird alles wie digits, signs, magic, time(filter) im OnInit() initialisiert
|
|
|||
Also Einzelabfertigung :-)
Im Header definieren, im Bereich init Grundwerte zuweisen. Gut, Danke für die Mithilfe. PHP-Code:
|
|
|||
... oder eben in eine eigene Funktion auslagern, sofern das Resetten auch von anderer Stelle aus betrieben werden sollte.
traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
Lesezeichen |
Stichworte |
init, initialisieren, mql4, oninit(), programmierung, programmierung metatrader, variablen initialisieren, variablen zurücksetzen |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|