Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools  
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4152
Beiträge: 39007
Benutzer: 6.442
Aktive Benutzer: 224
Links: 80
Wir begrüßen unseren neuesten Benutzer: devIXX
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 18:12).
Neue Benutzer:
vor 19 Stunden
- devIXX
vor einem Tag
- sevdarko
vor 2 Tagen
- Mart
vor 6 Tagen
- mfleck12
vor einer Woche
- sviter-pro

Onlineuser
'Wer ist online' anzeigen Benutzer: 3
Gäste: 69
Gesamt: 72
Team: 0
Team:  
Benutzer:  fxnoob, sevdarko, traderdoc
Freunde anzeigen

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 21.11.18
Mitglied
 
Registriert seit: Dec 2017
Ort: 76891
Beiträge: 97
Angel befindet sich auf einem aufstrebenden Ast
Standard 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:
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]=NormalizeDouble(MAErgebnis,6);
   
   }
Comment(" MA9 = ",MA[9]," MA5 = ",MA[5]," MA1 =",MA[1]); 
So, das Ding produziert mir nur 4 Stellen hinter dem Komma statt 5. Ich kann bei MormalizeDouble so große Zahlen angeben wie ich will. An was kann das liegen?
__________________
MQL4-Interessiert... und noch gaaaanz am Anfang
Mit Zitat antworten
  #2 (permalink)  
Alt 21.11.18
Mitglied
 
Registriert seit: Dec 2017
Ort: 76891
Beiträge: 97
Angel befindet sich auf einem aufstrebenden Ast
Standard

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
Mit Zitat antworten
  #3 (permalink)  
Alt 21.11.18
Mitglied
 
Registriert seit: Dec 2017
Ort: 76891
Beiträge: 97
Angel befindet sich auf einem aufstrebenden Ast
Standard

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
Mit Zitat antworten
Antwort

Lesezeichen


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +2. Es ist jetzt 23:41 Uhr.


Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2019 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2017 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------