Einzelnen Beitrag anzeigen
  #7 (permalink)  
Alt 13.02.15
Auszubildender Auszubildender ist offline
Neues Mitglied
 
Registriert seit: Nov 2014
Beiträge: 26
Auszubildender befindet sich auf einem aufstrebenden Ast
Standard

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