Hallo, ich möchte gerne Positionsgrößen für Indizes bei einem bestimmten Risiko berechnen.
Dafür habe ich folgende Formel im Internet gefunden:
1. Schritt: Risk pro Punkt = AccountSize * Risk(%) / stop loss points
2. Schritt: Rik pro Punkt von der Accountwährung in die jeweilige Index-Währung umwandeln
3. Schritt: lotSize = Risk pro Punkt (in der Index-Währung) / Kontraktgröße
Erste Frage: stimmt diese Formel?
Zweite Frage: Wie setzt man das in mql4 um? Mein Ansatz ist der Folgende:
Allerdings weiß ich nicht, wie ich die beiden anderen Schritte korrekt umsetze.
Indexwährung ist meistens usd, das heist du musst von usd auf kontowährung umrechnen
mql4, keine ahnung
Hallo, ich möchte gerne Positionsgrößen für Indizes bei einem bestimmten Risiko berechnen.
Interessant das du eine Formel findest, aber den fertigen code dazu nicht.
Hier wäre ein Beispiel. Schau dir den Code an und extrahiere, was du brauchst.
MT5: https://www.mql5.com/de/code/19870

- www.mql5.com
Hallo, ich möchte gerne Positionsgrößen für Indizes bei einem bestimmten Risiko berechnen.
Dafür habe ich folgende Formel im Internet gefunden:
1. Schritt: Risk pro Punkt = AccountSize * Risk(%) / stop loss points
2. Schritt: Rik pro Punkt von der Accountwährung in die jeweilige Index-Währung umwandeln
3. Schritt: lotSize = Risk pro Punkt (in der Index-Währung) / Kontraktgröße
Erste Frage: stimmt diese Formel?
Zweite Frage: Wie setzt man das in mql4 um? Mein Ansatz ist der Folgende:
Allerdings weiß ich nicht, wie ich die beiden anderen Schritte korrekt umsetze.
Hallo,
hier ein Beispiel auf eine einfache Weise.
extern double loteingabe = 0.01; // Loteingabe extern double Risk = 1; // Risiko pro Order in Prozent extern int stoploss = 100; // Stoploss double lot; int OnInit(){ } // OnInit Ende void OnDeinit(const int reason){ } // Ende OnDeinit void OnTick(){ string Lotgroesse = DoubleToStr(LotsByRisk(OP_BUY,Risk,(int)stoploss),2); // OrderSend() Funktion Vollumen "lot" eingeben!! } // OnTick Ende //+------------------------------------------------------------------+ //| Calculate Positionsgrösse mit Stop | //+------------------------------------------------------------------+ double GetLots(){ double clots = AccountBalance()/10000*loteingabe; clots = MathMax(clots, MarketInfo(Symbol(), MODE_MINLOT)); clots = MathMin(clots, MarketInfo(Symbol(), MODE_MAXLOT)); clots = NormalizeDouble(clots,2); return(clots); } //+----------------------------------------------------------------- double LotsByRisk(int op_type,double risk,int sloss){ double lot_min = MarketInfo(Symbol(), MODE_MINLOT); double lot_max = MarketInfo(Symbol(), MODE_MAXLOT); double lot_step = MarketInfo(Symbol(),MODE_LOTSTEP); double lotcost = MarketInfo(Symbol(),MODE_TICKVALUE); lot = 0; double UsdPerPip = 0; lot = AccountBalance()*risk/100; UsdPerPip = lot/sloss; lot = NormalizeDouble(UsdPerPip/lotcost, 2); lot = NormalizeDouble(lot/lot_step, 0) * lot_step; if(lot < lot_min) lot = lot_min; if(lot > lot_max) lot = lot_max; return(lot); }
Ich hoffe, dass ich Ihnen helfen könnte.
Gruß Igor.
//+------------------------------------------------------------------+ //|Calculates Lostsize wuth correct Lotsteps (untested) | //+------------------------------------------------------------------+ double calcLots(double slPoints) { double riskPerTrade = AccountInfoDouble(ACCOUNT_EQUITY) * RiskPercent / 100; double ticksize = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE); double tickvalue = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE); double lotstep = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_STEP); double moneyPerLotstep = slPoints / ticksize * tickvalue * lotstep; double lots = MathFloor(riskPerTrade / moneyPerLotstep) * lotstep; lots = MathMin(lots, SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MAX)); lots = MathMax(lots, SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN)); return lots; }

- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Hallo, ich möchte gerne Positionsgrößen für Indizes bei einem bestimmten Risiko berechnen.
Dafür habe ich folgende Formel im Internet gefunden:
1. Schritt: Risk pro Punkt = AccountSize * Risk(%) / stop loss points
2. Schritt: Rik pro Punkt von der Accountwährung in die jeweilige Index-Währung umwandeln
3. Schritt: lotSize = Risk pro Punkt (in der Index-Währung) / Kontraktgröße
Erste Frage: stimmt diese Formel?
Zweite Frage: Wie setzt man das in mql4 um? Mein Ansatz ist der Folgende:
Allerdings weiß ich nicht, wie ich die beiden anderen Schritte korrekt umsetze.