|
Startseite | Registrieren | Hilfe | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Positionsgrößenberechnung
Hallo,
ich habe eine Frage zur Positionsgrößenberechnung. Ich habe hier im Forum schon gesucht, aber die Antwort auf meine Frage nicht gefunden. Bisher berechne ich die Positionsgröße mit folgender Formel: TickValue=MarketInfo(Symbol(),MODE_TICKVALUE); RiskBaseAmount=AccountBalance(); LotSize=(RiskBaseAmount*MaxRiskPerTrade/100)/(SL*TickValue); Dabei entspricht MaxRiskPerTrade der Zahl 1 und SL der Differenz zwischen OpenPrice und SLPrice. Das funktioniert bisher relativ zuverlässig. Allerdings nicht bei JP255, bei dem die Mindestlotanzahl und der Volumenschritt bei meinem Broker bei 10 Lot liegt. Hier errechnet die Formel beispielsweise Folgendes: RiskBaseAmount 1876.0 MaxRiskPerTrade 1 SL 18503.0 TickValue 0.01 LotSize 0.1013889639517916 Der PositionSizer von earnforex errechnet mit diesen Werten die Positionsgrößen von 10 Lot. Dabei liegt dann das errechnete Risiko bei 0,6%. Wie muss ich die Formel abändern, damit die Positionsgröße korrekt berechnet wird? |
|
|||
Wenn Tickvalue = 0.01ist, dann würden 10Lot eine Währungsänderung von 0.1$ ($ als Depotwährung) ergeben, wenn sich der Kurs um einem Tick ändert.
Bei einem SL von 18503 macht das dann 1850.3 $. Damit wäre das Konto platt. Was der PositionSizer da ausgerechnet hat, kann ich nicht nachvollziehen. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Re: Positionsgrößenberechnung
MODE_TICKVALUE - die Größe der Mindestpreisänderung des Instruments in der Einzahlungswährung.
Dementsprechend muss SL als Punkten angegeben werden: SL = MathAbs( (OpenPrice - SLPrice)/Point ) |
|
|||
Danke für die schnellen Antworten.
Das Problem liegt offenbar in der Berechnung des SL. Dieser wird bei mir wie du gesagt hast berechnet mit SL = MathAbs( (OpenPrice - SLPrice)/Point ) Allerdings führt das bei dem Symbol JP255 dazu, dass der SL zwei Dezimalstellen zu groß berechnet wird. Es wird also aus 185,03 der falsche Wert 18503 errechnet, da der SL in diesem Fall durch 0,01 geteilt wird. In den anderen Forexpaaren ist dieser Berechnungsweg jedoch korrekt. Hier noch einmal meine Umsetzung: SLPoints=MathCeil(MathAbs(OpenPrice-SLPrice)/Point); LotSizeCalculate(SLPoints); void LotSizeCalculate(double SL=0) { //If the position size is dynamic if(RiskDefaultSize==RISK_DEFAULT_AUTO) { //If the stop loss is not zero then calculate the lot size if(SL!=0) { double RiskBaseAmount=0; //TickValue is the value of the individual price increment for 1 lot of the instrument, expressed in the account currenty TickValue=MarketInfo(Symbol(),MODE_TICKVALUE); //Define the base for the risk calculation depending on the parameter chosen if(RiskBase==RISK_BASE_BALANCE) RiskBaseAmount=AccountBalance(); if(RiskBase==RISK_BASE_EQUITY) RiskBaseAmount=AccountEquity(); if(RiskBase==RISK_BASE_FREEMARGIN) RiskBaseAmount=AccountFreeMargin(); //Calculate the Position Size LotSize=(RiskBaseAmount*MaxRiskPerTrade/100)/(SL*TickValue); Ideen dazu? Geändert von aschueli (vor 3 Wochen um 13:48 Uhr) |
|
|||
Hier noch zwei Rechenbeispiele dazu:
Bei JP255 wird die Lotgröße falsch berechnet: OpenPrice 39209.99 SLPrice 39395.01 SLPoints 18503.0 Point 0.01 RiskBaseAmount 1876.0 MaxRiskPerTrade 1 SL 18503.0 TickValue 0.01 LotSize 0.1013889639517916 Bei USDJPY dagegen richtig: OpenPrice 153.79 SLPrice 154.252 SLPoints 463.0 Point 0.001 RiskBaseAmount 1876.0 MaxRiskPerTrade 1 SL 463.0 TickValue 0.6079803500750856 LotSize 0.06664419092872571 |
|
|||
Wenn EA in einem anderen Chart läuft, sollte MarketInfo(Symbol,MODE_POINT) statt Point zu verwenden. Auch für TickValue.
Überprüfe manuell, ob MODE_TICKSIZE in JP255 mit 0.01 übereinstimmt. Versuche anhand Print() jeden spezifischen Werte der Formel erhalten, dann wird es möglich sein, den Fehler zu verstehen. |
Lesezeichen |
Stichworte |
lot berechnen, positionsgrößen |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|