Skip to content
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

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

  • Author

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?

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.

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:

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 ?

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:

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

  • Author

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:

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...

}

}

  • Author

@titanfx

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

 

genau so.(nicht nur 5) :swepimp:

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

  • Author
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:

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

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:

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

Account

Navigation

Search

Search

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.