Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools  
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4099
Beiträge: 38672
Benutzer: 6.387
Aktive Benutzer: 217
Links: 80
Wir begrüßen unseren neuesten Benutzer: Oppus International
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 18:12).
Neue Benutzer:
vor 21 Stunden
- Oppus...
vor 22 Stunden
- justme177
vor einem Tag
- DanielF
vor 4 Tagen
- haschmat
vor 4 Tagen
- jayhouse

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 73
Gesamt: 73
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 15.02.16
Premium Mitglied
 
Registriert seit: Apr 2015
Beiträge: 415
Raul0 befindet sich auf einem aufstrebenden Ast
Standard 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
__________________

Easy Trading Assistant
  #2 (permalink)  
Alt 16.02.16
Premium Mitglied
 
Registriert seit: Apr 2015
Beiträge: 415
Raul0 befindet sich auf einem aufstrebenden Ast
Standard

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.
__________________

Easy Trading Assistant
  #3 (permalink)  
Alt 16.02.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.131
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

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.
  #4 (permalink)  
Alt 16.02.16
Premium Mitglied
 
Registriert seit: Apr 2015
Beiträge: 415
Raul0 befindet sich auf einem aufstrebenden Ast
Standard

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:
extern int        Magic          1001;
extern double  BaseLot      0.01;
extern int        TakeProfit    0;
extern int        StopLoss     200;

string Version;
int bmtest 0;

//----
int init()
  {

   
Version "EA_Test";
   
bm 1;
   if(
MarketInfo(Symbol(),MODE_DIGITS) == ||  MarketInfo(Symbol(),MODE_DIGITS) == 3)       bm 10;
   if(
TakeProfit>0)       TakeProfit        =  TakeProfit          bm;   
   if(
StopLoss>0)        StopLoss         =  StopLoss           bm;
//----

Print("test init "test );

   return(
0);
  }
//----
int deinit()
  {
//----
   
return(0);
  }
//----
int start()
  {

Print(
"test start "test );
....
//---- 
__________________

Easy Trading Assistant
  #5 (permalink)  
Alt 16.02.16
Gesperrter Benutzer
 
Registriert seit: Jan 2016
Beiträge: 62
pischinger befindet sich auf einem aufstrebenden Ast
Standard

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
  #6 (permalink)  
Alt 16.02.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.131
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

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.
  #7 (permalink)  
Alt 16.02.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.131
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von pischinger Beitrag anzeigen
also ich kann ohne probleme über f7 änderungen vornehmen die auch geladen werden-oder habe ich was komplett falsch verstanden
Ich denke, ja. Denn es ging ihm nicht um die Änderung der F7-Variablen, sondern um die globalen Variablen unter den externen, die nicht! über F7 aufrufbar sind.

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.
  #8 (permalink)  
Alt 16.02.16
Gesperrter Benutzer
 
Registriert seit: Jan 2016
Beiträge: 62
pischinger befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Ja, aus diesem Grunde werden bei mir alle Variablen erst in der OnInit()-Funktion initialisiert. Damit wäre auch Dein Problem behoben.

traderdoc
ich gestehe, auch bei mir wird alles wie digits, signs, magic, time(filter) im OnInit() initialisiert
  #9 (permalink)  
Alt 16.02.16
Premium Mitglied
 
Registriert seit: Apr 2015
Beiträge: 415
Raul0 befindet sich auf einem aufstrebenden Ast
Standard

Also Einzelabfertigung :-)

Im Header definieren, im Bereich init Grundwerte zuweisen.
Gut, Danke für die Mithilfe.

PHP-Code:
extern int     StopLoss    200;

string Version;
int bmtest;

//----
int init()
  {

   
test 0;

   
Version "EA_Test";
   
bm 1;
...... 
__________________

Easy Trading Assistant
  #10 (permalink)  
Alt 16.02.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.131
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

... 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.
Thema geschlossen

Lesezeichen

Stichworte
init, initialisieren, mql4, oninit(), programmierung, programmierung metatrader, variablen initialisieren, variablen zurücksetzen


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +2. Es ist jetzt 12:16 Uhr.


Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2018 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2017 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------