|
Startseite | Registrieren | Hilfe | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Standard_Abweichung
Hi,
ich wollte gerade einen indikator schreiben, der mir die Standard_Abweichung der letzten 10 Closes in einem separaten Fenster anzeigt. Wenn ich den Indikator aber anwende, stürzt mein Metatrader aber ab. Ist der Code falsch oder hab ich einfach nicht genug Rechnerleistung? Letzteres bezweifle ich doch sehr. Für diejenigen, die es nicht wissen; dies ist die Standard_Abweichung: Hier mein Code: HTML-Code:
#property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 Blue #property indicator_width1 2 extern int period = 10; double Buf0[]; int init() { SetIndexBuffer(0,Buf0); SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2); return(0); } int start() { int counted_bars=IndicatorCounted(); int i = Bars-counted_bars-1; double ma=0; // Durchschnitt der letzten 10 Closes double diff=0; // Differenz zwischen einem Close und dem Durchschnitt aus 10 Closes double sqrt=0; // Wurzel while(i>=0) { for(int k=i; k<i+period; k++){ ma = ma+Close[k]; } ma /= period; for(int j=i; j<i+period; j++){ diff = diff + (Close[j]-ma)*(Close[j]-ma); } sqrt = MathSqrt(diff/(period-1)); Print("sqrt=", sqrt); Buf0[i]=sqrt; } return(0); } |
|
|||
Hier verursacht das
Code:
while(i>=0) Versuch mal die while-schleife durch eine for-schleife zu ersetzen Code:
for (i = i; i >= 0; i--) Gruß naranjoe |
|
|||
Wow, big thx.
Kannst du mir auch erklären warum das nun funktioniert ? |
|
|||
Die Bedingung "while(i>=0)" war immer gegeben, weil du "i" nicht verändert hast.
Dadurch hat er sich in der Schleife "aufhangen". Gruß naranjoe |
|
|||
Ach klar.
Ich dachte schon es hätte einen tieferen programmiertechnischen Hintergrund. Ich hätte also bloß i-- in die Schleife setzen müssen. Danke. |
|
|||
Mein nächstes Vorhaben besteht darin mit anderen EAs und Indikatoren auf die Werte des Indikators der Standardabweichung zugreifen zu können.
Ich würde auf meinen eigenen Indikator gern so zugreifen wie auf Standardindikatoren nach dem Prinzip: double Wert= iRSI(......); Wie stelle ich das an ? |
Lesezeichen |
Stichworte |
indikator, metatrader indikator, mql4, programmierung, programmierung metatrader, standard abweichung |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|