// 日本時間表示インジケータ Build 4 #property indicator_chart_window // サーバ時刻とのずれ extern int TimeZone = +9; // ▲の表示位置。この値を大きくすると上へ、小さくすると下へ移動 extern double ArrowPosition = 0.025; // 日時の表示位置。この値を大きくすると上へ、小さくすると下へ移動 extern double TimePosition = 0.02; // チャートをズームイン/ズームアウトしている場合は、この値を8, 16, 32, 64のどれかに変更 extern int BarsPerTime = 32; extern string Font = "MS UI Gothic"; extern int ArrowFontSize = 4; extern int TimeFontSize = 8; extern color FontColor = White; int m = 0; int init() { return(0); } int deinit() { DeleteTimes(); return(0); } int start() { DeleteTimes(); int n = 0; for (int i = WindowFirstVisibleBar() - WindowBarsPerChart(); i < WindowFirstVisibleBar(); i++) { if (((i - WindowFirstVisibleBar()) % BarsPerTime) == 0) { DrawTime(n, i); n++; } } m = n; return(0); } void DeleteTimes() { for (int i = 0; i < m; i++) { ObjectDelete("Arrow" + i); ObjectDelete("Time" + i); } } void DrawTime(int n, int i) { double min = WindowPriceMin(); double max = WindowPriceMax(); ObjectCreate("Arrow" + n, OBJ_TEXT, 0, Time[i], min + (max - min) * ArrowPosition); ObjectSetText("Arrow" + n, "▲", ArrowFontSize, Font, FontColor); ObjectCreate("Time" + n, OBJ_TEXT, 0, Time[i], min + (max - min) * TimePosition); ObjectSetText("Time" + n, Format(Time[i]), TimeFontSize, Font, FontColor); } string Format(datetime time) { time = time + TimeZone * 3600; int month = TimeMonth(time); int day = TimeDay(time); return(month + "/" + day + " " + TimeToStr(time, TIME_MINUTES)); }