Thema: erster EA
Einzelnen Beitrag anzeigen
  #11 (permalink)  
Alt 11.04.13
traderdoc traderdoc ist offline
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.875
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Also das Problem der Brokererkennung wird wie folgt gecodet:

int Multiplier = 1;
if(Digits == 3 || Digits == 5) Multiplier = 10;
if(Digits == 6) Multiplier = 100;

TakeProfit *= Multiplier;
StopLoss *= Multiplier;
Slippage *= Multiplier;

TPValue = NormalizeDouble(TakeProfit * Point, Digits);
SLValue = NormalizeDouble(StopLoss * Point, Digits);

usw.
D.h. zuerst wird die Systemkonstante Digits abgefragt. Sollte es ein 4-Digit-Broker sein ändert sich nichts. Beim 5-Digit muß der Multiplier auf 10 gesetzt werden (angenommen, es existiert ein 6-Digit-Broker, dann muß mit 100 multipliziert werden).
Im nächsten Schritt werden die Pipwerte der Variablenangaben im EA-Kopf mit dem Multiplier multipliziert, um dann letztendlich mit der Systemkonstante Point multipliziert und auf die Anzahl der Nachkommastellen, vorgegeben durch Digits, gekürzt zu werden.
Die beiden Variablen TPValue und SLValue können nun im Programm an einer x-beliebigen Stelle benutzt werden, um von den aktuellen Bid- oder Ask-Werten addiert oder subtrahiert zu werden, um z.B. in der OrderSend() benutzbar zu sein.

traderdoc