Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 21.05.19
Karacho Karacho ist offline
Neues Mitglied
 
Registriert seit: May 2019
Beiträge: 9
Karacho befindet sich auf einem aufstrebenden Ast
Standard Stop Order werden nicht umgesetzt

Hallo,

ich möchte, dass jeden Tag um 3 Uhr eine Stop Order gesetzt wird und habe deshalb den nachfolgenden Code geschrieben. Wenn ich diesen allerdings im Strategietester teste, wird nicht an jedem Tag eine Order gesetzt.

Ich denke, dass das Problem in der Zeile: double resultATR = ... liegt.

Wenn ich resultATR = 0.1 wähle, werden alle Stop Orders wie gewünscht umgesetzt.





void OnTick()
{

double resultATR = iATR(NULL,0,24,1);

double Einstiegskurs1 = Close[0] + resultATR;

SL1= 1;
Positionsgroesse = 0.01;


if(ZaehleStopKaufOrdern() == 0 && Hour() == 3 )// Order wird nur ausgeführt wenn noch keine offene Stop Order platziert wurde
{
datetime expiration = Time[0]+60*60;
EroeffneStopOrder(Symbol(),Positionsgroesse, Einstiegskurs1, "kauf", SL1, TP, expiration);
}

}





int ZaehleStopKaufOrdern()
{
int OrderZaehler=0;
for(int Zaehler = 0; Zaehler <= OrdersTotal()-1; Zaehler++)
{
if(OrderSelect(Zaehler,SELECT_BY_POS) == true)
{
if(OrderSymbol() == Symbol() && OrderType() == OP_BUYSTOP && OrderMagicNumber()==MagicNumber)
OrderZaehler++;
}
else
{
Print("OrderSelect ergab den FehlerCode: ",GetLastError());
}
}

return(OrderZaehler);
}







int EroeffneStopOrder (string markt, double Lots, double Eroeffnungskurs, string Handelsrichtung, double StopLoss, double TakeProfit, datetime expire)
{

if(Handelsrichtung == "kauf")
{

while(IsTradeContextBusy()) Sleep(10);
Ticketnummer = OrderSend(markt,OP_BUYSTOP, Lots, Eroeffnungskurs, Slipp, StopLoss, TakeProfit, "Stop-Kauf-Order",MagicNumber,expire,Green);

if(Ticketnummer == -1) {
FehlerCode = GetLastError();
string FehlerBeschreibung = ErrorDescription(FehlerCode);
string FehlerAusgabe = StringConcatenate("Eröffnung Stop-Kauf-Order:",FehlerCode,": ",FehlerBeschreibung);
Print(FehlerAusgabe);
}
}

if(Handelsrichtung == "verkauf")
{
while(IsTradeContextBusy()) Sleep(10);
Ticketnummer = OrderSend(markt,OP_SELLSTOP, Lots, Eroeffnungskurs, Slipp, StopLoss, TakeProfit, "Stop-Verkauf-Order", MagicNumber,expire,Red);

if(Ticketnummer == -1) {
FehlerCode = GetLastError();
string FehlerBeschreibung = ErrorDescription(FehlerCode);
string FehlerAusgabe = StringConcatenate("Eröffnung Stop-Verkauf-Order:",FehlerCode,": ",FehlerBeschreibung);
Print(FehlerAusgabe);
}
}

return(Ticketnummer);
}






Ich würde mich sehr freuen, Hilfe zu bekommen und Danke im Voraus!!