Einzelnen Beitrag anzeigen
  #150 (permalink)  
Alt 25.05.16
ralfbenker ralfbenker ist offline
Mitglied
 
Registriert seit: Oct 2015
Ort: Karlshagen
Beiträge: 199
ralfbenker befindet sich auf einem aufstrebenden Ast
Standard

Hallo MA_EA,
ich mach mal noch einen Versuch, dir die Funktion iCCI() zu erklären. Unter

Commodity Channel Index (CCI) - Tradesignal Online

findest Du eine gute Anleitung wie der CCI berechnet wird. Wie Du siehst, ist die Berechnung nich ganz so einfach. Dafür gibt es in mql4 die Funktion iCCI().

Damit die Funktion iCCI() weiss, mit welchen Parametern der CCI berechnet werden soll müssen der Funktion Variablen übergeben werden und zwar in genau definierter Reihenfolge.
In deinen Variablen CCI,IL1 und IL2 speicherst du die Ergebnisse der Berechnung des CCI.
Um der Funktion iCCI() mitzuteilen mit welchen Variablen der CCI berechnet werden soll musst du genau 5 Variablen festlegen. Die Funktion sieht dann so aus:

iCCI(Var1,Var2,Var3,Var4,Var5)

Die Bedeutung der Variablen ist in der mql4-Referenz gut erklärt.
Var1 -- ist das Symbol das gehandelt werden soll(zB EURUSD, DAX30, ...)
Var2 -- ist der Timeframe der zur Berechnung verwendet wird(z.B. M5,M30,H1)
Var3 -- ist die Periode über die der CCI berechnet werden soll(typisch sind 14 Perioden)
Var4 -- der Preis der zur Berechnung herangezogen werden soll
Var5 -- die Verschiebung der Bars ab der der CCI berechnet werden soll(0 - berechnet ab der aktuellen Periode, 1 dann ab der letzten abgeschlossenen Periode usw.

Du machst in deiner Parameterdefinition folgendes:

double CCI = iCCI(_Symbol,_Period, InpCCIPeriod, CCI_Price, 1);
Hier ist die Var3 bezeichnet mit InpCCIPeriod - du berechnest also den CCI über eine Anzahl von 14 Perioden weil du vorher InputCCIPeriod mit 14 festgelegt hast - die Berechnung ist soweit ok.

double IL1 = iCCI(_Symbol,_Period, indicator_level1, CCI_Price, 1);//-100
Hier ist Var3 bezeichnet mit indicator_level1 - Du berechnest den CCI also mit einem Wert von -100 weil du den so festgelegt hast.

Was ich dir damit sagen will: egal wie die Variable Var3 heißt, ob nun InputCCIPeriod oder indicator_level1 - an der dritten Stelle in der Klammer steht immer die Periode über die der CCI berechnet werden soll. Und mit -100 kann die Funktion iCCI eben nix anfangen.