Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 02.01.19
MA-EA MA-EA ist offline
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard Digits, Ticksize, Normalize Double ?

Hallo.

In meinen EAs werden SL, Trailing Stop und TP berechnet, in dem einfach die Werte der GV oben mit NormalizeDouble(...*Point,Digits) von Ask/Bid abgezogen, bzw. dazu gerechnet werden, je nach dem ob Buy oder Sell. Aber bei z.B. FX WP mit 3 Stellen nach dem Komma, sind SL und TP irgendwie nur wenige Punkte von den Einstiegskursen entfernt. Eigentlich müsste Normalize Double doch reichen, um SL, Trailing Stop und TP ins richtige Format zu bringen. Aber anscheinend ist es wohl nötig, die int Werte mit 10 zu multiplizieren, wenn Digits==3 oder ==5?

Wer Ahnung vom Multiplizieren und Dividieren von double Werten hat, kann mir vielleicht mit der automatischen Lotsize helfen. Die Rechenwege müssten eigentlich richtig sein, bloß ob * oder / weiß ich nicht so richtig.
Code:
extern string ALSZ="Auto Lotsize?";
extern bool Percent_of_Balance=false;//
extern double Auto_Lotsize_Perc=2.5;// Zum Testen 2,5%
Code:
Lots=MathMax(MathMin(Lots,MarketInfo(Symbol(),MODE_MAXLOT)),MarketInfo(Symbol(),MODE_MINLOT));
double Min_L=MarketInfo(Symbol(),MODE_MINLOT);//Mindest_Lot_Einsatz
  double Max_L=MarketInfo(Symbol(),MODE_MAXLOT);//Maximaler_Lot_Einsatz
Code:
  if(Percent_of_Balance==true){
   
    double M_REQ=MarketInfo(Symbol(),MODE_MARGINREQUIRED);//nötige Margin für 1 Lot (100.000 Units)
    double A_BAL=AccountBalance();//momentaner Kontostand
  
//  "1 Lot" geteilt durch Mindest-Lot, um später raus zu finden, wie viel Margin für Mindest-Lot gebraucht wird.
//  z.B.: 1 Lot * 0.01 L = 0.01
    double OneL_MinL = 1 / Min_L;
  
  
//  Margin_für_1_Lot geteilt durch Ergebnis, um raus zu finden, wie viel Margin für Mindest_Lot benötigt wird.
//  z.B.:  €1000,00 * 0.01 L = €10,00
    double MREQ_MinL = M_REQ / OneL_MinL;

//////////////////////////////////////////////////////////////////////////////////////////////////////////////

//  1% von Kontostand ausrechnen
//  z.B.: €1000,00 / 100% = €10,00
    double OnePercAccBal = A_BAL / 100;//  / oder * ?

//  1% des Kontostands * Prozent, für die Lots gekauft werden sollen
//  z.B.: €10,00 * 2,5% = €25,00
    double OnePercAccBal_AutoLotPerc = OnePercAccBal * Auto_Lotsize_Perc;

//  Theoretisch muss das Ergebnis mit Mindest-Lot multipliziert werden (?)
//  z.B.: €25,00 * 0.01L = 0.025L (?)
     Lots = OnePercAccBal_AutoLotPerc * Min_L;}
Angehängte Dateien
Dateityp: mq4 Valerius_2MA_AutoLots_EA_MT4.mq4 (33,5 KB, 3x aufgerufen)