Ini sangat sederhana. Saya hanya perlu menambahkan input eksternal untuk preferensi font yang mencetak harga di atas kotak sesi.
Ada saran? Saya bukan coder btw.


Inserted Code/ ------------------------------------------------------------------ /| i-Sessions.mq4 |/| #1050;#1080;#1084; #1048;#1075;#1086;#1088;#1100; #1042;. aka KimIV |/| http://www.kimiv.ru |/| |/| 16.11.2005 #1048;#1085;#1076;#1080;#1082;#1072;#1090;#1086;#1 088; #1090;#1086;#1088;#1075;#1086;#1074;#1099;#1093; #1089;#1077;#1089;#1089;#1080;#1081; |/ ------------------------------------------------------------------ #property copyright #1050;#1080;#1084; #1048;#1075;#1086;#1088;#1100; #1042;. aka KimIV #property link http://www.kimiv.ru #property indior_chart_window/------- #1042;#1085;#1077;#1096;#1085;#1080;#1077; #1087;#1072;#1088;#1072;#1084;#1077;#1090;#1088;#1 099; #1080;#1085;#1076;#1080;#1082;#1072;#1090;#1086;#1 088;#1072; ------------------------------- extern int NumberOfDays = 2; /#1050;#1086;#1083;#1080;#1095;#1077;#1089;#1090;#1 074;#1086; #1076;#1085;#1077;#1081; extern string AsiaBegin = 01:00; /#1054;#1090;#1082;#1088;#1099;#1090;#1080;#1077; #1072;#1079;#1080;#1072;#1090;#1089;#1082;#1086;#1 081; #1089;#1077;#1089;#1089;#1080;#1080; extern string AsiaEnd = 10:00; /#1047;#1072;#1082;#1088;#1099;#1090;#1080;#1077; #1072;#1079;#1080;#1072;#1090;#1089;#1082;#1086;#1 081; #1089;#1077;#1089;#1089;#1080;#1080; extern color AsiaColor = Goldenrod;/#1062;#1074;#1077;#1090; #1072;#1079;#1080;#1072;#1090;#1089;#1082;#1086;#1 081; #1089;#1077;#1089;#1089;#1080;#1080; extern string EurBegin = 07:00; /#1054;#1090;#1082;#1088;#1099;#1090;#1080;#1077; #1077;#1074;#1088;#1086;#1087;#1077;#1081;#1089;#1 082;#1086;#1081; #1089;#1077;#1089;#1089;#1080;#1080; extern string EurEnd = 16:00; /#1047;#1072;#1082;#1088;#1099;#1090;#1080;#1077; #1077;#1074;#1088;#1086;#1087;#1077;#1081;#1089;#1 082;#1086;#1081; #1089;#1077;#1089;#1089;#1080;#1080; extern color EurColor = Tan; /#1062;#1074;#1077;#1090; #1077;#1074;#1088;#1086;#1087;#1077;#1081;#1089;#1 082;#1086;#1081; #1089;#1077;#1089;#1089;#1080;#1080; extern string USABegin = 14:00; /#1054;#1090;#1082;#1088;#1099;#1090;#1080;#1077; #1072;#1084;#1077;#1088;#1080;#1082;#1072;#1085;#1 089;#1082;#1086;#1081; #1089;#1077;#1089;#1089;#1080;#1080; extern string USAEnd = 23:00; /#1047;#1072;#1082;#1088;#1099;#1090;#1080;#1077; #1072;#1084;#1077;#1088;#1080;#1082;#1072;#1085;#1 089;#1082;#1086;#1081; #1089;#1077;#1089;#1089;#1080;#1080; extern color USAColor = Pink; /#1062;#1074;#1077;#1090; #1072;#1084;#1077;#1088;#1080;#1082;#1072;#1085;#1 089;#1082;#1086;#1081; #1089;#1077;#1089;#1089;#1080;#1080; extern bool ShowPrice = True; /#1055;#1086;#1082;#1072;#1079;#1099;#1074;#1072;#1 090;#1100; #1094;#1077;#1085;#1086;#1074;#1099;#1077; #1091;#1088;#1086;#1074;#1085;#1080; extern color clFont = Blue; /#1062;#1074;#1077;#1090; #1096;#1088;#1080;#1092;#1090;#1072; extern int SizeFont = 8; /#1056;#1072;#1079;#1084;#1077;#1088; #1096;#1088;#1080;#1092;#1090;#1072; extern int OffSet = 10; /#1057;#1084;#1077;#1097;#1077;#1085;#1080;#1077; / ------------------------------------------------------------------ /| Custom indior initialization function |/ ------------------------------------------------------------------ void init() { DeleteObjects(); for (int i=0; ilt;NumberOfDays; i ) { CreateObjects(AS i, AsiaColor); CreateObjects(EU i, EurColor); CreateObjects(US i, USAColor); } Comment(); }/ ------------------------------------------------------------------ /| Custor indior deinitialization function |/ ------------------------------------------------------------------ void deinit() { DeleteObjects(); Comment(); }/ ------------------------------------------------------------------ /| #1057;#1086;#1079;#1076;#1072;#1085;#1080;#1077; #1086;#1073;#1098;#1077;#1082;#1090;#1086;#1074; #1080;#1085;#1076;#1080;#1082;#1072;#1090;#1086;#1 088;#1072; |/| #1055;#1072;#1088;#1072;#1084;#1077;#1090;#1088;#1 099;: |/| no - #1085;#1072;#1080;#1084;#1077;#1085;#1086;#1074;#1 072;#1085;#1080;#1077; #1086;#1073;#1098;#1077;#1082;#1090;#1072; |/| cl - #1094;#1074;#1077;#1090; #1086;#1073;#1098;#1077;#1082;#1090;#1072; |/ ------------------------------------------------------------------ void CreateObjects(string no, color cl) { ObjectCreate(no, OBJ_RECTANGLE, 0, 0,0, 0,0); ObjectSet(no, OBJPROP_STYLE, STYLE_SOLID); ObjectSet(no, OBJPROP_COLOR, cl); ObjectSet(no, OBJPROP_BACK, True); }/ ------------------------------------------------------------------ /| #1059;#1076;#1072;#1083;#1077;#1085;#1080;#1077; #1086;#1073;#1098;#1077;#1082;#1090;#1086;#1074; #1080;#1085;#1076;#1080;#1082;#1072;#1090;#1086;#1 088;#1072; |/ ------------------------------------------------------------------ void DeleteObjects() { for (int i=0; ilt;NumberOfDays; i ) { ObjectDelete(AS i); ObjectDelete(EU i); ObjectDelete(US i); } ObjectDelete(ASup); ObjectDelete(ASdn); ObjectDelete(EUup); ObjectDelete(EUdn); ObjectDelete(USup); ObjectDelete(USdn); }/ ------------------------------------------------------------------ /| Custom indior iteration function |/ ------------------------------------------------------------------ void start() { datetime dt=CurTime(); for (int i=0; ilt;NumberOfDays; i ) { if (ShowPrice i==0) { DrawPrices(dt, AS, AsiaBegin, AsiaEnd); DrawPrices(dt, EU, EurBegin, EurEnd); DrawPrices(dt, US, USABegin, USAEnd); } DrawObjects(dt, AS i, AsiaBegin, AsiaEnd); DrawObjects(dt, EU i, EurBegin, EurEnd); DrawObjects(dt, US i, USABegin, USAEnd); dt=decDateTradeDay(dt); while (TimeDayOfWeek(dt)gt;5) dt=decDateTradeDay(dt); } }/ ------------------------------------------------------------------ /| #1055;#1088;#1086;#1088;#1080;#1089;#1086;#1074;#1 082;#1072; #1086;#1073;#1098;#1077;#1082;#1090;#1086;#1074; #1085;#1072; #1075;#1088;#1072;#1092;#1080;#1082;#1077; |/| #1055;#1072;#1088;#1072;#1084;#1077;#1090;#1088;#1 099;: |/| dt - #1076;#1072;#1090;#1072; #1090;#1086;#1088;#1075;#1086;#1074;#1086;#1075;#1 086; #1076;#1085;#1103; |/| no - #1085;#1072;#1080;#1084;#1077;#1085;#1086;#1074;#1 072;#1085;#1080;#1077; #1086;#1073;#1098;#1077;#1082;#1090;#1072; |/| tb - #1074;#1088;#1077;#1084;#1103; #1085;#1072;#1095;#1072;#1083;#1072; #1089;#1077;#1089;#1089;#1080;#1080; |/| te - #1074;#1088;#1077;#1084;#1103; #1086;#1082;#1086;#1085;#1095;#1072;#1085;#1080;#1 103; #1089;#1077;#1089;#1089;#1080;#1080; |/ ------------------------------------------------------------------ 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#91;Highest(NULL, 0, MODE_HIGH, b1-b2, b2)#93;; p2=Low #91;Lowest (NULL, 0, MODE_LOW , b1-b2, b2)#93;; ObjectSet(no, OBJPROP_TIME1 , t1); ObjectSet(no, OBJPROP_PRICE1, p1); ObjectSet(no, OBJPROP_TIME2 , t2); ObjectSet(no, OBJPROP_PRICE2, p2); }/ ------------------------------------------------------------------ /| #1055;#1088;#1086;#1088;#1080;#1089;#1086;#1074;#1 082;#1072; #1094;#1077;#1085;#1086;#1074;#1099;#1093; #1084;#1077;#1090;#1086;#1082; #1085;#1072; #1075;#1088;#1072;#1092;#1080;#1082;#1077; |/| #1055;#1072;#1088;#1072;#1084;#1077;#1090;#1088;#1 099;: |/| dt - #1076;#1072;#1090;#1072; #1090;#1086;#1088;#1075;#1086;#1074;#1086;#1075;#1 086; #1076;#1085;#1103; |/| no - #1085;#1072;#1080;#1084;#1077;#1085;#1086;#1074;#1 072;#1085;#1080;#1077; #1086;#1073;#1098;#1077;#1082;#1090;#1072; |/| tb - #1074;#1088;#1077;#1084;#1103; #1085;#1072;#1095;#1072;#1083;#1072; #1089;#1077;#1089;#1089;#1080;#1080; |/| te - #1074;#1088;#1077;#1084;#1103; #1086;#1082;#1086;#1085;#1095;#1072;#1085;#1080;#1 103; #1089;#1077;#1089;#1089;#1080;#1080; |/ ------------------------------------------------------------------ void DrawPrices(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#91;Highest(NULL, 0, MODE_HIGH, b1-b2, b2)#93;; p2=Low #91;Lowest (NULL, 0, MODE_LOW , b1-b2, b2)#93;; if (ObjectFind(no up)lt;0) ObjectCreate(no up, OBJ_TEXT, 0, 0,0); ObjectSet(no up, OBJPROP_TIME1 , t2); ObjectSet(no up, OBJPROP_PRICE1 , p1 OffSet*Point); ObjectSet(no up, OBJPROP_COLOR , clFont); ObjectSet(no up, OBJPROP_FONTSIZE, SizeFont); ObjectSetText(no up, DoubleToStr(p1 Ask-Bid, Digits)); if (ObjectFind(no dn)lt;0) ObjectCreate(no dn, OBJ_TEXT, 0, 0,0); ObjectSet(no dn, OBJPROP_TIME1 , t2); ObjectSet(no dn, OBJPROP_PRICE1 , p2); ObjectSet(no dn, OBJPROP_COLOR , clFont); ObjectSet(no dn, OBJPROP_FONTSIZE, SizeFont); ObjectSetText(no dn, DoubleToStr(p2, Digits)); }/ ------------------------------------------------------------------ /| #1059;#1084;#1077;#1085;#1100;#1096;#1077;#1085;#1 080;#1077; #1076;#1072;#1090;#1099; #1085;#1072; #1086;#1076;#1080;#1085; #1090;#1086;#1088;#1075;#1086;#1074;#1099;#1081; #1076;#1077;#1085;#1100; |/| #1055;#1072;#1088;#1072;#1084;#1077;#1090;#1088;#1 099;: |/| dt - #1076;#1072;#1090;#1072; #1090;#1086;#1088;#1075;#1086;#1074;#1086;#1075;#1 086; #1076;#1085;#1103; |/ ------------------------------------------------------------------ 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)); }/ ------------------------------------------------------------------