|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
If Anweisung.. Was fehlt?
Hi, ich bitte um eure Hilfe. Ich habe einen Zähler programmiert, der einem Wert entweder eine 1, 0 oder -1 zuweist. Mehrere dieser Werte werden dann zusammengezählt und das Ergebnis wird mir über die Comment Funktion im Chart angezeigt.
Allerdings ist die Zuweisung nicht immer richtig. Einem Wert müsste zum Beispiel eine -1 zugewiesen werden, es wurde Ihm aber eine 1 zugewiesen. Hier der Code: extern int Zeiteinheit = 1; int EUR1,EUR2,..,EURZaehler; void OnTick() { //--- //EURUSD < if(iOpen("EURUSD",Zeiteinheit,1)<iClose("EURUSD",Z eiteinheit,1)) { if(EUR1!=1) { EUR1=1; } if(USD1!=-1) { USD1=-1; } } //EURUSD > if(iOpen("EURUSD",Zeiteinheit,1)>iClose("EURUSD",Z eiteinheit,1)) { if(EUR1!=-1) { EUR1=-1; } if(USD1!=1) { USD1=1; } } //EURUSD = if(iOpen("EURUSD",Zeiteinheit,1)==iClose("EURUSD", Zeiteinheit,1)) { if(EUR1!=0) { EUR1=0; } if(USD1!=0) { USD1=0; } } EURZaehler = EUR1+EUR2,..; Comment("EUR"," ",EURZaehler); } Ich denke, dass die if Befehle nicht ganz richtig sind und er da irgendwo hängen bleibt. Allerdings komme ich ohne Hilfe nicht weiter... Weiß nicht, ob da ein return, break, else oder was auch immer fehlt.. Was ich auch versucht habe, hat nur zu weiteren Fehlern geführt.. |
|
|||
Hallo,
ich weis zwar nicht genau was du da willst aber versuch es mal so: Code:
extern int Zeiteinheit = 1; int EUR1,EUR2,..,EURZaehler; void OnTick() { double Open1 = iOpen("EURUSD", Zeiteinheit, 1); double Close1 = iClose("EURUSD", Zeiteinheit,1); //EURUSD < if(Open1 < Close1) { EUR1=1; USD1=-1; } //EURUSD > else if(Open1 > Close1) { EUR1=-1; USD1=1; } //EURUSD = else if(Open1 == Close1) { EUR1=0; USD1=0; } EURZaehler = EUR1+EUR2,..; Comment("EUR"," ",EURZaehler); } Was ist eigentlich mit EUR2 usw. wann weist du diesen Werte zu? Ich glaube, dass es eher daran liegt dass diese Werte nicht richtig definiert sind. Und schreibe bitte den Code das nächste mal wie vorgesehen. (# - Symbol in Symbolleiste). ---Leopold--- Geändert von Leopold (14.08.18 um 16:14 Uhr) |
|
|||
Danke für die Antwort. Werde es heute Abend mal ausprobieren. EUR2 kommt dann vom nächsten Währungspaar, z. B. Eurjpy. Der Code ist dann genau wie der gepostete, nur mit dem anderen Währungspaar und mit fortlaufenden Zahlen am Ende. So gehe ich alle Währungspaare durch
|
|
|||
Habe das Problem gefunden. Es lag aber nicht am Code.
Anscheinend ist es erforderlich alle Währungspaare, deren Kursdaten im EA benötigt werden, permanent in der Marktübersicht anzuzeigen. Hatte fast alle Symbole verborgen und da hat es nicht funktioniert. Jetzt bin ich auf "alle anzeigen" gegangen und es funktioniert einwandfrei.. |
|
|||
Darf man mal fragen was der Sinn der ganzen Sache ist?
|
|
|||
Naja, man sieht ganz gut die Stärke und Schwäche der einzelnen Währungen aus der letzten Kerze in einer beliebigen Zeiteinheit..
Beispiel: EURUSD letzte 1 min Kerze Open>Close EUR1=-1 USD1=1 NZDUSD 1min Open>Close NZD1=-1 USD2=1 EURNZD 1min Open>Close EUR2=-1 NZD2=1 USDZaehler=USD1+USD2=2 EURZaehler=EUR1+EUR2=-2 NZDZaehler=NZD1+NZD2=0 In diesem Beispiel wäre in der letzten 1min Kerze Stärke im USD und Schwäche im EUR.. Habe alle Majors und Minors im EA und bekomme so mMn ganz nützliche Informationen.. Was man nun mit den Informationen veranstaltet bleibt jedem selber überlassen |
Lesezeichen |
|
|