|
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 |
|
|||
Array
Hi, ich versuche mich gerade in der Anwendung von Arrays.
Dazu möchte ich zu Testzwecken auf M1 einen EMA4 (Damit man die Veränderung schneller sieht) anwenden. Zu jeder Kerze soll der jeweilige Wert der EMA4 berechnet werden - und zwar 5-stellig (Z.B. 1.12345 ) Nun habe ich mal etwas vorbereitet :-) PHP-Code:
__________________
MQL4-Interessiert... und noch gaaaanz am Anfang |
|
|||
Also, ich denke, ich habe nun wirklich alles durchprobiert. Ich würde normalerweise sagen, dass iMA() von Hause aus 4-stellig ist (Was ich nicht glaube), aber dann müsste NormalizeDouble(...,x) dennoch x STellen hinter dem Komma anzeigen? Mann, Mann, Mann, bin mal gespannt, wo da wieder der Denkfehler ist.....
__________________
MQL4-Interessiert... und noch gaaaanz am Anfang |
|
|||
Ok, ich denke, ich hab´s.
So viel ich nun "erforscht" habe, wird NormalizeDouble maximal mit 4 Ziffern ausgegeben (Warum auch immer), intern jedoch wird jedoch mit der angeforderten Stellenzahl gerechnet. Um das Ergebnis zu kontrollieren bzw. die korrekte Stellenzahl BEIM AUSDRUCK (Print / Comment) zu erhalten, sollte man die Funktion DoubleToStr() verwenden. Also nochmal: NormalizeDouble() taugt m.E. für Lotsize-Berechnungen. Intern wird die double-Variable mit hinreichender (Nachkomma-)Genauigkeit berechnet ( besser als float). Zum Darstellen dann die DoubleToStr()-Funktion nehmen. Hier die Abänderung: Code:
double MAErgebnis; double MA[11]; for (int Index = 10;Index > 0;Index --) //Zähle "Index" Kerzen rückwärts bis zur aktuellen Kerze { MAErgebnis=(iMA(NULL,1,4,0,1,0,Index)); //NULL bedeutet das aktuelle Paar, 1 bedeutet M1, 4 die Periode der EMA4, 0 = MA_shift, 1 = die Methode EMA, die 0 der Close und der Index der um den Index Kerzen verschobenen Indikator MA[Index]=MAErgebnis; } Comment(" MA9 = ",DoubleToStr(MA[9],5)," MA5 = ",MA[5]," MA1 =",MA[1]);
__________________
MQL4-Interessiert... und noch gaaaanz am Anfang |
Lesezeichen |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|