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.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3824
Beiträge: 36923
Benutzer: 6.083
Aktive Benutzer: 494
Links: 80
Wir begrüßen unseren neuesten Benutzer: Wombat
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 2 Stunden
- Wombat
vor 17 Stunden
- idur
vor einem Tag
- DarthTrade...
vor einem Tag
- Eren
vor einem Tag
- Rene1504

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

Empfehlungen

Werbung

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 24.02.12
Mitglied
 
Registriert seit: Dec 2011
Beiträge: 39
idefix2 befindet sich auf einem aufstrebenden Ast
Standard Chartperiode erzwingen

Hallo,

kann man in einem EA irgendwie die Chartperiode vorgeben, sodass sich das Chartfenster bei Start des EA automatisch auf die gewünschte Periode umstellt und sich dann nicht mehr ändern lässt - weil wenn man unbedacht eine andere Periode einstellt, wird der EA ja komplett neu gestartet, das ist ja in der Regel nicht das, was man sich wünscht.

Ich habe einen EA geschrieben, der auf die einzelnen Ticks direkt reagiert und die benötigten daten speichert, sodass er die Kerzendaten gar nicht verwendet und ihm die angezeigte Chartperiode eigentlich egal wäre. Es würde mir schon genügen, wenn ich verhindern könnte, dass der bei einem Wechsel der Periode automatisch neu initialisiert wird - wobei ja alle Variablen ihre Werte verlieren und er wieder neu zu rechnen anfangen muss.
  #2 (permalink)  
Alt 24.02.12
Benutzerbild von sandmann23
Mitglied
 
Registriert seit: Feb 2012
Beiträge: 67
sandmann23 befindet sich auf einem aufstrebenden Ast
sandmann23 eine Nachricht über Skype™ schicken
Standard

Hi,

schau mla in der MT HIlfe unter:

int UninitializeReason( )

und/oder int Period( )

Gruss
sandmann
  #3 (permalink)  
Alt 25.02.12
Mitglied
 
Registriert seit: Dec 2011
Beiträge: 39
idefix2 befindet sich auf einem aufstrebenden Ast
Standard

Wenn ich das richtig verstehe, kann ich eine Änderung der Timeframe also nicht verhindern, aber ich könnte in der deinit-routine alle Variablenwerte, die ich brauche, in einem file speichern und im init wieder nachladen, dann kann der EA weitermachen, als wäre nichts geschehen.

Ist zwar mühsam, aber besser als gar nichts

Oder bleiben die Variablen und Felder vielleicht gar erhalten, wenn die Periode geändert wird? Das wäre natürlich optimal.
  #4 (permalink)  
Alt 25.02.12
Benutzerbild von sandmann23
Mitglied
 
Registriert seit: Feb 2012
Beiträge: 67
sandmann23 befindet sich auf einem aufstrebenden Ast
sandmann23 eine Nachricht über Skype™ schicken
Standard

Hi,

was haben hier alle nur immer mit ihren Dateioperationen?
Das ist mit Kanonen auf Spatzen schiessen und wenn man das nicht im Griff hat, baut man sich noch mehr Fehlerpunkte ein.

int Zahl; //global deklariert für den EA

init()
{
//This function can also be called in function init() to analyze the reasons for deinitialization of the previour launch.
if(UninitializeReason() == REASON_CHARTCHANGE)
{
// Zahl soll nicht geändert werden, also beenden wir hier init()
return(0);
}
else
zahl++;
}

//For experts, it is called after the next tick has income.
start()
{}

Also nicht nachladen, sondern im init() prüfen, ob sie zurückgesetzt werden müssen (deine Variablen).

Gruss
sandmann
  #5 (permalink)  
Alt 26.02.12
Mitglied
 
Registriert seit: Dec 2011
Beiträge: 39
idefix2 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
was haben hier alle nur immer mit ihren Dateioperationen?
Das war die Frage, die ich noch hatte. Wenn die Werte der Variablen und Felder des EA bestehen bleiben, auch wenn die Periode geändert wird, brauche ich natürlich nichts auf eine Datei auslagern, sondern nur die Init-Routine auslassen und bei nächsten Tick ganz normal weitermachen. Aber ob das der Fall ist, war mir eben nicht klar:

Zitat:
Oder bleiben die Variablen und Felder vielleicht gar erhalten, wenn die Periode geändert wird? Das wäre natürlich optimal.
  #6 (permalink)  
Alt 26.02.12
Benutzerbild von sandmann23
Mitglied
 
Registriert seit: Feb 2012
Beiträge: 67
sandmann23 befindet sich auf einem aufstrebenden Ast
sandmann23 eine Nachricht über Skype™ schicken
Standard

Jein,

ChartChange bedeute init() Ausführung, wenn deine Variablen dort benutzt/bearbeitet werden ändern sie sich natürlich. Zur Vermeidung siehe Codesnipplet

hast du die Vars nur in der start() deklariert, dann gibt es die natürlich nicht mehr, wenn die start() beendet ist.

Ansonsten behalten alle ausserhalb der start(),init(),deiit() deklarierten Variablen
natürlich ihren Wert.

Gruss
sandmann
__________________
es muss nicht immer Forex sein:
Handelssysteme auf Eurex Daten
MyFxBook - Performance - T4Y
facebook
  #7 (permalink)  
Alt 26.02.12
Mitglied
 
Registriert seit: Dec 2011
Beiträge: 39
idefix2 befindet sich auf einem aufstrebenden Ast
Standard

Danke, alles klar. Damit ist es zum Glück einfacher, als ich dachte.

Zitat:
hast du die Vars nur in der start() deklariert, dann gibt es die natürlich nicht mehr, wenn die start() beendet ist.
Das ist schon klar Die verschwinden ja auch ganz ohne Periodenänderung von einem Tick zum Nächsten.
Thema geschlossen

Lesezeichen

Stichworte
chartperiode, chartperiode erzwingen, ea, expert-advisor, mql4, programmierung, programmierung metatrader


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 14:02 Uhr.



Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2017 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.
-----------------------------------------------------------------------------------------------------------------------------