资料库: IsNewBar - 页 2 12 新评论 Josue Monteiro 2023.09.21 04:37 #11 @DeepFocus 的代码非常好用,但我做了一些小调整,这样它就能与任何符号或时间框架兼容了。 class CNewCandle { private: string m_symbol; ENUM_TIMEFRAMES m_timeframe; datetime m_lastBarOpenedAt; datetime m_time[1]; public: CNewCandle(const string symbol, const ENUM_TIMEFRAMES timeframe); ~CNewCandle(void) {}; bool IsNewCandle(void); }; CNewCandle::CNewCandle(const string symbol, const ENUM_TIMEFRAMES timeframe) { m_symbol = symbol; m_timeframe = timeframe; CopyTime(m_symbol, m_timeframe, 0, 1, m_time); m_lastBarOpenedAt = m_time[0]; } /** * @brief 检查新蜡烛是否已经形成 * * @return true | false */ bool CNewCandle::IsNewCandle(void) { CopyTime(m_symbol, m_timeframe, 0, 1, m_time); if(m_lastBarOpenedAt < m_time[0]) { m_lastBarOpenedAt = m_time[0]; return(true); } else { return(false); } } 实施方法 CIsNewCandle someName(_Symbol, PERIOD_CURRENT); void OnTick(){ if(someName.IsNewCandle()){ /// 调用新的条形图事件处理程序或 /// 为新栏工作。 } } 12 新评论
@DeepFocus 的代码非常好用,但我做了一些小调整,这样它就能与任何符号或时间框架兼容了。
实施方法