Jump to content
Tom Next - Daytrading Community

Volumen berechnen


Forex1+

Recommended Posts

Kurze Frage,

 

ich will für ein EA das Volumen/Lotgröße berechnen, sodass dieses bei SL genau den gewünschen Prozentsatz der Kontogröße riskiert.

 

Also Beispiel:

 

Kontogröße 8888€

SL = 77 Pips

Risiko% = 2%

Lot = ?

 

Wert eines Pips = Pipfaktor * Volumen / Kurs * 100000

Volumen = Pipveränderung(SL) / Kurs / Wert eines Pips

 

Die Formeln hab ich mir bisschen aus den Fingern gesaugt da liegt bestimmt auch der Fehler. Das Problem ist das die 2. Formel von der 1. abhängt aber in der 1. Formel das Volumen gefordert ist obwohl das anschließend in der 2. erst errechnet werden soll.!? Desweiteren frag ich mich bei der 100000, da nur für Standardlot gültig, was wenn Mini oder Mikro Lot, gibts da nicht eine automatische Erkennung durch der EA? Am besten alles automatisch auslesen ausser natürlich SL und Risiko%

 

Gruß

Edited by Forex1+
Link to comment
Share on other sites

Hallo,

 

hier macht das diese Funktion, weiss gar nicht mehr wo ich die herhabe:

 

double calcLotSize(string symbol,double stopdiff,double riskAbs) {

//producing a valid lotsize

double lot_step= MarketInfo(symbol,MODE_LOTSTEP);

double minlot= MarketInfo(symbol,MODE_MINLOT);

double maxlot= MarketInfo(symbol,MODE_MAXLOT);

if (stopdiff > 0){

double lots=(riskAbs*MarketInfo(symbol,MODE_TICKSIZE))/(stopdiff*MarketInfo(symbol,MODE_TICKVALUE));

} else lots = minlot;

lots= MathFloor(lots/lot_step)*lot_step;

lots= MathMin(maxlot,lots); // no empty orders, not trading too much ;)

//Print ("Lots: ",lots);

if(lots > maxlots) lots = maxlots;

if(lots

return(lots);

}

 

Nicht ganz sauber programmiert, 'maxlots' fast am Ende ist extern definiert und kam mal später dazu nachdem der Script drumrum mit zu engem Stop mal freidrehte.

 

Als Anregung

 

Lutz

  • Upvote 1
Link to comment
Share on other sites

Hallo,

[...]

//Print ("Lots: ",lots);

if(lots > maxlots) lots = maxlots;

if(lots

return(lots);

}

 

Nicht ganz sauber programmiert, 'maxlots' fast am Ende ist extern definiert und kam mal später dazu nachdem der Script drumrum mit zu engem Stop mal freidrehte.

 

Als Anregung

 

Lutz

 

Kann man auch so machen dann:

lots = MathMax(MathMin(lots, MarketInfo(Symbol(),MODE_MAXLOT)),minlot);

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...