コード例 #1
0
        /// <summary>
        /// keltner constructor.
        /// </summary>
        /// <param name="initialNextUpdateDateTime"></param>
        /// <param name="keltnerTradingVariables"></param>
        /// <param name="marketOpens"></param>
        /// <param name="marketCloses"></param>
        public KeltnerIndicatorManager(DateTime initialNextUpdateDateTime, KeltnerTradingVariables keltnerTradingVariables, List <DateTime> marketOpens, List <DateTime> marketCloses)
            : base()
        {
            // Load keltner trading parameters.
            m_KeltnerTradingVariables = keltnerTradingVariables;
            m_EMALength = keltnerTradingVariables.EMALength;
            m_ATRLength = keltnerTradingVariables.ATRLength;
            m_MOMLength = keltnerTradingVariables.MomentumLength;
            m_BarUpdateIntervalSecond = keltnerTradingVariables.BarIntervalInSeconds;

            // Create indicators.
            m_EMA = new EMA(m_EMASeriesID, m_EMASeriesName, m_EMALength);
            m_ATR = new ATR(m_ATRSeriesID, m_ATRSeriesName, m_ATRLength);
            m_MOM = new MOM(m_MOMSeriesID, m_MOMSeriesName, m_MOMLength);
            this.AddIndicator(m_EMA, m_EMASeriesName);
            this.AddIndicator(m_ATR, m_ATRSeriesName);
            this.AddIndicator(m_MOM, m_MOMSeriesName);

            // Initial setup for the trading indicators.
            initialNextUpdateDateTime = Functions.GetNextBarUpdateDateTime(initialNextUpdateDateTime, m_BarUpdateIntervalSecond);
            m_EMA.SetupIndicator(m_BarUpdateIntervalSecond, initialNextUpdateDateTime, marketOpens, marketCloses);
            m_ATR.SetupIndicator(m_BarUpdateIntervalSecond, initialNextUpdateDateTime, marketOpens, marketCloses);
            m_MOM.SetupIndicator(m_BarUpdateIntervalSecond, initialNextUpdateDateTime, marketOpens, marketCloses);
        }