一段判断新 K 线的代码
写了个判断新 K 线出现的代码片段,用来避免一 bar 重复开单,新手可以参考。
// 判断是否是新K线
datetime lastBarTime = 0;
bool IsNewBar() {
datetime currentBarTime = iTime(Symbol(), 0, 0);
if(currentBarTime != lastBarTime) {
lastBarTime = currentBarTime;
return true;
}
return false;
}
void OnTick() {
// 每根K线只执行一次
if(IsNewBar()) {
Print("=== 新K线开始 ===");
Print("时间:", TimeToString(iTime(Symbol(), 0, 0)));
Print("开盘价:", DoubleToString(iOpen(Symbol(), 0, 0), Digits));
Print("收盘价:", DoubleToString(iClose(Symbol(), 0, 1), Digits));
// 在这里写你的指标计算、开仓逻辑
}
}全部回复(2)
发表回复
请先登录后再回复。
