Zitat:
Zitat von Biatsch
PHP-Code:
extern int Delta = 20; extern double Risk = 0.02;
double Max = High[Highest(NULL,240,MODE_HIGH,5,0)]; double Balance = AccountBalance();
if((Max - Bid) >= Delta*Point){ double dLotsShort = (Balance*Risk*Bid) / (100000*(Max-Bid)); }
Diese Funktion führt ständig zur Fehlermeldung "Zero Divide".
Ich vermute also, dass der Nenner, genauer (Max-Bid) häufig zu 0 wird. (?)
Aber sollte die if-Bedingung nicht genau diesen Fehler vermeiden ?
Ich wäre dankbar über Tipps, was da nicht stimmt.
PS: Mein Broker zeigt den Kurs auf 5 Nachkommastellen an.
Diese Funktion soll den maximalen Kurs der letzten 5 Candles ermitteln und den StopLoss so setzen, dass ich ich im Falle eines Verlusts 2% (Risk) meines Kapitals verliere.
|
Hallo,
da kann man doch vorbeugen ::
double x=Max-Bid;
if(x==0) x=0.0000001;
double dLotsShort = (Balance*Risk*Bid) / (100000*(Max-Bid+x));
Ist doch easy !
Das da keiner allein drauf kommt
Wenn es jetzt noch auftritt, dann muß der Fehler an einer anderen Stelle auftreten.
Kannst ja mal den kompletten Code posten.
Gruß Joe