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)
-   -   iCustom liefert immer Null bzw. einen leeren Wert (http://www.expert-advisor.com/forum/showthread.php?t=4557)

nothin_ 05.11.15 10:42

iCustom liefert immer Null bzw. einen leeren Wert
 
Hallo zusammen,
iCustom macht mich noch verrückt ... ;)

Ich versuche diesen Indikator

https://www.forex-tsd.com/filedata/fetch?id=910681

mit folgender Codezeile einzubinden:
Code:

if((iCustom("EURUSD",PERIOD_M15,"StochRSI99","Close",14,10,3)==0)
Dies klappt beim Ausführen des Strategytesters scheinbar fehlerlos (kein dauerndes load/unload usw.).

Trotzdem scheint nur ein leerer Wert bzw. Null zurückgeliefert zu werden. :confused:

Ich bin über jeden Hinweis woran das liegen könnte dankbar. :)
Schöne Grüße!
nothin_

traderdoc 05.11.15 10:55

if((iCustom("EURUSD",PERIOD_M15,"StochRSI99","Clos e",14,10,3)==0)

1. Was ist "Close"?
2. Die letzte Zahl ist immer die Kerze auf der der Indikatorwert ermittelt wird. Ok, also in diesem Falle die 3. geschlossene Kerze.
3. Die vorletzte Zahl ist die Angabe des Indikatorbuffers: Hier Buffer 10!??

traderdoc

nothin_ 05.11.15 11:43

Hallo traderdoc,
vielen Dank für deine Antwort - ich war der Meinung die Parameter müssen so eingegeben werden wie sie beim Hinzufügen des Parameters im Chart angezeigt werden:

http://imgur.com/oQggKcr

In dem Fall sind das zwei unterschiedliche Dinge ... ?

nothin_ 05.11.15 11:49

Ich glaub jetzt verstehe ich was du meinst - ich muss die Parameter sozusagen von rechts füllen -> sprich die ersten beiden von rechts haben nichts mit dem Indikator zu tun sondern gehören zu icustom - dann kommen die Parameter des Indikators?

EDIT: Was sind hier die Standardwerte? Der Indikator soll so berechnet werden als wenn ich ihn händisch in den Chart einfüge - da muss ich diese Werte ja nicht angeben?

traderdoc 05.11.15 19:36

Die allgemeine Funktion lautet:

double iCustom(
string symbol, // symbol
int timeframe, // timeframe
string name, // path/name of the custom indicator compiled program
... // custom indicator input parameters (if necessary)
int mode, // line index
int shift // shift
);

Minimalangabe wäre in Deinem Fall:
if (iCustom("EURUSD",PERIOD_M15,"StochRSI99",1,1)==0)
Die vorletzte 1 ist der Indiaktorbuffer 1 und die letzte 1 stellt die letzte geschlossene Kerze dar auf der der Indikatorwert berechnet werden soll.
Mit dieser Minimalversion wird aus einem EA heraus der Indikatorwert abgefragt mit seinen indikatorspezifischen Variablen.
Ob der indikatorbuffer 1 ist, muß Du herausbekommen. Entweder über die mq4-Datei oder das Datenfenster im Chart, wo der Indikator liegt.

Wenn Du aus dem EA heraus auch Einfluß auf die indikatorspezifischen Variablen haben möchtest, dann die Maximalform:

if(iCustom("EURUSD",PERIOD_M15,"StochRSI99",X,Y,Z, 1,1)==0)
Für X, Y und Z (und evtl. weitere Variablen) stehen die Variablen, die auch in den Eigenschaften des Indikators direkt stehen. In der Maximalform sollte dann diesselbe Reihenfolge der Varablen stehen, wie auch in den Eigenschaften. Somit könnte man durch ein Verändern der Variablen in der iCustom()-Funktion erreichen, dass man entsprechend variabelangepaßte Indikatorwerte errechnet.

traderdoc

nothin_ 05.11.15 19:41

Hallo traderdoc,
danke für die Rückmeldung - da muss ich mich einlesen! :)

Wegen dem "Close" war das Programm auch beleidigt - das muss PRICE_CLOSE ohne Anführungszeichen heißen.

Scheint jetzt zu klappen! :)


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:25 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