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: 4174
Beiträge: 39042
Benutzer: 6.462
Aktive Benutzer: 222
Links: 80
Wir begrüßen unseren neuesten Benutzer: Ele
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 18:12).
Neue Benutzer:
vor 2 Tagen
- Ele
vor 5 Tagen
- Tomico
vor einer Woche
- vishal
vor einer Woche
- damianator
vor einer Woche
- karsten_th...

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 58
Gesamt: 59
Team: 0
Team:  
Benutzer:  Stier
Freunde anzeigen

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 04.01.19
Mitglied
 
Registriert seit: Dec 2017
Ort: 76891
Beiträge: 102
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 19:04 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 04.01.19
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.185
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.
Mit Zitat antworten
  #3 (permalink)  
Alt 04.01.19
Mitglied
 
Registriert seit: Dec 2017
Ort: 76891
Beiträge: 102
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
Mit Zitat antworten
  #4 (permalink)  
Alt 05.01.19
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 731
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.
Mit Zitat antworten
  #5 (permalink)  
Alt 05.01.19
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.185
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.
Mit Zitat antworten
  #6 (permalink)  
Alt 05.01.19
Mitglied
 
Registriert seit: Dec 2017
Ort: 76891
Beiträge: 102
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
Mit Zitat antworten
  #7 (permalink)  
Alt 05.01.19
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 731
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?
Mit Zitat antworten
  #8 (permalink)  
Alt 10.01.19
Mitglied
 
Registriert seit: Dec 2017
Ort: 76891
Beiträge: 102
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
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 10:52 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.
-----------------------------------------------------------------------------------------------------------------------------