Lotsize berechnen anhand gegebenem SL und maximal erlaubtem Risiko in €

Einloggen oder registrieren, um einen Kommentar zu schreiben
fintrad0
138
fintrad0  

Hallo,
ich hänge fest bei der Berechnung der erlaubten Lotsize anhand eines gegebenem StopLoss und eines maximal erlaubtem Risiko in €.

Das Ziel ist, dass der mögliche Verlust in € (wenn Trade SL erreicht)  kleiner als der maximal erlaubte Verlust (= Risiko in €) ist.

Das Problem ist, dass die Berechnung der Lotsize grundsätzlich zu funktionieren scheint aber teilweise (bei manchen Symbolen) das maximal erlaubte Risiko in € geringfügig überschritten wird.

Eventuell ist es irgendwo ein Problem des korrekten Rundens, leider komme ich aber nicht weiter.

Könnt Ihr mal einen Blick darauf werfen?

Vielen Dank!

Gruß Werner

double MaxVolumeCalculate(string symbol, double risk, int StopLossPoints)
{
  double minlots  = MarketInfo(symbol, MODE_MINLOT);
  double maxlots  = MarketInfo(symbol, MODE_MAXLOT);
  int LS=(int)(-MathLog10(MarketInfo(symbol,MODE_LOTSTEP)));
  double symTicksize = MarketInfo(symbol, MODE_TICKSIZE);
  double symPoint = MarketInfo(symbol, MODE_POINT);
  double symTickvalue = MarketInfo(symbol, MODE_TICKVALUE);   
  double Loss = RiskPerTrade;    //  externe Variable, maximales Risiko pro Trade in €
  
  //----------   aus max. Risiko in € die Lotsize berechnen ------------------                                                                                                       
  double volume = NormalizeDouble(Loss / (StopLossPoints * symPoint * symTickvalue / symTicksize),LS);  
 
  //----------   wenn Risiko (€) bei errechneter Lotsize größer als erlaubt, reduzieren um Lotstep ------------------                                                                                                           
  if((volume * StopLossPoints * symTicksize) > Loss) 
        { volume = (volume-LS/LS)*LS;}             //    Hier müsste das Problem sein  {volume = volume - LS;} 

//----------- Lotsize 0 wenn größer MAXLOT oder kleiner MINLOT                            
  if(volume < minlots || volume > maxlots) 
      {volume = 0;}   
  
  return(volume);
}
amando
2878
amando  

Das liegt daran, das sich der Tickvalue mit jedem Tick verändert, am besten siehst du das, bei währungen welche nicht deine account währung haben.

wenn du einen eur account hast, kannst du das schön auf gbpjpy beobachten

fintrad0
138
fintrad0  
amando:

Das liegt daran, das sich der Tickvalue mit jedem Tick verändert, am besten siehst du das, bei währungen welche nicht deine account währung haben.

wenn du einen eur account hast, kannst du das schön auf gbpjpy beobachten

Hallo amando,

ja, stimmt. Hatte ich nicht bedacht. Guter Hinweis, danke!

Bedeutet das, dass meine Funktion grundsätzlich richtig arbeitet? (was mir wichtiger wäre als die Differenz)? Und die Schwankungen alleine durch den sich ändernden Tickvalue entsteht, also zu vernachlässigen sind?


Gruß Werner

Carl Schreiber
Moderator
9799
Carl Schreiber  

Schau mal hier:

https://www.mql5.com/en/code/22900 // Losgrößenbestimmung, mehrere Indikatoren als Signale

Stop-Loss & Take-Profit Berechnung basiered auf dem Risiko:
https://www.mql5.com/de/articles/6986

https://www.mql5.com/de/articles/618 // Managing Funds or How to Select a Deal Volume? Lot size Losgröße

Lego EA
Lego EA
  • www.mql5.com
The Expert Advisor combines signals from several indicators: iCCI (Commodity Channel Index, CCI)iMA (Moving Average, MA)iStochastic (Stochastic Oscillator)iAC (Acceleration/Deceleration, Accelerator/Decelerator Oscillator, AC)iDeMarker (DeMarker, DeM)iAO (Awesome Oscillator, AO) or uses only one of the indicators. You can combine conditions...
fintrad0
138
fintrad0  
Carl Schreiber:

Schau mal hier:

https://www.mql5.com/en/code/22900 // Losgrößenbestimmung, mehrere Indikatoren als Signale

Stop-Loss & Take-Profit Berechnung basiered auf dem Risiko:
https://www.mql5.com/de/articles/6986

https://www.mql5.com/de/articles/618 // Managing Funds or How to Select a Deal Volume? Lot size Losgröße

Danke, Carl. Da bin ich erstmal beschäftigt.

Schönen Tag noch!

Gruß Werner

fintrad0
138
fintrad0  
fintrad0:

Danke, Carl. Da bin ich erstmal beschäftigt.

Schönen Tag noch!

Gruß Werner

Kurzer Nachtrag, falls jemand über diesen Beitrag stolpern sollte und vor dem selben Problem steht.

Hier noch eine Inspiration: https://www.mql5.com/en/forum/123665

How to calculate tick value by price?
How to calculate tick value by price?
  • 2010.02.04
  • www.mql5.com
I have to evaluate max profit value by one order's Lots, Ask (Bid) and TakeProfit value...
Einloggen oder registrieren, um einen Kommentar zu schreiben