Einzelnen Beitrag anzeigen
  #4 (permalink)  
Alt 02.01.17
TTFM2016 TTFM2016 ist offline
Mitglied
 
Registriert seit: Dec 2016
Beiträge: 54
TTFM2016 befindet sich auf einem aufstrebenden Ast
Standard

Hier die nächste Baustelle, es geht um die SL, TP bzw. OrderClose.

Ist die Order jünger als 1 Tag, soll die Order geschlossen werden, sobald der Kurs <=, bzw. >= (longorder,bzw.shortorder) des kurzen MA ist.

Ist die Order älter als 1 Tag und jünger als 3 Tage, soll die Order geschlossen werden, sobald der Kurs <=, bzw. >= (longorder,bzw.shortorder) des mittleren MA ist.

Ist die ORder älter als 3 Tage, soll die Order geschlossen werden, sobald der Kurs <=, bzw. >= (longorder,bzw.shortorder) des langen MA ist.

So wie ich es programmiert habe, funktioniert es auch, solange die Order nicht über das Wochenende gehalten wird. Wird z.B. eine Order am Freitag geöffnet, ist der SL/TP am Montag schon beim langen MA, da mehr als 3 Tage vergangen sind. Ich möchte es aber so programmieren, dass nur die Handelstage abgefragt werden. Ist das möglich? Hier der Code:

//SL/TP MA's
MAkurz_SL_TP = iMA (NULL,0,MA_kurz,0,MODE_SMA,0,1);
MAmittel_SL_TP = iMA (NULL,0,MA_mittel,0,MODE_SMA,0,1);
MAlang_SL_TP = iMA (NULL,0,MA_lang,0,MODE_EMA,0,1);

extern int Ab_x_Tage_MAmittel_als_SL_davor_MAkurz = 1;
extern int Ab_x_Tage_MAlang_als_SL_davor_MAmittel = 3;

//Berechnung SL/TP- Tage
int SL_TP_Tage_Makurz = Ab_x_Tage_MAmittel_als_SL_davor_MAkurz * 86400;
int SL_TP_Tage_Mamittel = Ab_x_Tage_MAlang_als_SL_davor_MAmittel * 86400;

//OrderClose Long Order setzen
if(OrderSelect(LongOrder,SELECT_BY_TICKET)==true)
{
if(OrderCloseTime()==0) //OrderCloseTime 0 = Order ist noch aktiv
{
if(TimeLocal()-OrderOpenTime()<SL_TP_Tage_Makurz) //Order ist jünger als 1 Tag SL = MAkurz
{
if(MAkurz_SL_TP>=Bid)
{
OrderClose(OrderTicket(),TradeLots,Bid,5,Red);
}
}
if(TimeLocal()-OrderOpenTime()>=SL_TP_Tage_Makurz&&TimeLocal()-OrderOpenTime()<SL_TP_Tage_Mamittel) //Order ist älter als 1 Tag und jünger als 3 Tage SL = MAmittel
{
if(MAmittel_SL_TP>=Bid)
{
OrderClose(OrderTicket(),TradeLots,Bid,5,Red);
}
}
if(TimeLocal()-OrderOpenTime()>=SL_TP_Tage_Mamittel) //Order ist älter als 3 Tage SL = MAlang
{
if(MAlang_SL_TP>=Bid)
{
OrderClose(OrderTicket(),TradeLots,Bid,5,Red);
}
}
}
}

Gibt es eigentlich einen Nachteil dadurch, dass ich keinen TP, bzw. SL setze, sondern nur mit OrderClose arbeite?

Geändert von TTFM2016 (02.01.17 um 12:35 Uhr)