Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 07.05.18
elbonia elbonia ist offline
Neues Mitglied
 
Registriert seit: May 2018
Beiträge: 2
elbonia befindet sich auf einem aufstrebenden Ast
Standard Berechneter Wert wird nicht als Einstiegskurs akzeptiert

Hallo, ich bin neu hier und nähere mich gerade der MQL-Programmierung mit zunächst simplen Beispielprogrammen - dachte ich zumindest... . Bei meinem Versuch, eine einfache Sell-Limit-Order zu platzieren, bin ich auf folgendes Problem gestoßen:
Zunächst ermittelt mein EA den Mittelwert aus Anfangs- und Schlusskurs der M5-Kerze zu einer bestimmten Zeit (hier zum Beispiel um 8 Uhr). Dieser Wert soll als Einstiegskurs der Sell-Limit-Order verwendet werden. Wenn ich mir die Variable achtuhr_mean ausgeben lasse, sieht sie auch nach einem ganz normalen double-Wert aus, genau wie achtuhr_open und achtuhr_close. Aber im OrderSend-Befehl führt achtuhr_mean immer zu einem Fehler 4107 ("invalid price"). Mit achtuhr_open oder achtuhr_close als Einstiegspreis lässt sich die Order problemlos platzieren.
Es muss irgendwie an der Division durch 2 liegen. Lasse ich "/2" weg, nehme also nur die Summe aus Einstiegs- und Schlusskurs, funktioniert die Order.

Habt Ihr eine Idee, was hier schiefgelaufen ist?
Vielen Dank schon mal im Voraus!


void OnInit()
{
datetime acht_Uhr=D'2018.05.07 08:00:00';
int shift=iBarShift("EURUSD",PERIOD_M5,acht_Uhr); // Index der Kerze um 8 Uhr
double achtuhr_open = iOpen("EURUSD",PERIOD_M5, shift); // Anfangskurs der Kerze um 8 Uhr
double achtuhr_close = iClose("EURUSD",PERIOD_M5, shift); // Schlusskurs der Kerze um 8 Uhr
double achtuhr_mean = (achtuhr_open + achtuhr_close)/2; // Durchschnitt

int pendingsell = OrderSend("EURUSD", OP_SELLLIMIT, 0.01, achtuhr_mean, 1, 0, 0, NULL, 0, 0, Green);
}