|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Maximum oder Minimum eines Indikators
Hi,
ich will das Maximum und Minimum eines Indikators auslesen - klappt aber irgendwie nicht Code:
double MACDtip[1],MACDMinWert,MACDMaxWert; int MACDmini,MACDmaxi; for(int u=0;u=20;u++) { MACDtip[u]=iMACD(NULL,0,MACDWert1,MACDWert2,9,PRICE_CLOSE,MODE_MAIN,u); MACDmini=ArrayMaximum(MACDtip,WHOLE_ARRAY,0); MACDmaxi=ArrayMinimum(MACDtip,WHOLE_ARRAY,0); } MACDMinWert=iMACD(NULL,0,MACDWert1,MACDWert2,9,PRICE_CLOSE,MODE_MAIN,MACDmini); MACDMaxWert=iMACD(NULL,0,MACDWert1,MACDWert2,9,PRICE_CLOSE,MODE_MAIN,MACDmaxi); Print("MACDMinWert: ",MACDMinWert); |
|
|||
Hallo.
Hier sind ein paar Fehler. Ich kann diese gern mit dir durcharbeiten. 1. Fehler: Code:
double MACDtip[1]; |
|
|||
ok, dann also
Code:
double MACDtip[20] |
|
|||
Genau!
MACDMinWert, MACDMaxWert, MACDmini und MACDmaxi würde ich noch den Wert 0 zuweisen, damit diese auch einen Initialen Wert haben. 2. Fehler die for Schleife Code:
for(int u=0;u=20;u++) bei u=20 hier wird die Bedingung eingegeben bei der die Schleife noch ausgeführt wird. d.h. hier müsstest du <= bzw < verwenden. Aber Achtung, da du 20 Werte für dein Array willst musst du darauf achten auch nur 20 Werte dem Array zuzuweisen. Wenn du einen 21 Wert zuweisen willst bekommst du einen Fehler. |
|
|||
SUPER Danke, so läuft es zumindest schon.....
Code:
double MACDtip[20],MACDMinWert,MACDMaxWert; int MACDmini,MACDmaxi; for(int u=1;u<=20;u++) { MACDtip[u]=iMACD(NULL,0,MACDWert1,MACDWert2,9,PRICE_CLOSE,MODE_MAIN,u); MACDmini=ArrayMaximum(MACDtip,WHOLE_ARRAY,0); MACDmaxi=ArrayMinimum(MACDtip,WHOLE_ARRAY,0); } MACDMinWert=iMACD(NULL,0,MACDWert1,MACDWert2,9,PRICE_CLOSE,MODE_MAIN,MACDmini); MACDMaxWert=iMACD(NULL,0,MACDWert1,MACDWert2,9,PRICE_CLOSE,MODE_MAIN,MACDmaxi); Print("MACDMinWert: ",MACDMinWert); |
|
|||
Hab was übersehn:
Du benötigst ja auch den Index für das Array und der beginnt bei 0. Darum wär es doch besser int u=0 und die Bedingung u<20 verwenden. Damit hast du den Index für das Array. Bei der Indikator abfrage musst du dann aber den Index u+1 verwenden, damit er dann beim Indikator bei 1 beginnt. Code:
for(int u=0;u<20;u++) { MACDtip[u]=iMACD(NULL,0,MACDWert1,MACDWert2,9,PRICE_CLOSE,MODE_MAIN,u+1); ... } |
|
|||
Zitat:
|
|
|||
Die abfrage vom Min und Max Wert brauchst du nicht in die Schleife integrieren. Das Kannst du auch nachher machen:
Code:
MACDMinWert=MACDtip[ArrayMinimum(MACDtip,WHOLE_ARRAY,0)]; MACDMaxWert=MACDtip[ArrayMaximum(MACDtip,WHOLE_ARRAY,0)]; Das sollte es dann gewesen sein. Vielleicht postest du den Code dann nochmal, dann schau ich nochmal drüber. ---Leopold--- |
|
|||
Klappt nicht .... der Maximalwert ist kleiner als das Minimum
Code:
double MACDtip[20],MACDMinWert,MACDMaxWert; int MACDmini,MACDmaxi; for(int u=0;u<20;u++) { MACDtip[u]=iMACD(NULL,0,MACDWert1,MACDWert2,9,PRICE_CLOSE,MODE_MAIN,u+1); MACDmini=ArrayMaximum(MACDtip,WHOLE_ARRAY,0); MACDmaxi=ArrayMinimum(MACDtip,WHOLE_ARRAY,0); } MACDMinWert=iMACD(NULL,0,MACDWert1,MACDWert2,9,PRICE_CLOSE,MODE_MAIN,MACDmini); MACDMaxWert=iMACD(NULL,0,MACDWert1,MACDWert2,9,PRICE_CLOSE,MODE_MAIN,MACDmaxi); Print("MACDMinWert: ",MACDMinWert,"/ MACDMAXWert: ",MACDMaxWert); |
Lesezeichen |
Stichworte |
indikator minimum maximum |
|
|