|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Letzte Kerze in bestimmten Bereich finden
Hallo.
Ich würde gerne rausfinden, ob in einem Oszillator, z.B. jetzt mal der CCI, die letzte Kerze, die nicht zwischen Indicator-Line-1 und -2 war, über oder unter eben diesen Linien waren. Denke mal, dann könnte man das ein oder andere Fehlsignal vermeiden. Code:
double CCI_B1=iCCI(Symbol(),Timeframe,CCI_Period,CCI_Price,1); Erst mal ne Variable für den CCI Shift, also welche Kerze benutzt werden soll, festlegen, z.B.: Code:
int CCI_Bar = 1; double CCI_B1=iCCI(Symbol(),Timeframe,CCI_Period,CCI_Price,CCI_Bar); Code:
while ( CCI < IL_2 ){ CCI_Bar++; Code:
... if ( CCI > IL_2 ) string Wo war CCI zuletzt = "über IL_2"; if ( CCI < IL_1 ) string Wo war CCI zuletzt = "unter IL_1"; return ( Wo war CCI zuletzt );} Code:
if ( CCI > IL_1 && Wo war CCI zuletzt == "unter IL_1" ) { OrderSend(OP_BUY und so weiter...) } |
|
|||
Ob das so funktioniert? Oder braucht man unbedingt ne Schleife? Da käme dann eigentlich nur die while-Schleife in Frage. Aber die bleibt ja gerne mal hängen so viel ich weiß...
1. Die Kerze des CCI deklarieren, die geprüft werden soll. Code:
int CCI_il_1or2_Bar = 1; Die Kerze entspricht der oben fest gelegten. Code:
double CCI_il_1or2=iCCI(Symbol(),Timeframe,CCI_Period,CCI_Price,CCI_il_1or2_Bar); soll die zu prüfende Kerze erhöht werden. Code:
if ( CCI_il_1or2 > CCI_indicator_level_1 || CCI_il_1or2 < CCI_indicator_level_2 ) { CCI_il_1or2_Bar++; soll ihr Wert mit return zurück gegeben werden. Code:
if ( CCI_il_1or2 < CCI_indicator_level_1 || CCI_il_1or2 > CCI_indicator_level_2 ) return(CCI_il_1or2); } Immerhin gibts beim Kompilieren keine Fehlermeldung. Edit:While-Schleifen hängen ja gerne mal, soviel ich weiß. Könnte man das Ganze vielleicht irgendwie mit ner for-Schleife bewerkstelligen? |
Lesezeichen |
|
|