Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4
Startseite Registrieren Hilfe Community Kalender Heutige Beiträge Suchen

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4978
Beiträge: 43265
Benutzer: 7.222
Aktive Benutzer: 72
Links: 84
Wir begrüßen unseren neuesten Benutzer: Mane
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einem Tag
- Mane
vor 2 Wochen
- AlbertZiz
vor 2 Wochen
- michak
vor 2 Wochen
- Amateur
vor 2 Wochen
- infos1982

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 319
Gesamt: 319
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 04.01.19
Mitglied
 
Registriert seit: Dec 2017
Ort: 76891
Beiträge: 126
Angel befindet sich auf einem aufstrebenden Ast
Standard Anzahl der Stellen eines Moving Average bei 5-stelligem Broker

Hi,

mein Broker ist 5-stellig und möchte mit einem Moving Average arbeiten.

Ich habe das Problem, dass in FOREX (zB EUR/USD)

Code:
 
double EMA15P10;
EMA15P10=iMA(NULL,15,10,0,1,0,0);
nach dem Komma mit 4 Stellen ausgegeben wird. Ich möchte jedoch mit verschiedenen EMA des selben Timeframes und der ähnlichen Perioden arbeiten. Um Genauigkeitsfehler zu minimieren, möchte ich die Moving Averages 5-stellig sind und damit möchte ich rechnen.
Gibt es einen Weg, das Ergebnis der iMA() 5-stellig ausgeben zu lassen?
mit

Code:
double EMA15P10;
string EMA15P10GENAU;
EMA15P10=iMA(NULL,15,10,0,1,0,0);
EMA15P10GENAU=DoubleToStr(EMA15P10,5);
komme ich nicht weiter, da der nun 5-stellige, genaue Wert des Moving Average (EMA15P10GENAU) nur zur Ausgabe taugt, als string jedoch nicht zur Addition oder sonstigen mathematischen Operationen, die ich benötige. Außer seltsamerweise


Code:
if (EMA15P10>EMA15P16)
{}
das haut offenbar hin.

Hat jemand eine Idee? Warum werden die iMA() eigentlich nur 4-stellig ausgegeben?
Bid und Ask werden übrigens auch 4-stellig ausgegeben, obwohl ich 5-stellig kaufe / verkaufe - dies ist auch bei den Orders ersichtlich.
__________________
MQL4-Interessiert... und noch gaaaanz am Anfang

Geändert von Angel (04.01.19 um 18:04 Uhr)
  #2 (permalink)  
Alt 04.01.19
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Das kann ich nicht ganz nachvollziehen, warum bei Dir nur 4 Stellen nach dem Komma angegeben werden.

In meinem Bild siehst Du links das Datenfenster, wo alle Kurswerte und auch der MA 5-stellig angegeben werden.
Im rechten Fenster sieht man die direkte Alert()-Ausgabe der ermittelten MA-Werte auf Kerze 0 (aktuelle Kerze).
Man kann sich die Werte aber auch über

NormalizeDouble(Wert, Digits)

normiert als double-Zahl auf die Anzahl Kiommastellen der Werte der Handelspaare, mit Alert() anzeigen lassen und damit dann auch rechnen.

Das gilt ebenso für die Kurswerte Ask und Bid.

traderdoc
Angehängte Grafiken
Dateityp: png Bild1.PNG (149,9 KB, 5x aufgerufen)
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #3 (permalink)  
Alt 04.01.19
Mitglied
 
Registriert seit: Dec 2017
Ort: 76891
Beiträge: 126
Angel befindet sich auf einem aufstrebenden Ast
Standard

Danke für die rasche Antwort.
Im Datenfenster sehe ich auch alles 5-stellig... aber ich brauche die Werte ja im Programm.
Ich lasse mir zur Kontrolle gerne die Werte mit Comment() im Chart ausgeben. Comment() aktualisiert sich dann ständig im Rahmen der OnTick-Funktion. Und dort ist alles 4-stellig, auch Ask und Bid.
Mit

Code:
EMA15P10GENAU=NormalizeDouble(EMA15P10,5) 
Comment(EMA15P10,5);
versuchte ich es auch schon, die 5 Nachkommastellen hinzubekommen - ohne Erfolg.
__________________
MQL4-Interessiert... und noch gaaaanz am Anfang
  #4 (permalink)  
Alt 05.01.19
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Angel Beitrag anzeigen
Ich möchte jedoch mit verschiedenen EMA des selben Timeframes und der ähnlichen Perioden arbeiten. Um Genauigkeitsfehler zu minimieren, möchte ich die Moving Averages 5-stellig sind und damit möchte ich rechnen.
Gibt es einen Weg, das Ergebnis der iMA() 5-stellig ausgeben zu lassen?


Find vielleicht erst mal raus, warum Dein EMA nur 4 digits hat.
  #5 (permalink)  
Alt 05.01.19
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Angel Beitrag anzeigen
Danke für die rasche Antwort.
Im Datenfenster sehe ich auch alles 5-stellig... aber ich brauche die Werte ja im Programm.
Ich lasse mir zur Kontrolle gerne die Werte mit Comment() im Chart ausgeben. Comment() aktualisiert sich dann ständig im Rahmen der OnTick-Funktion. Und dort ist alles 4-stellig, auch Ask und Bid.
Mit

Code:
EMA15P10GENAU=NormalizeDouble(EMA15P10,5) 
Comment(EMA15P10,5);
versuchte ich es auch schon, die 5 Nachkommastellen hinzubekommen - ohne Erfolg.
Über

double value = iMA(NULL,15,10,0,1,0,0);
Comment(NormalizeDouble(value, Digits));

wirst auch Du eine 5-Stelligkeit sehen. Würde man das NormalizeDouble() weglassen, würden sogar noch viel mehr Stellen angezeigt werden.

traderdoc

PS: @MA-EA - wieder ein super Kommentar!!
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #6 (permalink)  
Alt 05.01.19
Mitglied
 
Registriert seit: Dec 2017
Ort: 76891
Beiträge: 126
Angel befindet sich auf einem aufstrebenden Ast
Standard

Danke! Erst recht zu später Stunde... Jetzt, wo Wochenende ist und kein Tick mehr die OnTick-Funktion antreibt, musste ich das Testprogramm in die OnInit-Funktion verschieben. Dort wird es 1 x ausgeführt. Dann versuchte ich es mit dem Strategietester. Ergebnis: Im Strategietester funktioniert es in der OnTick-Funktion...

So.. nun zu dem Programm:
Code:
  double Test,ND,ND1;
  string DTS;
  Test = iMA(NULL,15,10,0,1,0,0);
  ND = NormalizeDouble(Test,5);
  ND1= NormalizeDouble(iMA(NULL,15,10,0,1,0,0),5);     
  DTS = DoubleToString(Test,5);         
  Comment(" Test = ",Test," ND = ",ND," ND1 = ",ND1," DTS = ",DTS);
[IMG] https://1drv.ms/u/s!AqQnnO2HdvchkFiU8MWTWNF8O-1A [/IMG]

Es klappt!

Lange Rede, kurzer Sinn: Hier, wo ich mein ursprüngliches Programm auseinanderpflückte, bis fast in den Wahnsinn grübelte, einen neuen EA mit diesem Codeschnipsel schrieb.... funktioniert es!!! Obwohl es der ursprüngliche Code ist !
Ich frage mich echt, wo da immer der Fehler liegt... im Gegensatz zu dem ursprünglichen Programm, das die Frage verursachte, habe ich augenscheinlich nichts verändert... Vielleicht der MQL4-Klabautermann...
Danke, traderdoc !!!
__________________
MQL4-Interessiert... und noch gaaaanz am Anfang
  #7 (permalink)  
Alt 05.01.19
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Müsste ein EMA nicht die Punkte genauso anzeigen wie Ask oder Bid oder was auch immer?
  #8 (permalink)  
Alt 10.01.19
Mitglied
 
Registriert seit: Dec 2017
Ort: 76891
Beiträge: 126
Angel befindet sich auf einem aufstrebenden Ast
Standard

Ok - Heureka !!!
Nach ewigem nervigem und genervten Suchen , Ausprobieren und Festbeißen am Problem fand ich nun den Fehler:

Seltsamerweise wird 5-stellig nach Einfügen von

PHP-Code:
#property strict 
oben , wo die ersten Zeilen Programmcode eingefügt werden, angezeigt.

Das war´s schon.

Wahnsinn...
__________________
MQL4-Interessiert... und noch gaaaanz am Anfang
Thema geschlossen

Lesezeichen


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 06:34 Uhr.





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