Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   If Anweisung.. Was fehlt? (http://www.expert-advisor.com/forum/showthread.php?t=6172)

TTFM2016 14.08.18 12:52

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

Leopold 14.08.18 15:58

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);

}

Da du bei der Deklaration keine werte vergeben hast, weis ich nicht ob die if Abfrage überhaupt funktioniert, aber wenn der Wert sowieso zugewiesen werden soll, dann brauchst du auch nicht abfragen ob dieser Wert bereits zugewiesen ist.
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---

TTFM2016 14.08.18 16:47

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

TTFM2016 14.08.18 20:58

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

MA-EA 14.08.18 21:18

Darf man mal fragen was der Sinn der ganzen Sache ist? :confused:

TTFM2016 14.08.18 21:42

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 ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:04 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum