Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4
Startseite Registrieren Hilfe Community Kalender Heutige Beiträge Suchen

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4978
Beiträge: 43533
Benutzer: 7.224
Aktive Benutzer: 74
Links: 84
Wir begrüßen unseren neuesten Benutzer: Sundaytrader
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 8 Stunden
- Sundaytrad...
vor 14 Stunden
- TS_6
vor 2 Tagen
- Mane
vor 2 Wochen
- AlbertZiz
vor 2 Wochen
- michak

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 379
Gesamt: 379
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 04.10.20
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard 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;
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
);
Angehängte Dateien
Dateityp: mq4 eIMT4EA_CP1AB_2xMmMpmM.mq4 (45,5 KB, 0x aufgerufen)
Dateityp: mq4 TwoMAplmiMA_CHA.mq4 (15,6 KB, 0x aufgerufen)
  #2 (permalink)  
Alt 13.10.20
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

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;
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
);
Angehängte Dateien
Dateityp: mq4 MAplMAd2_CHA.mq4 (12,6 KB, 0x aufgerufen)
Dateityp: mq4 eIMT4EA_CP1AB_V1_PrintV.mq4 (48,4 KB, 0x aufgerufen)
  #3 (permalink)  
Alt 15.10.20
Mitglied
 
Registriert seit: Aug 2020
Beiträge: 36
noSkill06s befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
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;
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
  #4 (permalink)  
Alt 15.10.20
Mitglied
 
Registriert seit: Aug 2020
Beiträge: 36
noSkill06s befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
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;
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(......);
  #5 (permalink)  
Alt 16.10.20
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

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.
Angehängte Dateien
Dateityp: mq4 eIMT4EA_CP1AB_V1_PrintV.mq4 (48,4 KB, 0x aufgerufen)
Dateityp: mq4 MAplMAd2_CHA.mq4 (12,6 KB, 0x aufgerufen)
Dateityp: mq4 OnePrice_CHA.mq4 (10,6 KB, 0x aufgerufen)
Dateityp: mq4 PRpMAd2_CHA.mq4 (12,8 KB, 0x aufgerufen)
  #6 (permalink)  
Alt 16.10.20
Mitglied
 
Registriert seit: Aug 2020
Beiträge: 36
noSkill06s befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
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.
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
  #7 (permalink)  
Alt 18.10.20
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

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...
Angehängte Dateien
Dateityp: zip MAEAsIndikatorenOszillatoren.zip (20,1 KB, 2x aufgerufen)
Dateityp: mq4 eIMT4EA_CP1AB_V1_PrintV.mq4 (48,4 KB, 1x aufgerufen)
Thema geschlossen

Lesezeichen


Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +2. Es ist jetzt 02:24 Uhr.





Suchmaschine - Reisen - Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------