|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Umstieg von 4 digit auf 5 digit Konto
Bin jetzt bei meinem Broker auf ein ECN-Konto umgestiegen und damit auch von einem 4-digit auf ein 5-digit Konto.
Meines Wissens muss ich jetzt folgende Werte in meinem EA anpassen: Slippage * 10 Spread * 10 MinimumProfit * 10 TakeProfit * 10 StopLoss * 10 Habe das heute mal versucht, aber irgend etwas hat z.B. mit dem neuen StopLoss nicht gestimmt, der war irgendwie zu groß. Also der SL soll 40 Pips betragen. Bisher im 4-digit-Konto habe ich den SL dann mit UsePoint multipliziert, das Ergebnis war dann 0.004. Im 5-digit-Konto bekomme ich jetzt 0.04 als SL, da ich die 40 noch zusätzlich mit 10 multipliziere. Ist es richtig, dass die Variable UsePoint in meinem 4-digit-Konto 0.0001 und in meinem 5-digit-Konto auch genauso 0.0001 beträgt? Anbei die Funktion für das Digit-Handling Gruß Dick PHP-Code:
Geändert von Dick_Turpin (07.05.15 um 23:32 Uhr) |
|
|||
UsePoint = Multiplier*MarketInfo(argSymbol,MODE_POINT);
Hier muß das Multiplier raus, sonst doppelt gemobbelt oder die Pipwerte nicht mit Multiplier multiplizieren. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Danke für die schnelle Antwort traderdoc.
Jetzt noch mal 5 Fragen: 1. Point-Wert ist nur Slippage? 2. Pip-Werte sind Spread, MinimumProfit,TakeProfit und StopLoss? 3. Im 4-digit-konto muss ich mit 0.0001 rechnen. Im 5-digit-konto muss ich auch mit 0.0001 rechnen? 4. die Pip-Werte müssen im 5-digit-konto nicht zusätzlich mit 10 multipliziert werden, wenn ich im 5-digit-konto diese Werte auch mit 0.0001 multipliziere. Lediglich der Point-Wert Slippage muss im 5-digit-konto mit 10 multipliziert werden. 5. Ist diese BrokerDigitAdjust Funktion jetzt für alle unterschiedlichen konten richtig: PHP-Code:
Dick |
|
|||
Ich kann leider nicht den gesamten rechten Text sehen, vermute aber mal, was da steht.
Danke für die schnelle Antwort traderdoc. Jetzt noch mal 5 Fragen: 1. Point-Wert ist nur Slippage? Nein, nur die Slippage wird nur als Pipwert verarbeitet. 2. Pip-Werte sind Spread, MinimumProfit,TakeProfit und StopLoss? Mit Pipwert meinte ich v.a. die Variablen, die in den Eigenschaften des EA eben als Pips angegeben werden. 3. Im 4-digit-konto muss ich mit 0.0001 rechnen. Im 5-digit-konto muss ich auch mit 0.0001 rechnen? Ich löse das immer so, dass ich die Variablen mit Pipangaben mit dem Multiplier multipliziere, um später auch damit weiterrechnen zu können und die Points bleiben bei 0,00001. 4. die Pip-Werte müssen im 5-digit-konto nicht zusätzlich mit 10 multipliziert werden, wenn ich im 5-digit-konto diese Werte auch mit 0.0001 multipliziere. Lediglich der Point-Wert Slippage muss im 5-digit-konto mit 10 multipliziert werden. S.o. 5. Ist diese BrokerDigitAdjust Funktion jetzt für alle unterschiedlichen konten richtig: PHP-Code: void BrokerDigitAdjust(string argSymbol) { int Multiplier = 1; //bei 2 oder 4 Digits wird nichts umgerechnet und der Multiplier bleibt 1 double digits = MarketInfo(argSymbol,MODE_DIGITS); //Digits (Anzahl der Nachkommastellen) des aktuellen Symbols abfragen - Ergebnis ist z.B.: 4.0 bei 4 Nachkommastellen if (digits==3 || digits==5) Multiplier = 10; //hat das Symbol 3 oder 5 Nachkommastellen (Digits) dann wird ein Multiplier von 10 verwendet if (digits==6) Multiplier = 100; //hat das Symbol 6 Nachkommastellen (Digits) dann wird ein Multiplier von 100 verwendet if (digits==7) Multiplier = 1000; //hat das Symbol 7 Nachkommastellen (Digits) dann wird ein Multiplier von 1000 verwendet UsePoint = Multiplier*MarketInfo(argSymbol,MODE_POINT); //UsePoint erhält die richtigen Nachkommastellen und kann für spätere Berechnungen benutzt werden Slippage = Slippage * Multiplier; } S.o. Gruß Dick Traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Hallo Traderdoc,
also multiplizierst Du z.B. Deinen StopLoss mit dem Multiplier und rechnest aber dann mit den originalen Points (0.00001). Bei mir genau umgekehrt: StopLoss bleibt wie er ist und ich multipliziere den Point-Wert mit dem Multiplier, aber ist doch eigentlich egal wie herum man das macht, oder? Den Multiplier habe ich jetzt als globale variable definiert, denn den brauch ich z.B. wenn ich den aktuellen Spread ausgeben möchte, dann dividiere ich den Spread noch durch den Multiplier. Habe ich Dich richtig verstanden, dass die Slippage nur als Pip-Wert genutzt werden kann, d.h. beim OrderSend, egal ob 4-digit oder 5-digit, bleibt der Slippage-Wert gleich und muss nicht geändert werden? Wäre dann folgende BrokerDigitAdjust-Funktion richtig so: PHP-Code:
Gruß Dick |
|
|||
So, jetzt noch mal ein Versuch, das Ganze übersichtlich zusammenzufassen:
Slippage bei 4-Digit-Broker = Slippage Slippage bei 5-Digit-Broker = Slippage * 10 Spread bei 4-Digit-Broker = Spread Spread bei 5-Digit-Broker = Spread * 10 TP/SL bei 4-Digit-Broker = TP/SL TP/SL bei 5-Digit-Broker = TP/SL (wenn UsePoint = Point * 10 = 0.0001) TP/SL bei 5-Digit-Broker = TP/SL * 10 (wenn UsePoint = Point = 0.00001) Ist das alles jetzt so richtig? Gruß Dick |
|
|||
Im Prinzip ja, nur ist doch entscheidend, wofür man die Variablen später benutzen will bzw. man kann auch jegliche Digit-Anpassungen in den jeweiligen Brechungsformeln erst anwenden.
Slippage wird nur als Pipwert benutzt, da ist der Fall klar. Spread könnten man als Pipwert z.B. in Anzeigen nutzen. In Berechnungen wird dann aber meist der Dezimalwert benötigt, also die tatsächliche Differenz aus Ask und Bid. Ähnlich ist es bei allen anderen Variablen, die als Pipwerte in den Eigenschaften des EAs stehen. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Klar kommt es noch drauf an, was man wie berechnen will...
Also ich frage z.B. den Spread immer nur vor dem Kauf per MarketInfo ab und kaufe nur, wenn der Spread z.B. kleiner 3 ist. Beim 4-digit-Konto war alles o.k.. Jetzt beim 5-digit-Konto bekomme ich den 10fachen Wert von MarketInfo zurück, deshalb muss ich jetzt auf kleiner 30 prüfen statt kleiner 3. Danke traderdoc Gruß Dick |
|
|||
Zitat:
Wenn man z.B. in den Variablen 3 Pips eingibt und man will im Programm prüfen lassen, ob der aktuelle Spread größer ist als 3, dann kann man das lösen: 1. if (aktueller Spread > Spreadvariable * Multiplier) Oder 2. if ( aktueller Spread/Multiplier > Spreadvariable) Wenn beim 5-DigitBroker der aktuelle! Spread dann als Dezimalwert weiterverarbeitet werden soll, muß mit 0,00001 (oder 0,001 z.B. bei allen YPY-Pärchen) multipliziert werden. Im Endeffekt läuft bei den Währungspaaren!!! alles darauf hinaus, die Pipwerte auf die 4. (2.) nach dem Komma zu normieren. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
Lesezeichen |
Stichworte |
4 digit, 5 digit, broker, mql4, programmierung, programmierung metatrader, umstellung |
|
|