Einzelnen Beitrag anzeigen
  #16 (permalink)  
Alt 13.08.20
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

Darüber denk ich irgendwie schon seit Jahren nach.


Der Rechenweg ist eigentlich im Großen und Ganzen klar. Vielleicht ist der noch nicht ganz richtig, das größte Problem ist aber eben Multiplikation/Division von Werten die <1.0 sind.

Code:
//=============================================================================================================
// A U T O L O T S   werden falsch berechnet!
//=============================================================================================================

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


    double MarReq=MarketInfo(Symbol(),MODE_MARGINREQUIRED); // nötige Margin für 1 Lot (100.000 Units)
    double AccBal=AccountBalance(); // momentaner Kontostand


//  "1 Lot" geteilt durch Mindest-Lot, um später raus zu finden, wie viel Margin für Mindest-Lot gebraucht wird.
    if(Min_L<1.0)double oneL_ML=1.0*Min_L;
    if(Min_L>=1.0)oneL_ML=1.0/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 / 100 = €10,00
    if( MarReq<1.0 )double MarReq_ML= MarReq * oneL_ML; // ?
    if( MarReq>=1.0 )MarReq_ML= MarReq / oneL_ML; // ?


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


//  1% vom Kontostand ausrechnen
//  z.B.: €1000,00 / 100% = €10,00
    if( AccBal<1.0 )double OnePercAccBal = AccBal * 100.0; // ?
    else OnePercAccBal = AccBal / 100.0; // ?


//  1% des Kontostands * Prozent, für die Lots gekauft werden sollen
//  z.B.: €10,00 * 2,5% = €25,00 ?
    if( OnePercAccBal<1.0 ){
      if(Auto_Lotsize_Perc<1.0)double OnePercAccBal_AutoLotPerc = OnePercAccBal / Auto_Lotsize_Perc; // ?
      else OnePercAccBal_AutoLotPerc = OnePercAccBal * Auto_Lotsize_Perc;} // ?
      
      
    if( OnePercAccBal>=1.0 ){
      if(Auto_Lotsize_Perc<1.0)OnePercAccBal_AutoLotPerc = OnePercAccBal / Auto_Lotsize_Perc; // ?
      else OnePercAccBal_AutoLotPerc = OnePercAccBal * Auto_Lotsize_Perc;} // ?


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


//  
    double OnePercAccBalAutoLotPerc_MREQMinL = OnePercAccBal_AutoLotPerc / MarReq_ML;


//  z.B.: €25,00 * 0.01L = 0.025L (?)

    double Print_Lots = OnePercAccBalAutoLotPerc_MREQMinL * Min_L;