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:
void BrokerDigitAdjust(string argSymbol)
{
Multiplier = 1; //bei 2 oder 4 Digits wird nichts umgerechnet und der Multiplier bleibt 1 -> weil hier: 1 Pip = 1 Point
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 -> weil hier: 1 Pip = 0,1 Point bzw. 10 Points = 1 Pip
if (digits==6) Multiplier = 100; //hat das Symbol 6 Nachkommastellen (Digits) dann wird ein Multiplier von 100 verwendet -> weil hier: 1 Pip = 0,01 Point bzw. 100 Points = 1 Pip
if (digits==7) Multiplier = 1000; //hat das Symbol 7 Nachkommastellen (Digits) dann wird ein Multiplier von 1000 verwendet -> weil hier: 1 Pip = 0,001 Point bzw. 1000 Points = 1 Pip
UsePoint = Multiplier*MarketInfo(argSymbol,MODE_POINT); //UsePoint erhält die richtigen Nachkommastellen und kann für spätere Berechnungen benutzt werden
Max_Spread = Max_Spread * Multiplier;
}
Schon mal Danke für Deine Geduld, Traderdoc!
Gruß
Dick