@MA_EA
Nur weil beim Compilieren kein Fehler auftritt muss die Programmlogik ja nicht richtig sein.
Warum hängst Du dann eigentlich den CCI Indikator an wenn Du den gar nicht brauchst. Dir ist glaube ich das Prinzip noch nicht ganz klar.
Noch mal langsam:
Du legst in Zeile 36-38 folgende Variablen fest:
extern int InpCCIPeriod = 14;
extern double indicator_level1 = -100.0;
extern double indicator_level2 = 100.0;
Dann bestimmst Du in Zeile 63-65 den CCI für drei verschiedene Perioden
double CCI = iCCI(_Symbol,_Period, InpCCIPeriod, CCI_Price, 1);// CCIPeriod?
double IL1 = iCCI(_Symbol,_Period, indicator_level1, CCI_Price, 1);//-100
double IL2 = iCCI(_Symbol,_Period, indicator_level2, CCI_Price, 1);//+100
CCI ergibt laut festgelegter Variablen den Wert für vergangene 14 Perioden
IL1 ergibt den Wert des CCI für -100 Perioden (Du schaust also theoretisch in die Zukunft
LL2 ergibt den Wert des CCI für vergangene 100 Perioden.
Was soll da jetzt vernünftiges an Ergebnis in den Programmzeilen 103 und 104 herauskommen.
CCI>IL2 wenn der CCI(14Perioden) größer ist als der CCI(100) Perioden
CCI<IL2 wenn der CCI(14Perioden) kleiner ist als der CCI(nächste 100 Perioden, die es vom Kursverlauf noch gar nicht gibt) - Spätestens hier wird ein Logikfehler auftreten.
Abgesehen davon müssen IL1 und IL2 vom Datentyp Integer sein wenn Du sie für Perioden einsetzt, double dürfte bei der Programmausführung auch nen Fehler geben.
Hoffe, du verstehst wenigstens ein bischen von dem, was ich Dir versucht habe zu erklären.
|