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

Expert-Advisors Expert-Advisors für Metatrader 4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4973
Beiträge: 43253
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: 648
Gesamt: 648
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Like Tree1Likes
  • 1 Post By traderdoc
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 15.02.17
Mitglied
 
Registriert seit: Nov 2015
Beiträge: 136
Adlerauge befindet sich auf einem aufstrebenden Ast
Standard Re-Initialisierung des EA bei Änderung des Timeframes

Hallo allerseits,

wenn man bei laufendem EA den Timeframe des Chart ändert in dem der EA läuft, intialisiert er sich neu. Im Reiter "Experten" steht dann: uninit reason 3, und direkt eine Zeile drüber: initialized.

Die Hilfe sagt:
REASON_CHARTCHANGE 3 Symbol or chart period has been changed

Kann man das irgendwie verhindern, dass er das tut?
  #2 (permalink)  
Alt 15.02.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Nein, das kann man nicht verhindern.
Bei intelligent geschriebenen EAs spielt das auch keine Rolle. Werden in der OnInit-Funktion allerdings z.B. Variablen auf 0 gesetzt, dann geht der vorher in dieser Variablen gespeicherte Wert verloren und dann hast Du im wahrsten Sinne verloren, denn es werden bestimmte Teile des EA nun anders laufen als erwartet.

Um dieses Szenario zu vermeiden bleibt nur:
1. Das TF nicht! wechseln.
2. Keine Variableninitialisierungen vornehmen
3. Den EA umschreiben (lassen)

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #3 (permalink)  
Alt 15.02.17
Mitglied
 
Registriert seit: Nov 2015
Beiträge: 136
Adlerauge befindet sich auf einem aufstrebenden Ast
Standard

Danke doc für die eindeutige Antwort!

Ich hätte da im Zusammenhang mit der Re-Initialisierung noch eine 2. Frage:

Wenn ich bei laufendem EA über F7 die EA-Eingabemaske aufrufe und einen Wert verändere, dann re-initialisiert er offensichtlich auch alles.
Gibt es die Möglichkeit, einzelne Werte zu ändern, ohne dass er alles re-initialisiert, oder ist das im Prinzip der gleiche Sachverhalt wie beim Ändern des Timeframes?
  #4 (permalink)  
Alt 15.02.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Das ist derselbe Sachverhalt. Es wird sogar initialisiert, wenn Du F7 aufrufst, keine! Variable änderst, aber OK drückst. Nur bei Abbrechen würde keine Initialisierung stattfinden.

Man kann aber alle relevanten Variablen über entsprechende Programmierung auf den Chart legen und in diesen sog. Editierfeldern die Variablen ändern. Diese Felder werden dann permanent über eine spezielle Funktion OnChartEvent() ausgelesen und die Werte geänderter Variablen entsprechend an das Programm "übergeben".

Eine weitere Möglichkeit ist die, die Variablen, welche im Programm zur Laufzeit geändert werden und durch eine Neuinitialisierung wieder meist auf 0 gestellt werden, mittels Globaler Variablen dauerhaft im MT4 zu speichern und mit dem entsprechenden Aufrufen die Werte beibehalten. Das alles würde auch beim Abspeichern in eine csv-Datei funktionieren.

Aber wie bereits geschrieben, dass ist schon etwas aufwändiger und man muss sich mit Globalen Variablen bzw. dem Speichern von csv-Dateien sehr gut auskennen.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #5 (permalink)  
Alt 15.02.17
Mitglied
 
Registriert seit: Nov 2015
Beiträge: 136
Adlerauge befindet sich auf einem aufstrebenden Ast
Standard

wenn ich also in der OnInit() Funktion die

int Beispiel_Variable_1 = 0;

definiere, wird ihr beim Re-Initialisieren wieder der Wert 0 zugewiesen.

Wenn ich aber nur ein Variable

int Beispiel_Variable_2;

in der OnInit() Funktion definiere (ohne = 0), wird ihr bei Re-Initialisieren dann auch der Wert 0 zugewiesen, oder behält diese dann den Wert, den sie im Programmverlauf zugewiesen bekommen hat?
  #6 (permalink)  
Alt 15.02.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Der Variablen Beispiel_Variable_2 wird in der Regel der Wert 0 zugewiesen, wenn keine Initialisierung vorgenommen wird. Zur Sicherheit initialisiert man die Variable aber in der OnInit()-Funktion mit 0.

traderdoc
UForex likes this.
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #7 (permalink)  
Alt 26.03.17
Mitglied
 
Registriert seit: Nov 2015
Beiträge: 136
Adlerauge befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Eine weitere Möglichkeit ist die, die Variablen, welche im Programm zur Laufzeit geändert werden und durch eine Neuinitialisierung wieder meist auf 0 gestellt werden, mittels Globaler Variablen dauerhaft im MT4 zu speichern und mit dem entsprechenden Aufrufen die Werte beibehalten.

traderdoc
Hier ein Zitat aus dem mql4-book:

"Note, global variable of client terminal and global variable are different variables with similar names. The scope of global variables is one program, in which the variable is declared; while the scope of global variables of client terminal is all programs launched in the client terminal."

Welche der beiden Arten von globalen Variabelen meintest Du?
  #8 (permalink)  
Alt 26.03.17
Benutzerbild von UForex
Mitglied
 
Registriert seit: Jan 2016
Ort: Braunschweig
Beiträge: 180
UForex befindet sich auf einem aufstrebenden Ast
Standard

Im Changelog des letzten MT4-Build-Updates wurde das TF-Problem erwähnt und nun hoffentlich gefixed.
  #9 (permalink)  
Alt 26.03.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Adlerauge Beitrag anzeigen
Hier ein Zitat aus dem mql4-book:

"Note, global variable of client terminal and global variable are different variables with similar names. The scope of global variables is one program, in which the variable is declared; while the scope of global variables of client terminal is all programs launched in the client terminal."

Welche der beiden Arten von globalen Variabelen meintest Du?
I mean the global variable of client terminal.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #10 (permalink)  
Alt 26.03.17
Gesperrter Benutzer
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 313
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Adlerauge Beitrag anzeigen
Gibt es die Möglichkeit, einzelne Werte zu ändern, ohne dass er alles re-initialisiert, oder ist das im Prinzip der gleiche Sachverhalt wie beim Ändern des Timeframes?
Es gibt Möglichkeiten Variablen zu verändern ohne den EA zu initialisieren, und zwar über ein Steuerpanel mit Eingabefeldern.
Leider sind einfache und gute Beispiele rar.
Eine weitere Möglichkeit wäre via Tastatur mittels OnChartevent() Variablen zu ändern.
Wobei hier aktuelle Werte der Variablen mit Comment() oder Print() ausgegeben werden können.
Thema geschlossen

Lesezeichen

Stichworte
chart zeit, ea, ea timeframe, expert advisor, timeframe, timeframe wechseln, zeit

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 19:31 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.
-----------------------------------------------------------------------------------------------------------------------------