【高手请进】点击一根K线后,如何在其后指定根数K线处画线?

 

如下图所示:

我在OnChartEvent中处理鼠标点击事件,点击某根K线时,通过ChartXYToTimePrice(window, x, y ,subwindow, t, p), 获取K线时间t,

然后用:ObjectCreate(window, :“vline1”, OBJ_VLINE, 0, t, 0); 在t时间处画竖线。

如果我要在后续第4根K线处(图中黄色框标识),如何实现?

我自己尝试用: ObjectCreate(window, :“vline2”, OBJ_VLINE, 0, t+_Period*4, 0); 有些问题,有时候画不出来,比如时间算出来是周末是没有K线数据的。

求助各位高手,如何实现这个功能?非常感谢! 


 
ajie0112:

如下图所示:

我在OnChartEvent中处理鼠标点击事件,点击某根K线时,通过ChartXYToTimePrice(window, x, y ,subwindow, t, p), 获取K线时间t,

然后用:ObjectCreate(window, :“vline1”, OBJ_VLINE, 0, t, 0); 在t时间处画竖线。

如果我要在后续第4根K线处(图中黄色框标识),如何实现?

我自己尝试用: ObjectCreate(window, :“vline2”, OBJ_VLINE, 0, t+_Period*4, 0); 有些问题,有时候画不出来,比如时间算出来是周末是没有K线数据的。

求助各位高手,如何实现这个功能?非常感谢! 


 t+_Period*4  ?

这种方式不好。

鼠标获得K线的时间t后,把它转换成对应的 shift  = iBarShift() 

然后,其右第4根K线的shift4 = shift - 4,对应的time4 = iTime(NULL,0,shit4);

然后就可以用time4画线了。

随手敲的,大概是这样。

 
非常感谢!iBarShift是MT4的函数,在MT5里面没有,我找到了移植版,先试试。