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)
-   -   Custom Indikator in EA benutzen (http://www.expert-advisor.com/forum/showthread.php?t=6794)

MA-EA 04.10.20 21:16

Custom Indikator in EA benutzen
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo.

Wird mein eigener Custom-Indikator so richtig benutzt / aufgerufen / abgefragt / was auch immer? Ja, wahrscheinlich kommt diese Frage schon irgendwie komisch rüber, aber da man beim Proggen irgendwie nie vor Überraschungen geschützt ist, frag ich lieber. :rolleyes:


Globale Variablen meines Indi ( 2 mal der Selbe ):
Code:

extern string esfMMM="1. (MA-MA)+/-MA";

extern int              first_Dist_fast_MA_Period=2;
input ENUM_MA_METHOD    first_Dist_fast_MA_Method=MODE_SMA;
input ENUM_APPLIED_PRICE first_Dist_fast_MA_Price =PRICE_CLOSE;

extern int              first_Dist_slow_MA_Period=5;
input ENUM_MA_METHOD    first_Dist_slow_MA_Method=MODE_SMA;
input ENUM_APPLIED_PRICE first_Dist_slow_MA_Price =PRICE_CLOSE;

extern int              first_PlMi_MA_Period=7;
input ENUM_MA_METHOD    first_PlMi_MA_Method=MODE_SMA;
input ENUM_APPLIED_PRICE first_PlMi_MA_Price =PRICE_CLOSE;

extern bool first_Plus_PlMiMA = false;


//-----------------------------------------------------------------------------------------------------------*/


extern string essMMM="2. (MA-MA)+-MA";

extern int              secon_Dist_fast_MA_Period=2;
input ENUM_MA_METHOD    secon_Dist_fast_MA_Method=MODE_SMA;
input ENUM_APPLIED_PRICE secon_Dist_fast_MA_Price =PRICE_CLOSE;

extern int              secon_Dist_slow_MA_Period=5;
input ENUM_MA_METHOD    secon_Dist_slow_MA_Method=MODE_SMA;
input ENUM_APPLIED_PRICE secon_Dist_slow_MA_Price =PRICE_CLOSE;

extern int              secon_PlMi_MA_Period=7;
input ENUM_MA_METHOD    secon_PlMi_MA_Method=MODE_SMA;
input ENUM_APPLIED_PRICE secon_PlMi_MA_Price =PRICE_CLOSE;

 extern bool secon_Plus_PlMiMA = false;

Deklarationen meines Indi ( 2 mal der Selbe ):

Code:

// 1. MA-MA+/-MA_CHA
 double first_MAmiMApmMA = iCustom(Symbol(),TF,
"C:/Users/AMD/AppData/Roaming/MetaQuotes/Terminal/A6DFBB1B8DE9672D2328FF3445436DEC/MQL4/Indicators/TwoMAplmiMA_CHA.ex4"
,

first_Dist_fast_MA_Period,
first_Dist_fast_MA_Method,
first_Dist_fast_MA_Price,
first_Dist_slow_MA_Period,
first_Dist_slow_MA_Method,
first_Dist_slow_MA_Price,
first_PlMi_MA_Period,
first_PlMi_MA_Method,
first_PlMi_MA_Price,

0 // Line Index ?
,
1 // Bar 1
);



//-----------------------------------------------------------------------------------------------------------*/



// 2. MA-MA+/-MA_CHA
double secon_MAmiMApmMA = iCustom(Symbol(),TF,
"C:/Users/AMD/AppData/Roaming/MetaQuotes/Terminal/A6DFBB1B8DE9672D2328FF3445436DEC/MQL4/Indicators/TwoMAplmiMA_CHA.ex4"
,

secon_Dist_fast_MA_Period,
secon_Dist_fast_MA_Method,
secon_Dist_fast_MA_Price,
secon_Dist_slow_MA_Period,
secon_Dist_slow_MA_Method,
secon_Dist_slow_MA_Price,
secon_PlMi_MA_Period,
secon_PlMi_MA_Method,
secon_PlMi_MA_Price,
secon_Plus_PlMiMA,

0 // Line Index ?
,
1 // Bar 1
);


MA-EA 13.10.20 10:02

Liste der Anhänge anzeigen (Anzahl: 2)
Moin.

Wie ich befürchtete, ist das anscheinend doch nicht so einfach, wie zuerst angenommen. :rolleyes:

Im Anhang ein EA, der 3 eigene Indikatoren benutzen soll. Wovon 2 anscheinend funktionieren, wie sie sollen. Der, der auch im Anhang ist, wird wohl nicht richtig benutzt vom EA. Fehlermeldungen gibts nicht, aber die Print-Vers. des EA printet immer "0" als Wert des Indi. Der allerdings scheint richtig zu funktionieren, keine Fehlermeldungen und wenn man ihn in nen Chart zieht, funktioniert er soweit richtig. Hab bestimmt Alles 3 mal durch geguckt, aber keine Ahnung, was da falsch ist. :confused:


GV des Indi (der wie gesagt manuell soweit funktioniert :rolleyes: )
Code:

extern int              MA_one_Period=6;
input ENUM_MA_METHOD    MA_one_Method=MODE_SMA;
input ENUM_APPLIED_PRICE MA_one_Price =PRICE_CLOSE;

extern int              MA_two_Period=11;
input ENUM_MA_METHOD    MA_two_Method=MODE_SMA;
input ENUM_APPLIED_PRICE MA_two_Price =PRICE_CLOSE;

GV des Indi im EA
Code:

// M A p l MA d 2
//=============================================================================================================

extern string esFMpMd2="first MAplMAd2_CHA";

extern int              fi_MpMd2_one_Period=2;
input ENUM_MA_METHOD    fi_MpMd2_one_Method=MODE_SMA;
input ENUM_APPLIED_PRICE fi_MpMd2_one_Price =PRICE_TYPICAL;

extern int              fi_MpMd2_two_Period=4;
input ENUM_MA_METHOD    fi_MpMd2_two_Method=MODE_SMA;
input ENUM_APPLIED_PRICE fi_MpMd2_two_Price =PRICE_CLOSE;

//-----------------------------------------------------------------------------------------------------------*/

extern string esSMpMd2="second MAplMAd2_CHA";

extern int              se_MpMd2_one_Period=4;
input ENUM_MA_METHOD    se_MpMd2_one_Method=MODE_SMA;
input ENUM_APPLIED_PRICE se_MpMd2_one_Price =PRICE_TYPICAL;

extern int              se_MpMd2_two_Period=8;
input ENUM_MA_METHOD    se_MpMd2_two_Method=MODE_SMA;
 input ENUM_APPLIED_PRICE se_MpMd2_two_Price =PRICE_CLOSE;

Deklarationen des Indi im EA. Letzterer soll 2mal den Indi benutzen.
Code:

first_MAplMAd2 = iCustom(Symbol(),TF,

"MAplMAd2_CHA"
,
fi_MpMd2_one_Period,
fi_MpMd2_one_Method,
fi_MpMd2_one_Price,
fi_MpMd2_two_Period,
fi_MpMd2_two_Method,
fi_MpMd2_two_Price
,
0 // Line Index ?
,
1 // Bar 1
);


//-----------------------------------------------------------------------------------------------------------*/


secon_MAplMAd2 = iCustom(Symbol(),TF,

"MAplMAd2_CHA"
,
se_MpMd2_one_Period,
se_MpMd2_one_Method,
se_MpMd2_one_Price,
se_MpMd2_two_Period,
se_MpMd2_two_Method,
se_MpMd2_two_Price
,
0 // Line Index ?
,
1 // Bar 1
);


noSkill06s 15.10.20 23:04

Zitat:

Zitat von MA-EA (Beitrag 44553)
Moin.

Wie ich befürchtete, ist das anscheinend doch nicht so einfach, wie zuerst angenommen. :rolleyes:

Im Anhang ein EA, der 3 eigene Indikatoren benutzen soll. Wovon 2 anscheinend funktionieren, wie sie sollen. Der, der auch im Anhang ist, wird wohl nicht richtig benutzt vom EA. Fehlermeldungen gibts nicht, aber die Print-Vers. des EA printet immer "0" als Wert des Indi. Der allerdings scheint richtig zu funktionieren, keine Fehlermeldungen und wenn man ihn in nen Chart zieht, funktioniert er soweit richtig. Hab bestimmt Alles 3 mal durch geguckt, aber keine Ahnung, was da falsch ist. :confused:


GV des Indi (der wie gesagt manuell soweit funktioniert :rolleyes: )
Code:

extern int              MA_one_Period=6;
input ENUM_MA_METHOD    MA_one_Method=MODE_SMA;
input ENUM_APPLIED_PRICE MA_one_Price =PRICE_CLOSE;

extern int              MA_two_Period=11;
input ENUM_MA_METHOD    MA_two_Method=MODE_SMA;
input ENUM_APPLIED_PRICE MA_two_Price =PRICE_CLOSE;

GV des Indi im EA
Code:

// M A p l MA d 2
//=============================================================================================================

extern string esFMpMd2="first MAplMAd2_CHA";

extern int              fi_MpMd2_one_Period=2;
input ENUM_MA_METHOD    fi_MpMd2_one_Method=MODE_SMA;
input ENUM_APPLIED_PRICE fi_MpMd2_one_Price =PRICE_TYPICAL;

extern int              fi_MpMd2_two_Period=4;
input ENUM_MA_METHOD    fi_MpMd2_two_Method=MODE_SMA;
input ENUM_APPLIED_PRICE fi_MpMd2_two_Price =PRICE_CLOSE;

//-----------------------------------------------------------------------------------------------------------*/

extern string esSMpMd2="second MAplMAd2_CHA";

extern int              se_MpMd2_one_Period=4;
input ENUM_MA_METHOD    se_MpMd2_one_Method=MODE_SMA;
input ENUM_APPLIED_PRICE se_MpMd2_one_Price =PRICE_TYPICAL;

extern int              se_MpMd2_two_Period=8;
input ENUM_MA_METHOD    se_MpMd2_two_Method=MODE_SMA;
 input ENUM_APPLIED_PRICE se_MpMd2_two_Price =PRICE_CLOSE;

Deklarationen des Indi im EA. Letzterer soll 2mal den Indi benutzen.
Code:

first_MAplMAd2 = iCustom(Symbol(),TF,

"MAplMAd2_CHA"
,
fi_MpMd2_one_Period,
fi_MpMd2_one_Method,
fi_MpMd2_one_Price,
fi_MpMd2_two_Period,
fi_MpMd2_two_Method,
fi_MpMd2_two_Price
,
0 // Line Index ?
,
1 // Bar 1
);


//-----------------------------------------------------------------------------------------------------------*/


secon_MAplMAd2 = iCustom(Symbol(),TF,

"MAplMAd2_CHA"
,
se_MpMd2_one_Period,
se_MpMd2_one_Method,
se_MpMd2_one_Price,
se_MpMd2_two_Period,
se_MpMd2_two_Method,
se_MpMd2_two_Price
,
0 // Line Index ?
,
1 // Bar 1
);


Ich habe es jetzt nur mal kurz überflogen aber was mir gleich aufgefallen ist bevor ich es weiterangeschaut habe

iCustom(Symbol(),und dann kommt hier "TF" solltes du da nicht die Period_Current nehmen? wie gesagt weiter habe ich es nicht angeschaut, müsste es bei mir einfügen und testen verstehe auch nicht so ganz was das Problem ist

Es sind 3 Indikatoren 2 funktionieren du konntest Sie einbinden nur der hier macht Probleme? hast du vielleicht eine Fehlermeldung oder kannst du mal deinen kompletten Code Posten? falls du es nicht veröffentlichen willst kann ja sein kannst du mir es Privat schicken ich mach gerade einen MQL4 kurs und würde gern meine Skills testen wollen

noSkill06s 15.10.20 23:06

Zitat:

Zitat von MA-EA (Beitrag 44553)
Moin.

Wie ich befürchtete, ist das anscheinend doch nicht so einfach, wie zuerst angenommen. :rolleyes:

Im Anhang ein EA, der 3 eigene Indikatoren benutzen soll. Wovon 2 anscheinend funktionieren, wie sie sollen. Der, der auch im Anhang ist, wird wohl nicht richtig benutzt vom EA. Fehlermeldungen gibts nicht, aber die Print-Vers. des EA printet immer "0" als Wert des Indi. Der allerdings scheint richtig zu funktionieren, keine Fehlermeldungen und wenn man ihn in nen Chart zieht, funktioniert er soweit richtig. Hab bestimmt Alles 3 mal durch geguckt, aber keine Ahnung, was da falsch ist. :confused:


GV des Indi (der wie gesagt manuell soweit funktioniert :rolleyes: )
Code:

extern int              MA_one_Period=6;
input ENUM_MA_METHOD    MA_one_Method=MODE_SMA;
input ENUM_APPLIED_PRICE MA_one_Price =PRICE_CLOSE;

extern int              MA_two_Period=11;
input ENUM_MA_METHOD    MA_two_Method=MODE_SMA;
input ENUM_APPLIED_PRICE MA_two_Price =PRICE_CLOSE;

GV des Indi im EA
Code:

// M A p l MA d 2
//=============================================================================================================

extern string esFMpMd2="first MAplMAd2_CHA";

extern int              fi_MpMd2_one_Period=2;
input ENUM_MA_METHOD    fi_MpMd2_one_Method=MODE_SMA;
input ENUM_APPLIED_PRICE fi_MpMd2_one_Price =PRICE_TYPICAL;

extern int              fi_MpMd2_two_Period=4;
input ENUM_MA_METHOD    fi_MpMd2_two_Method=MODE_SMA;
input ENUM_APPLIED_PRICE fi_MpMd2_two_Price =PRICE_CLOSE;

//-----------------------------------------------------------------------------------------------------------*/

extern string esSMpMd2="second MAplMAd2_CHA";

extern int              se_MpMd2_one_Period=4;
input ENUM_MA_METHOD    se_MpMd2_one_Method=MODE_SMA;
input ENUM_APPLIED_PRICE se_MpMd2_one_Price =PRICE_TYPICAL;

extern int              se_MpMd2_two_Period=8;
input ENUM_MA_METHOD    se_MpMd2_two_Method=MODE_SMA;
 input ENUM_APPLIED_PRICE se_MpMd2_two_Price =PRICE_CLOSE;

Deklarationen des Indi im EA. Letzterer soll 2mal den Indi benutzen.
Code:

first_MAplMAd2 = iCustom(Symbol(),TF,

"MAplMAd2_CHA"
,
fi_MpMd2_one_Period,
fi_MpMd2_one_Method,
fi_MpMd2_one_Price,
fi_MpMd2_two_Period,
fi_MpMd2_two_Method,
fi_MpMd2_two_Price
,
0 // Line Index ?
,
1 // Bar 1
);


//-----------------------------------------------------------------------------------------------------------*/


secon_MAplMAd2 = iCustom(Symbol(),TF,

"MAplMAd2_CHA"
,
se_MpMd2_one_Period,
se_MpMd2_one_Method,
se_MpMd2_one_Price,
se_MpMd2_two_Period,
se_MpMd2_two_Method,
se_MpMd2_two_Price
,
0 // Line Index ?
,
1 // Bar 1
);


was mir noch auffällt ist gleich das du folgendes machst

"secon_MAplMAd2 = iCustom(Symbol(),TF,...."

du musst den Rückgabewert des icustoms ja in einer Variable speichern "double" z.B. so:

double meinIndikator = iCustom(......);

MA-EA 16.10.20 13:16

Liste der Anhänge anzeigen (Anzahl: 4)
Hallo.

Im Anhang noch mal der EA. Und der MAplMAd2 Indi, der vom EA benutzt werden soll, wo unter -Experten- aber als Wert immer 0 steht. Dazu die anderen beiden Indi, die auch vom EA benutzt werden sollen, und wies aussieht, das auch ( weitestgehend :rolleyes: ) korrekt tun.

Nur der MAplMAd2 zeigt wie gesagt unter Experten immer 0 an, und ich weiß nicht wirklich warum. Wenn man ihn in nen Chart mit 4 oder mehr Nachkommastellen zieht, scheint er richtig zu funktionieren. Die Kurve sieht korrekt aus, die Werte im Datenfenster auch. Aber im EA, in dem er benutzt werden soll, scheint er wie gesagt immer nur 0 zurück zu geben.

Mit dem TF ist mit allen 3 Indis das Gleiche.

(Fast) alle Variablen wurden global deklariert.

Ist Alles im Anhang.

noSkill06s 16.10.20 21:30

Zitat:

Zitat von MA-EA (Beitrag 44568)
Hallo.

Im Anhang noch mal der EA. Und der MAplMAd2 Indi, der vom EA benutzt werden soll, wo unter -Experten- aber als Wert immer 0 steht. Dazu die anderen beiden Indi, die auch vom EA benutzt werden sollen, und wies aussieht, das auch ( weitestgehend :rolleyes: ) korrekt tun.

Nur der MAplMAd2 zeigt wie gesagt unter Experten immer 0 an, und ich weiß nicht wirklich warum. Wenn man ihn in nen Chart mit 4 oder mehr Nachkommastellen zieht, scheint er richtig zu funktionieren. Die Kurve sieht korrekt aus, die Werte im Datenfenster auch. Aber im EA, in dem er benutzt werden soll, scheint er wie gesagt immer nur 0 zurück zu geben.

Mit dem TF ist mit allen 3 Indis das Gleiche.

(Fast) alle Variablen wurden global deklariert.

Ist Alles im Anhang.

was hältst du davon wenn ich die ganzen indis zu einem indikator zusammenfasse? schreib mir doch einfach die Logik und ich baue sie zu einem Indikator dann kannst du bei deinem Expert Advisor nur den einen Indikator aufrufen was die sache ziemlich vereinfachen würde, leider hatte ich noch keine zeit die indis anzuschauen mach ich aber heute mitternacht

das alles bitte ohne Gewähr ich bin noch am lernen und würde es gerne für mich zu Übungszwecken machen damit ich noch mehr Erfahrungen sammeln kann. Natürlich bekommst du dann von den einen Indikator wo alle zusammenlaufen und nur noch im EA integriert werden muss, EA könnte ich auch schon nur da bin ich noch nicht soweit

und den einen indi den schau ich heute nacht mal safe an und gebe dir hier bescheid

MA-EA 18.10.20 05:17

Liste der Anhänge anzeigen (Anzahl: 2)
Moin.

Im Anhang meine ganzen Indikatoren. Tobt Euch gerne aus. ;)

Aber bedenkt, dass ich alles andere als Experte bin und im Code selbst und auch in den Rechen- und Arbeits-Schritten Fehler drin sein können (und wahrscheinlich auch sind :rolleyes: ).

Wenn von 3 Custom-Indikatoren vom EA 2 richtig genutzt werden und nur einer keinen Wert anzeigt, ohne irgendwelche Fehlermeldungen, kanns ja eigentlich nur am Indi liegen... :confused:


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