[C++] 纯文本查看 复制代码//+------------------------------------------------------------------+
//| i-ParamonWorkTime.mq4 |
//| 疏?茹铕?? aka KimIV |
//| http://www.kimiv.ru |
//| Brad Eckerts Time Zones added by Jacob Yego |
//| Asia Open - 00:00 GMT |
//| Dubai/Russia Open 04:00 GMT |
//| Europe Open 06:00 GMT |
//| London "Big Ben" News 08:30 GMT |
//| US News 12:30 GMT |
//| Europe Settlement 14:30 GMT |
//+------------------------------------------------------------------+
#property copyright "疏?茹铕?? aka KimIV"
#property link "http://www.kimiv.ru"
#property indicator_chart_window
//------- 马屮龛?镟疣戾蝠?桧滂赅蝾疣 -------------------------------
extern int NumberOfDays = 50; // 暑腓麇耱忸 漤彘
extern string Begin_1 = "00:00";
extern string End_1 = "03:30";
extern color Color_1 = Seashell;
extern string Begin_2 = "04:00";
extern string End_2 = "05:30";
extern color Color_2 = MistyRose;
extern string Begin_3 = "06:00";
extern string End_3 = "08:00";
extern color Color_3 = LightCyan;
extern string Begin_4 = "08:30";
extern string End_4 = "12:00";
extern color Color_4 = LightGoldenrod;
extern string Begin_5 = "12:30";
extern string End_5 = "14:00";
extern color Color_5 = PeachPuff;
extern string Begin_6 = "14:30";
extern string End_6 = "20:30";
extern color Color_6 = Pink;
extern bool HighRange = False;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
void init() {
DeleteObjects();
for (int i=0; i5) dt=decDateTradeDay(dt);
}
}
//+------------------------------------------------------------------+
//| 橡铕桉钼赅 钺牝钼 磬 沭圄桕? |
//| 相疣戾蝠? |
//| dt - 溧蜞 蝾疸钼钽?漤 |
//| no - 磬桁屙钼囗桢 钺牝? |
//| tb - 怵屐 磬鬣豚 皴耨梃 |
//| te - 怵屐 铌铐鬣龛 皴耨梃 |
//+------------------------------------------------------------------+
void DrawObjects(datetime dt, string no, string tb, string te) {
datetime t1, t2;
double p1, p2;
int b1, b2;
t1=StrToTime(TimeToStr(dt, TIME_DATE)+" "+tb);
t2=StrToTime(TimeToStr(dt, TIME_DATE)+" "+te);
b1=iBarShift(NULL, 0, t1);
b2=iBarShift(NULL, 0, t2);
p1=High[Highest(NULL, 0, MODE_HIGH, b1-b2, b2)];
p2=Low [Lowest (NULL, 0, MODE_LOW , b1-b2, b2)];
if (!HighRange) {p1=0; p2=2*p2;}
ObjectSet(no, OBJPROP_TIME1 , t1);
ObjectSet(no, OBJPROP_PRICE1, p1);
ObjectSet(no, OBJPROP_TIME2 , t2);
ObjectSet(no, OBJPROP_PRICE2, p2);
}
//+------------------------------------------------------------------+
//| 屿屙屙桢 溧螓 磬 钿桧 蝾疸钼 溴睃 |
//| 相疣戾蝠? |
//| dt - 溧蜞 蝾疸钼钽?漤 |
//+------------------------------------------------------------------+
datetime decDateTradeDay (datetime dt) {
int ty=TimeYear(dt);
int tm=TimeMonth(dt);
int td=TimeDay(dt);
int th=TimeHour(dt);
int ti=TimeMinute(dt);
td--;
if (td==0) {
tm--;
if (tm==0) {
ty--;
tm=12;
}
if (tm==1 || tm==3 || tm==5 || tm==7 || tm==8 || tm==10 || tm==12) td=31;
if (tm==2) if (MathMod(ty, 4)==0) td=29; else td=28;
if (tm==4 || tm==6 || tm==9 || tm==11) td=30;
}
return(StrToTime(ty+"."+tm+"."+td+" "+th+":"+ti));
}
//+------------------------------------------------------------------+
|