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: 4973
Beiträge: 43267
Benutzer: 7.220
Aktive Benutzer: 82
Links: 84
Wir begrüßen unseren neuesten Benutzer: JosephTK
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 2 Stunden
- JosephTK
vor 2 Tagen
- Hopfen&Mal...
vor 2 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107

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

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 03.03.20
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard Brokers tatsächliche Preis-Digits ermitteln

Ausgangslage:
Dax CFD mit Broker JFD (kann man ja nennen): _Digits=2, aber die Kurse werden werden nicht etwa wie man vermuten könnte, als 2er Nachkommastelle gestellt, sondern nur als 1ner. Beispieltabelle:
Code:
Zeit: 17:51 Bid/Ask: 11895.60 11897.30
Zeit: 17:51 Bid/Ask: 11895.40 11897.10
Zeit: 17:51 Bid/Ask: 11895.60 11897.30
Zeit: 17:51 Bid/Ask: 11896.10 11897.80
Zeit: 17:51 Bid/Ask: 11897.60 11899.30
Zeit: 17:51 Bid/Ask: 11895.40 11897.10
Zeit: 17:51 Bid/Ask: 11895.60 11897.30
Zeit: 17:51 Bid/Ask: 11895.40 11897.10
Zeit: 17:51 Bid/Ask: 11894.90 11896.60
Zeit: 17:51 Bid/Ask: 11894.60 11896.30
Zeit: 17:51 Bid/Ask: 11893.60 11895.30
Zeit: 17:51 Bid/Ask: 11896.60 11898.30
Zeit: 17:51 Bid/Ask: 11896.40 11898.10
Zeit: 17:51 Bid/Ask: 11896.60 11898.30
Zeit: 17:51 Bid/Ask: 11897.40 11899.10
Zeit: 17:51 Bid/Ask: 11897.10 11898.80
Zeit: 17:51 Bid/Ask: 11897.40 11899.10
Zeit: 17:51 Bid/Ask: 11897.10 11898.80
Zeit: 17:51 Bid/Ask: 11900.60 11902.30
Zeit: 17:51 Bid/Ask: 11899.90 11901.60
Zeit: 17:51 Bid/Ask: 11900.40 11902.10
Zeit: 17:51 Bid/Ask: 11900.90 11902.60
Zeit: 17:51 Bid/Ask: 11900.10 11901.80
Zeit: 17:51 Bid/Ask: 11900.40 11902.10
Zeit: 17:51 Bid/Ask: 11900.10 11901.80
Zeit: 17:51 Bid/Ask: 11900.60 11902.30
Zeit: 17:51 Bid/Ask: 11901.90 11903.60
Zeit: 17:51 Bid/Ask: 11902.90 11904.60
Zeit: 17:51 Bid/Ask: 11902.10 11903.80
Zeit: 17:51 Bid/Ask: 11902.40 11904.10
Zeit: 17:51 Bid/Ask: 11903.10 11904.80
Zeit: 17:51 Bid/Ask: 11902.40 11904.10
Zeit: 17:51 Bid/Ask: 11903.40 11905.10
Zeit: 17:51 Bid/Ask: 11903.60 11905.30
Hier sieht man .10, .30, .40 usw. Gibt es einen Weg außerhalb von "muß man halt beobachten oder aufzeichnen" festzustellen, auf welcher Kommastelle ein Broker die Preise setzt?
Und wie gehe ich damit um in Bedingungsformulierungen?
(Ok, man könnte die Bedingung komplett ohne Digits, also als Ganzzahl formulieren, aber wohin soll das bei Forex führen ?)
Hat jemand einen Vorschlag? Danke. AVT
  #2 (permalink)  
Alt 04.03.20
Mitglied
 
Registriert seit: Feb 2016
Beiträge: 240
RetepM befindet sich auf einem aufstrebenden Ast
Standard

Ich denke bei JFD und Dax, musst Du den Point-Wert mit 100 multiplizieren.
Gruß
  #3 (permalink)  
Alt 04.03.20
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von RetepM Beitrag anzeigen
Ich denke bei JFD und Dax, musst Du den Point-Wert mit 100 multiplizieren.
Gruß
Danke Dir, ... oder NormalizeDouble(x,1) ... oder int MyDigits=1

Nur dann weiß ich immer noch nicht, wie das bei anderen Indizes aussieht, z.B. CAC, FTSE, S&P, DOW (der hat nach meiner Erfahrung teilweise nur .50er Preise) - ganz zu schweigen von all den Forex-Paaren. Ich kann doch nicht dauernd irgendwelche Listen laufen lassen, um die tatsächlichen Preis-Digits zu erfahren.
Noch mehr Ideen? AVT
  #4 (permalink)  
Alt 04.03.20
Mitglied
 
Registriert seit: Feb 2016
Beiträge: 240
RetepM befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von AVT Beitrag anzeigen
Danke Dir, ... oder NormalizeDouble(x,1) ... oder int MyDigits=1

Nur dann weiß ich immer noch nicht, wie das bei anderen Indizes aussieht, z.B. CAC, FTSE, S&P, DOW (der hat nach meiner Erfahrung teilweise nur .50er Preise) - ganz zu schweigen von all den Forex-Paaren. Ich kann doch nicht dauernd irgendwelche Listen laufen lassen, um die tatsächlichen Preis-Digits zu erfahren.
Noch mehr Ideen? AVT
Ja leider, das ist genau das Problem, dann kommt noch dazu, dass die Teile bei jedem Broker anders heißen. Ich für meinen Teil habe das hart verdrahtet, zuerst abfragen, gehört es in die Liste der CFDs, dann die Digits. Ich bin mir aber nicht sicher, ob das auch immer zum Erfolg führt. So eine Liste kannst Du ja in der Init initialisieren... und dann den jeweiligen Multiplikator (PipValue) festlegen.

So mache ich das für mein Dax-Trading bei JFD bzw. ICMarkets:

PipValue = 1;
if(Symbol() == "DE30" || Symbol() == ".DE30Cash" || Symbol() == "US30" || Symbol() == ".US30Cash") {
PipValue = 100;
} else
{
if (NDigits == 2 ||NDigits == 3 || NDigits == 5) PipValue = 10;
}

hier geht es dann los

}
das kann man mit Arrays sicher eleganter lösen. Für mich zählt aber nur, was für mein Trading brauchbar, nützlich ist und das ich mich nicht verkünsteln muss, bin kein Coder...

Grüße
  #5 (permalink)  
Alt 05.03.20
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von RetepM Beitrag anzeigen
Ja leider, das ist genau das Problem, dann kommt noch dazu, dass die Teile bei jedem Broker anders heißen. Ich für meinen Teil habe das hart verdrahtet, zuerst abfragen, gehört es in die Liste der CFDs, dann die Digits. Ich bin mir aber nicht sicher, ob das auch immer zum Erfolg führt. So eine Liste kannst Du ja in der Init initialisieren... und dann den jeweiligen Multiplikator (PipValue) festlegen.
Grüße
Danke, sowas habe ich befürchtet, na dann führt wohl kein Weg daran vorbei - und das mit den Namen (nicht nur die Namen, sondern auch die Verzeichnisse!) begründen sie ja damit, daß das schließlich "kein echter Markt" (sondern halt nur deren, ich sag' mal so, "Spielzeugname").
Grüße, AVT
  #6 (permalink)  
Alt 07.03.20
Premium Mitglied
 
Registriert seit: Jun 2013
Beiträge: 364
Ca$hDigger befindet sich auf einem aufstrebenden Ast
Standard

@AVT

Was du suchst ist denke ich die minimale Preisänderung.
Dafür gibt es SYMBOL_TRADE_TICK_SIZE was die minimale Preisänderung zurückgeben sollte.
https://www.mql5.com/en/docs/constan...tinfoconstants

Die digits müssen nichts mit der TickSize zu tun haben genauso die point-size entspricht nicht immer der TickSize.

Welchen Wert liefert SYMBOL_TRADE_TICK_SIZE bei deinem Underlying?

Im schlechtesten Fall könnte auch das hier greifen und man bekommt nur die blöde Point-Size:
MQL5: Modified the behavior of SYMBOL_TRADE_TICK_SIZE. For symbols with no clearly set tick size, the point size is returned.
https://www.metatrader5.com/en/releasenotes/page11
Dies hat zur Folge hat, dass SYMBOL_TRADE_TICK_SIZE nicht unbedingt korrekt zurückgegeben werden muss sondern dann anstelle dessen die Point-Size kommt.

Wenn ein Underlying wirklich in größeren Sprüngen als point die Preise rausgibt, dann entspricht point eben nicht der tick-size.
zB wäre theoretisch sowas möglich.
point = 0.01
ticksize = 0.1
aber auch sowas
point = 0.01
ticksize = 0.25
  #7 (permalink)  
Alt 09.03.20
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Ca$hDigger Beitrag anzeigen
Was du suchst ist denke ich die minimale Preisänderung.
Dafür gibt es SYMBOL_TRADE_TICK_SIZE was die minimale Preisänderung zurückgeben sollte.
Welchen Wert liefert SYMBOL_TRADE_TICK_SIZE bei deinem Underlying?
Danke Ca$hDigger - leider sind Deine Befürchtungen richtig, ich bekomme auf alle Abfragen nur diese Werte:
Code:
MODE_POINT: 0.01
MODE_TICKSIZE: 0.01
MODE_TICKVALUE: 0.01
SYMBOL_TRADE_TICK_SIZE: 0.01
(erinnert mich irgendwie an den Fall in einer Bank, wo jemand die Nachkommastellen der Kundenkonten auf sein eigenes Konto "begradigt" hat). AVT
Thema geschlossen

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 +1. Es ist jetzt 00:07 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.
-----------------------------------------------------------------------------------------------------------------------------