Librerie: IsNewBar - pagina 2 12 Nuovo commento Josue Monteiro 2023.09.21 04:37 #11 Il codice di@DeepFocus funziona benissimo, ma ho apportato alcune piccole modifiche per renderlo compatibile con qualsiasi simbolo o timeframe. 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 Controlla se si è formata una nuova candela * * @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); } } Da implementare: CIsNewCandle someName(_Symbol, PERIOD_CURRENT); void OnTick(){ if(someName.IsNewCandle()){ /// Chiamare il gestore dell'evento nuova barra o /// Eseguire il lavoro per la nuova barra. } } 12 Nuovo commento
Il codice di@DeepFocus funziona benissimo, ma ho apportato alcune piccole modifiche per renderlo compatibile con qualsiasi simbolo o timeframe.
Da implementare: