Ergebnisse Runden für Handelsaktion

 
Guten Tag, 

ich erhalte bei einer Berechnung eine ungerundete Zahl worauf ich folgende Fehlermeldung erhalte:

FIBO [DAX30]-ECN,M5: OrderSend error 4107
FIBO [DAX30]-ECN,M5: invalid price 10338.74590000for OrderSend function

meine Recherchen haben keine direkte Lösungen für dieses Problem ergeben. 
Die Berechnungen ergeben sich aus direkten Marktwerten.

 
Du musst das ergebnis selbst runden, wenn du zahlen berechnest ist es normal das viele kommastelle. Rauskommen
 
amando:
Du musst das ergebnis selbst runden, wenn du zahlen berechnest ist es normal das viele kommastelle. Rauskommen
Der EA sollte automatisch funktionieren
 
Janis Hellmuth:
Guten Tag, 

ich erhalte bei einer Berechnung eine ungerundete Zahl worauf ich folgende Fehlermeldung erhalte:

FIBO [DAX30]-ECN,M5: OrderSend error 4107
FIBO [DAX30]-ECN,M5: invalid price 10338.74590000for OrderSend function

meine Recherchen haben keine direkte Lösungen für dieses Problem ergeben. 
Die Berechnungen ergeben sich aus direkten Marktwerten.

Es liegt sehr wahrscheinlich nicht an den Nachkommastellen!

Bitte dokumentiere den Auftrag mit allen(!) Preisen und Bid und Ask und was das für eine Auftrag ist: Marktorder, Pending Order, ...

 
Verwendest du NormalizeDouble() ?
 
Carl Schreiber:

Es liegt sehr wahrscheinlich nicht an den Nachkommastellen!

Bitte dokumentiere den Auftrag mit allen(!) Preisen und Bid und Ask und was das für eine Auftrag ist: Marktorder, Pending Order, ...

Es geht um eine Berechung einer Fibo expansion:

double Level100=ObjectGetDouble(0,"Fibonacci",OBJPROP_PRICE,0);

double Level0=ObjectGetDouble(0,"Fibonacci",OBJPROP_PRICE,1);

double Level50=((Level0+Level100)/2);

double Level161=(((Level100-Level0)*1.618)+Level0);

Das Ergebnis von Level161 verursacht den fehler in der Ordereröffnung:

int Ticket = OrderSend(Symbol(),OP_SELLLIMIT,0.1,Level161,1000,StopLoss,TakeProfit,0,0,0,0);

 
Otto Pauser:
Verwendest du NormalizeDouble() ?

Nein, was löst der Code aus?

 
Janis Hellmuth:

Nein, was löst der Code aus?

Das ist erforderlich um double zahlen für die Handelsfunktionen quasi "aufzubereiten". Warum das System das nicht selber macht ist mir schleierhaft.
 
Janis Hellmuth:

Es geht um eine Berechung einer Fibo expansion:

double Level100=ObjectGetDouble(0,"Fibonacci",OBJPROP_PRICE,0);

double Level0=ObjectGetDouble(0,"Fibonacci",OBJPROP_PRICE,1);

double Level50=((Level0+Level100)/2);

double Level161=(((Level100-Level0)*1.618)+Level0);

Das Ergebnis von Level161 verursacht den fehler in der Ordereröffnung:

int Ticket = OrderSend(Symbol(),OP_SELLLIMIT,0.1,Level161,1000,StopLoss,TakeProfit,0,0,0,0);

Bitte poste neben Ask und Bid alle Preise: LimitPreis, StopLoss, TakeProfit und das Symbol.

Ach ist das MT4 - dann wechsel besser gleich zu MT5, erspart Dir später das Umlernen -  oder MT5?

 
Otto Pauser:
Das ist erforderlich um double zahlen für die Handelsfunktionen quasi "aufzubereiten". Warum das System das nicht selber macht ist mir schleierhaft.

Wie muss ich "NormalizeDouble()" einfügen?

 
Janis Hellmuth:

Wie muss ich "NormalizeDouble()" einfügen?

Drück mal F1 !