Geschrieben 6. Januar 201016 Jr. comment_91520 Hallo, ich wünsche allen ein frohes, gesundes und erfolgreiches Neues Jahr 2010. Und habe dann mal gleich eine Frage: Bei mir kommt folgende Warnmledung im Experten Log: invalid integer number as parameter 4 for iADX function Funktionieren tut es aber, und im Meta-Editor kommt keine Fehlermeldung. Zum ADX habe ich folgenden Code geschrieben: extern int ADXPeriode = 14;extern int ADXSchwelle = 30; bool ADXx(){ if (iADX(NULL, 0, ADXPeriode, Close, 0, 0)> ADXSchwelle) return (true); else return (false); } und in den Bedingungen für den Start if (ADXx()) Warum kommt die Warnung? Melden
Geschrieben 6. Januar 201016 Jr. comment_91521 Bei mir kommt folgende Warnmledung im Experten Log: invalid integer number as parameter 4 for iADX function bool ADXx(){ if (iADX(NULL, 0, ADXPeriode, Close, 0, 0)> ADXSchwelle) return (true); else return (false); } Warum kommt die Warnung?Parameter 4 ist in Deinem Fall das "Close". Die Hilfe zum iADX sagt folgendes aus: double iADX(string symbol, int timeframe, int period, int applied_price, int mode, int shift) Die Variable Close ist aber höchstwahrscheinlich vom Typ double. Das passt dann nicht zusammen und er meckert rum. Wenn Du nun den ADX auf den Close anwenden willst, hast Du zwei Möglichkeiten:a) Du schreibst PRICE_CLOSE anstatt Close oderb) Du schreibst eine 0 anstatt Close Sieht dann so aus:if (iADX(NULL, 0, ADXPeriode, 0, 0, 0)> ADXSchwelle) return (true); else return (false);Das wäre das, was mir auf die Schnelle dazu einfällt . Melden
Geschrieben 6. Januar 201016 Jr. Autor comment_91539 Danke conglom-o, Deine Antwort hat geholfen, nach Änderung wie von Dir beschrieben kommt keine Warnung mehr. Durch abzählen bin ich auch auf Close gekommen (Parameter 4), konnte mir aber nicht vorstellen was daran falsch ist, weil ich doch den ADX aufs Close berechnet haben wollte. Und funktioniert hats ja auch.Also herzliches Dankeschön. Und auch wieder was gelernt. Melden
Geschrieben 6. Januar 201016 Jr. comment_91540 konnte mir aber nicht vorstellen was daran falsch ist, weil ich doch den ADX aufs Close berechnet haben wollte. Und funktioniert hats ja auch.Also wenn die Berechnung wirklich richtig war, dann war es mehr Glück und Zufall als sonstwas ;) Eigentlich bei all diesen Berechnungen von built-in Indikatoren wo man den Preis auf den er berechnet werden soll auswählen kann, ist nicht der aktuelle Wert des Preises anzugeben (das wär keine eindeutige Identifizierung und es werden ja mehr als der aktuelle Wert benötigt) sondern ein sogenannter Identifier. Also eine Zahl die angibt welcher Preis verwendet werden soll. Für die Identifier der Built-in Indis gibt es Gott sei Dank vordefinierte Konstante, für Close ist es, wie conglom-o schon geschrieben hat PRICE_CLOSE. HTH Melden
Hallo,
ich wünsche allen ein frohes, gesundes und erfolgreiches Neues Jahr 2010.
Und habe dann mal gleich eine Frage:
Bei mir kommt folgende Warnmledung im Experten Log:
invalid integer number as parameter 4 for iADX function
Funktionieren tut es aber, und im Meta-Editor kommt keine Fehlermeldung.
Zum ADX habe ich folgenden Code geschrieben:
extern int ADXPeriode = 14;
extern int ADXSchwelle = 30;
bool ADXx()
{
if (iADX(NULL, 0, ADXPeriode, Close, 0, 0)> ADXSchwelle)
return (true); else return (false);
}
und in den Bedingungen für den Start
if (ADXx())
Warum kommt die Warnung?