在之前的代码中,我使用了时间来检测新K线。这次我们换个方式,利用K线数量来检测新K线。这个方法比使用时间的方法更轻便且更快速。
- 声明一个整数类型的变量来存储K线数量。
- 在初始化时,为"BarsTotal_OnInt"赋值K线数量。
- 使用iBars();函数在实时图表中为"BarsTotal_OnTick"变量赋值K线数量。这个变量会在每次波动时更新。
- 使用注释和警报来检查代码的准确性。

int BarsTotal_OnInt; int BarsTotal_OnTick; //+------------------------------------------------------------------+ //| 专家初始化函数 | //+------------------------------------------------------------------+ int OnInit() { BarsTotal_OnInt = iBars(NULL,PERIOD_CURRENT); // 初始化时赋值总K线数量 return(INIT_SUCCEEDED); } void OnTick() // 每次波动函数 { BarsTotal_OnTick = iBars(NULL,PERIOD_CURRENT); // 存储最新的K线数量 if(BarsTotal_OnTick > BarsTotal_OnInt) // 新K线到达 { BarsTotal_OnInt = BarsTotal_OnTick; // 更新历史记录。 Alert("新K线到达!"); Comment("历史K线数量 -: ", BarsTotal_OnInt, "\n", "实时K线数量 -: ", BarsTotal_OnTick); // 你的代码可以在这里添加。-------------------------- // 你可以更新一个"标志"/变量用于后续使用。 } }
评论 0