Hallo Andy,
ich hatte auch lange das gleiche Problem.
Da ich meine Position Größe nach meinem Konto berechnen wollte.
Bis ich diesen Bock fand. Hier wird allerdings der maximale Verlust vom Konto berechnet.
2 Werte müssen dazu eingegeben werden:
1. ProzentVerlust
2. Stopp_in_Punkten.
Die Lot Größe wird dann in „ MeinePositionsGroesse „ gepeichert.
Bei mir funktionier es. Einfach mal probieren.
//--------------------------------------------------------------------+
//Block Nr. 06 Preis je kleinste Einheit auslesen, Position Größe berechne.
//--------------------------------------------------------------------+
{ // Start Block Nr. 06
Depotwert=AccountBalance(); //Depotgröße ermitteln -- Beispiel 10000 Euro
MaxVerlustinEuro=((Depotwert/100)*ProzentVerlust); // MaxVerlust in Euro. Beispiel 200 Euro bei 2%
TickGroese=MarketInfo(Symbol(),MODE_TICKSIZE); // Tickgröße im DAX z.B. 0.1, bei JPY 0,01 EUR 0,0001
if(TickGroese==0.00001 || TickGroese==0.001){ TickGroese=0.1; }
// if(TickGroese==0.5){ TickGroese=1; }
// if(TickGroese==0.1){ TickGroese=1; }
TickWert=MarketInfo(Symbol(),MODE_TICKVALUE); //
MiniLot=MarketInfo(Symbol(),MODE_MINLOT); // kleinste handelbare Größe
LotSchritt=MarketInfo(Symbol(),MODE_LOTSTEP); // Schrittgröße der Lots
EuroJePunkt=MaxVerlustinEuro/Stopp_in_Punkten; // maximaler ererlaubter Verlust je Punkt.
MiniLotWertjeTick=TickWert*MiniLot;
MiniLotWertJePunkt=(1/TickGroese)*MiniLotWertjeTick;
PositionsGroesse=(EuroJePunkt/MiniLotWertJePunkt)*LotSchritt;
if(PositionsGroesse<MiniLot)
{ // Falls die Positionsgröße < der Minilotgröße ist dann ist die Positionsgröße die Lot Schritt
PositionsGroesse=LotSchritt;
}
MeinePositionsGroesse=NormalizeDouble(PositionsGro esse,2); // Auf 2 Nachkommastellen reduzieren.
if(MarketInfo(Symbol(),MODE_TICKSIZE)==0.1)
{
{MeinePositionsGroesse=NormalizeDouble(MeinePositi onsGroesse,1);}
}
} // Ende Block Nr. 06
|