|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Custom Indikator in EA benutzen
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. 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; 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 ); |
|
|||
Moin.
Wie ich befürchtete, ist das anscheinend doch nicht so einfach, wie zuerst angenommen. 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. GV des Indi (der wie gesagt manuell soweit funktioniert ) 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; 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; 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 ); |
|
|||
Zitat:
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 |
|
|||
Zitat:
"secon_MAplMAd2 = iCustom(Symbol(),TF,...." du musst den Rückgabewert des icustoms ja in einer Variable speichern "double" z.B. so: double meinIndikator = iCustom(......); |
|
|||
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 ) 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. |
|
|||
Zitat:
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 |
|
|||
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 ). 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... |
Lesezeichen |
|
|