Jump to content


Photo

Volumen berechnen


Wichtiger Hinweis für Besucher der Community!

Das Erstellungsdatum des von Dir aufgerufenen Themas liegt bereits einige Zeit zurück. Wir möchten darauf hinweisen, den Inhalt der Diskussion auf seine Aktualität hin zu prüfen. Weitere Informationen findest Du auf dieser Seite.

  • Please log in to reply
2 replies to this topic

#1 Forex1+

Forex1+

    Floor Broker

  • Addict
  • PipPipPipPipPipPip
  • 288 posts
  • 1447 thanks

Posted 07 June 2013 - 04:37 PM

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+, 07 June 2013 - 04:50 PM.

  • 0
It's a losing game, without passion !

Thanked by 1 Member:
Vola

#2 lutzs

lutzs

    Floor Broker

  • Developer
  • 939 posts
  • 5550 thanks

Posted 07 June 2013 - 06:05 PM

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 < minlot) lots = minlot;
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
  • 1

Thanked by 2 Members:
Vola , Forex1+

#3 conglom-o

conglom-o

    Heatball User

  • *_skilled
  • 2,161 posts
  • 13619 thanks
  • Wohnsitz:O-Town

Posted 07 June 2013 - 07:04 PM

Hallo,

[...]
//Print ("Lots: ",lots);
if(lots > maxlots) lots = maxlots;
if(lots < minlot) lots = minlot;
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);


  • 0

Marktgedanken - ...denn der Markt vergisst nie!

Meine Trophäen (dedicated to Vola *g*): conglom-o.gif b2m.gif lukas.gif licens.gifmarcus.gif germano.gif


Thanked by 3 Members:
lutzs , Vola , Forex1+

Wichtiger Hinweis für Besucher der Community!

Das Erstellungsdatum des von Dir aufgerufenen Themas liegt bereits einige Zeit zurück. Wir möchten darauf hinweisen, den Inhalt der Diskussion auf seine Aktualität hin zu prüfen. Weitere Informationen findest Du auf dieser Seite.


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users