同步K線尺寸的編碼另做他用,使用「CHARTEVENT_CLICK」來定義點擊圖表時的處理動作。由於只要在圖表的自動滾動功能關閉時進行同步,因此如下所示採用「CHART_AUTOSCROLL」。
if (id == CHARTEVENT_CLICK) {接著要添加取得時間資訊的編碼。「CHART_FIRST_VISIBLE_BAR」為顯示於圖表左端的K線編號,「CHART_WIDTH_IN_BARS」則代表圖表整體寬度的K線數量。若barR(右端的K線編號)為負數,則設定為「0」,並以「datetime」函數來變更為時間。
bool auto = (bool)ChartGetInteger(0, CHART_AUTOSCROLL);
int barR = int(ChartGetInteger(0, CHART_FIRST_VISIBLE_BAR) – ChartGetInteger(0, CHART_WIDTH_IN_BARS));另外,以while文字變更為反覆處理。使用「ChartSetInteger」於操作的圖表、而非「ChartGetInteger」;接著將變更的時間與圖表K線同步。
if (barR < 0) barR = 0;
datetime timeR = Time[barR];
if (chart_id != ChartID() && !auto) {
ChartSetInteger(chart_id, CHART_AUTOSCROLL, false);
int bar = iBarShift(ChartSymbol(chart_id), ChartPeriod(chart_id), timeR);