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: 4973
Beiträge: 43250
Benutzer: 7.219
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: Hopfen&Malz
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einem Tag
- Hopfen&Mal...
vor 2 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107
vor 2 Wochen
- rg-trader

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 250
Gesamt: 250
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: 422
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: 422
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.733
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: 422
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.733
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.733
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: 422
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.733
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 +1. Es ist jetzt 11:42 Uhr.





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