Zum Inhalt springen
View in the app

A better way to browse. Learn more.

#T/N/X/T

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Broker mit 5 digits

Geschrieben

Hier eine Möglichkeit für das Arbeiten mit 5 digits(5 Stellen hinter dem Komma).

 

Den Parameter 5Digits stellt man auf TRUE wenn 5 digits ansonsten FALSE.

Im Code arbeitet man dann immer mit der Variable pPoint(statt Point) die wärend der initialization Ihren Wert zugewiesen bekommen hat.

double pPoint;

extern bool 5Digits = false; //TRUE wenn Broker mit 5 digits

int init()
 {
Comment("");

pPoint = Point;
if (5Digits) pPoint *= 10;
 }

int start()
 {
double dh = iHigh(NULL,1440,0)+5*pPoint;
 Comment("\naktuelle Tageshoch + 5 pips = "+DoubleToStr(dh,Digits)); 
}

int deinit() { Comment(""); }

Capture_146.gif

Featured Replies

Geschrieben
  • Autor

Wenn man seinen code(script,experts...) bei einem Broker mit 5 digits benutzt, stellt man den Parameter auf true(an).

Ansonsten auf false(aus).

 

oder was meinst du?

Geschrieben
Ich stellte mir vorhin die Frage, ob sich so eine Plausibilitätsprüfung eventuell in Mythos' Library einbauen lassen könnte.

Na ja, es ist eher ne externe Vorgabe im Sinne einer Konfiguration: Du SAGST dem Programm, dass der Broker mit 5 digits arbeitet und nicht nur mit 4. Kein Plausibilitäts-Check.

 

Einbauen in Mythos' Lib könnte man/er :swepimp: es aber.

Geschrieben
Meine Denke ist ja ganz einfach....

...falsch. :swepimp:

 

So in etwa:

Skript/ Library o.V. prüft (automatisch), ob Broker 5 Digit Pricing anbietet, JA True ==> NEIN False

DU bzw. das Skript SAGT dem Programm, dass der Broker 5 Digit Pricing anbietet (was natürlich auch falsch sein kann, wenn dieser es nicht tut, sondern nur die Boolsche Variable im Skript den falschen Wert hat).

 

Dieses Konfigurieren müsste man zumindest einmal am Beginn machen und z.B. ne Variable in Mythos' Lib setzen, danach kann man ja diese immer wieder mit Deiner If-Geschichte abtesten.

 

Es ist bei dem Code aber nicht so, dass man den Broker fragt, was dieser anbietet. Ich weiß auch gar nicht, ob das überhaupt geht, denn sonst hätte FinGer ja nicht das Skript gepostet. :wub:

Geschrieben
Wenn ich Dir folgen kann, hieße dass aber auch, dass ich mitdenken muss?

Den Job soll doch aber der Automat übernehmen

Ah, Du hast also doch das neue Feature einbauen lassen mit der Garderobenfrau am Tom-Next-Eingang, bei der man nicht nur Mäntel und Hüte, sondern auch das Gehirn abgeben kann ?!! :swepimp: Hatte ich damals nicht ein Veto dagegen eingelegt ?

Geschrieben
Ah, Du hast also doch das neue Feature einbauen lassen mit der Garderobenfrau am Tom-Next-Eingang, bei der man nicht nur Mäntel und Hüte, sondern auch das Gehirn abgeben kann ?!! :swepimp: Hatte ich damals nicht ein Veto dagegen eingelegt ?

 

:wub:

 

 

Wieso eigentlich nicht?

Sollte ein EA nicht erst mal per Routine alle Plausibilitäten prüfen, bevor sämtliche Ampeln auf Grün umgestellt werden?

Was ist z.B., wenn mein System auf 4 Dezimalstellen optimiert wurde, mein Broker aber meint, er müsse von einem Tag auf den anderen die Qualität des Pricing verändern? :wub:

Geschrieben

i-Spread-HTML.mq4

 

Ich habe versucht :swepimp: die o.g. mq4 auf 5 Digits zu ändern. Natürlich ohne Erfolg...

Kann die mal bitte von euch einer anpassen und zeigen wo der Code geändert wurde.

 

i_Spread_HTML.mq4

Geschrieben
  • Autor

Das ist möglich auto. Prüfen zulassen.

Aber auch mit Vorsicht zu geniessen da diese 5 digits soweit ich weiß nur für Währungspaare gilt.

 

Also wenn muss beides geprüft werden

1. ist das Symbol ein Währungspaar?

2. mit 5 digits?

dann Rechne den MQL4 Point(0.00001) * 10

 

Ich denke aber mit MQL5 wird das nicht mehr notig sein.

 

Aber hier trozdem mal der code

 

zu 2.

Am einfachsten zu Prüfen ob es sich um einem 5 digits Broker handelt wir nehmen das bekannteste Währungspaar EURUSD

und Fragen dann davon die Digits ab (also die Zahl der Kommastellen)

MarketInfo("EURUSD",MODE_DIGITS);

Problem es gibt Broker die bezeichnen hier Währungspaare mit zusätzlichen Buchstaben

z.b. der EURUSD heißt bei InterbankFX mini EURUSDm

oder EURUSD heißt bei FOREX.com EURUSDFXF

Würde dann also der obere code nicht Funktionieren. Also müssen wir das auch noch Überprüfen.

Je mehr Feautere für die auto. wir einbauen um so mehr Fehlerquellen entstehen.

Deshalb finde ich die einfachste Variante(#1 posting) am besten, da auch zum Problem werden kann das die MarketInfo() Funktion keinen Wert oder einen Falschen zurückgeben kann(habe ich leider auch schon die Erfahrung gemacht).

Aber wir denken positiv und gehen davon aus das der Broker uns immer saubere MarketInfo() Daten schickt.

 

Also um den Name genau auszulesen Subtrahieren wir einfach die ersten 6 Buchstaben des Symbol().

MarketInfo(StringSubstr(Symbol(),0,6),MODE_DIGITS);

und wenn der Wert = 5 ist rechnen wir den MQL4 Point(0.00001) * 10

int dDigits=MarketInfo(StringSubstr(Symbol(),0,6),MODE_DIGITS);

pPoint = Point;
if (dDigits==5) pPoint *= 10;

 

zu 1.

Auch hier benutzen wir wieder MarketInfo() und Fragen den Profit calculation mode(Forex, CFD oder Futures) ab.

Wenn das Symbol = Forex rechnen wir die 5 digits um.

string sSymbol = StringSubstr(Symbol(),0,6);
int dDigits = MarketInfo(sSymbol,MODE_DIGITS);
int CalcMode = MarketInfo(sSymbol,MODE_PROFITCALCMODE);

pPoint = Point;
if (dDigits == 5 && CalcMode == 0) pPoint *= 10;

"Profit calculation mode" habe ich noch nicht getestet, es ist nur eine Idee zur Lösung des Problems."

 

:swepimp:

Geschrieben

In meinen Scripts oder EA´s führe ich die Anpassung für 5 Digits automatisch durch.

Das mache ich gewöhnlich in der init() - Funktion in etwa so:

 

extern int StopLoss = 20;

 

int init()

{

if(Digits == 5 || Digits == 3) // Digits 3 z.B für USDJPY und Digits 5 für EURUSD

{

StopLoss = StopLoss*10;

// usw...

}

}

Geschrieben
  • Autor

@titanfx

 if(Digits == 5 || Digits == 3)

 

genau so.(nicht nur 5) :swepimp:

Geschrieben

Als Alternative ist es auch sehr bequem und logisch,

wenn man einige Grössen in absoluten Werten eingibt

z.B

statt

extern int Stoploss = 10;

 

einfach den absoluten Wert verwenden

extern double Stoploss = 0.0010;

 

Nachteil ist es natürlich, dass diese Grösse nur für die Werte mit 4 oder 5 Digits sind,

von anderer Seite hat man eine feste Bezugsgrösse, wenn man die Charts analysiert

Geschrieben
  • Autor
Wenn ich Dir folgen kann, hieße dass aber auch, dass ich mitdenken muss?

Den Job soll doch aber der Automat übernehmen dusche.gif

 

Falsch, der Automat soll dich nur Unterstützen aber nicht dein Denken übernehmen. :swepimp:

Also, Ich sage JA zu MTS und NEIN zu ATS.

 

ATS(Automated Trading System)(BlackBox, OK Mach mal ich Verlass mich auf dich.... Wir sehen uns in 3 Wochen wieder.... Scheiße....)

MTS(Mechanical Trading System)(Signal!... schauen wir mal. hmm... Ok Einverstanden. Ausführen! ...das "A" kommt dann Später von ganz alleine.)

 

:wub:

Geschrieben

Ist zwar etwas gewagt, weil ich kein Programmierer bin und den Code nicht ganz durchschaue.

Aber praktisch funktioniert er mit meinen unterschiedlichen Brokern (activetrades, ODL, broco, thecollectivefx) ohne Probleme. (Habe ich in einem der anderen Foren gefunden, weiss nicht mehr wo).

 

 

if(MathMod(MathSqrt(1/Point),10)!=0) x=10; // 5 digits broker

else x=1; // 4 digits broker

 

StopLoss ==> x * StopLoss

TakeProfit ==> x * TakeProfit

Geschrieben
if(MathMod(MathSqrt(1/Point),10)!=0) x=10; // 5 digits broker

else x=1; // 4 digits broker

 

Das geht natürlich auch :whiteflag:

eine rein mathematische Lösung :hmmmm:

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

Account

Navigation

Suche

Suche

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.