Hier sollte für einen Anfänger nicht unerwähnt bleiben, dass ohne vorheriges
OrderSelect() nichts geht.
Desweiteren würde der Code nur mit einem 4-Digit-Broker sauber funktionieren. In der Regel werden die Werte in den Variablen in F7 für SL, TP, TrailingStop, TrailingStep etc., immer so angegeben wie gewöhnlich, d.h. 20 Pips sollen dann auch 20 Pips sein. Unter Benutzung eines 5-Digit-Brokers wären das aber dann nur 2 Pips und das ist erstens sicher so nicht gewollt und zweitens kann es Probleme mit dem STOPLEVEL geben, welches in der Erromeldung "Invalid SL/TP" münden würde.
Deshalb muß unbedingt, am besten in der init()-Funktion, folgendes stehen:
multiplier = 1;
digit = MarketInfo(Symbol(), MODE_DIGITS);
if (digit == 3 || digit == 5) multiplier = 10;
//als Beispiel
TrailingStop *= multiplier;
Und dann kann der angepaßte Pipwert für z.B. TrailingStop weiter benutzt werden.
traderdoc
|