Einzelnen Beitrag anzeigen
  #26 (permalink)  
Alt 29.04.16
piptrade piptrade ist offline
Mitglied
 
Registriert seit: Sep 2012
Beiträge: 157
piptrade befindet sich auf einem aufstrebenden Ast
Standard

Neben vielen weiteren Varianten sieht das ganze "Dingeling" jetzt - SO - aus:

MAsimple_TIMER_00c.mq4

#define MAGICMA 20131111
//--- Inputs
input double Lots =0.1;
input int MovingPeriod =12;
input int MovingShift =6;

//|=== 1. ERGÄNZUNG Timer ================================================== =====+
extern string TradeTime_1_Begin = "09:30";
extern string TradeTime_1_End = "11:30";
extern string TradeTime_2_Begin = "15:50";
extern string TradeTime_2_End = "17:30";
//+------------------------------------------
datetime Time_1_Begin, Time_1_End;
datetime Time_2_Begin, Time_2_End;
//+------------------------------------------
void init() {
Time_1_Begin = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+TradeTime_1_Begin);
Time_1_End = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+TradeTime_1_End);
Time_2_Begin = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+TradeTime_2_Begin);
Time_2_End = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+TradeTime_2_End);
}
//+------------------------------------------
bool TradingTime() {
if ((Time_1_Begin < Time_1_End && (TimeCurrent() < Time_1_Begin || TimeCurrent() >= Time_1_End)) ||
(Time_2_Begin < Time_2_End && (TimeCurrent() < Time_2_Begin || TimeCurrent() >= Time_2_End)))
return(false);

return(true);
}
//|=== 2. ERGÄNZUNG Timer ================================================== ======+
int start() {
if (TradingTime() == false) return(0);

} // warning: not all control paths return a value ! <-------------------------+

//+------------------------------------------------------------------+
//| Calculate open positions |
//+------------------------------------------------------------------+
int CalculateCurrentOrders(string symbol)
... and so on
//+------------------------------------------------------------------+
//| Check for open order conditions |
//+------------------------------------------------------------------+
void CheckForOpen()
... and so on
//+------------------------------------------------------------------+
//| Check for close order conditions |
//+------------------------------------------------------------------+
void CheckForClose()
... and so on
//+------------------------------------------------------------------+
//| OnTick function |
//+------------------------------------------------------------------+
void OnTick() {
//--- check for history and trading
if(Bars<100 || IsTradeAllowed()==false)
return;
//--- calculate open orders by current symbol
if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
else CheckForClose();
//---
}
//+------------------------------------------------------------------+


Alle Order werden ausgelöst und auch sauber wieder geschlossen, aber nach wie vor ohne jeglichen Time-Bezug.
Sicher wird jetzt ein Schmunzeln über Eure Lippen gehen - und viele werden sich fragen: "Wie kann man nur solche Fehler machen?" Dennoch:
Bisher habe ich gerade aus meinen Fehlern gelernt. Deshalb nehme ich gern dieses Schmunzeln in Kauf und hoffe auf Eure Unterstützung.

LG. piptrade