/// <summary>
 /// Constructor.
 /// </summary>
 public IndicatorResults(Indicator indicator, string[] resultSetNames)
 {
     foreach (string name in resultSetNames)
     {
         _resultSets[name] = new List<double>();
     }
 }
 /// <summary>
 /// WARNING : SLOW.
 /// </summary>
 public static double[] GetIndicatorsValuesAtActualIndex(int actualIndex, Indicator[] indicators)
 {
     double[] result = new double[indicators.Length];
     SystemMonitor.NotImplementedWarning();
     //for (int i = 0; i < indicators.Length; i++)
     //{
     //    result[i] = indicators[i].Results.Signals[actualIndex];
     //}
     return result;
 }
        void _indicator_IndicatorCalculatedEvent(Indicator indicator, bool fullRecalculation)
        {
            base.RaiseSeriesValuesUpdated(false);

            if (_indicator != null && _indicator.CustomMessages != null)
            {
                _customMessages = new Dictionary<string, Color>(_indicator.CustomMessages);
            }
        }
 void _session_IndicatorUnInitializedEvent(IndicatorManager indicators, Indicator indicator)
 {
     //PlatformIndicator platformIndicator = (PlatformIndicator)indicator;
     //platformIndicator.ChartSeries.Visible = false;
 }
 void _session_IndicatorRemovedEvent(IndicatorManager indicators, Indicator indicator)
 {
     foreach (ChartPane pane in this.chartControl.Panes)
     {
         if (pane.Remove(((PlatformIndicator)indicator).ChartSeries))
         {// Found and removed.
             if (pane.Series.Length == 0)
             {
                 chartControl.RemoveSlavePane((SlaveChartPane)pane);
             }
             break;
         }
     }
 }
 void _session_IndicatorAddedEvent(IndicatorManager indicators, Indicator indicator)
 {
 }
        /// <summary>
        /// Add a new indicator.
        /// </summary>
        /// <param name="indicator"></param>
        /// <returns></returns>
        public bool AddIndicator(Indicator indicator)
        {
            if (indicator.Initialize(_dataBarProvider) == false)
            {
                indicator.Dispose();
                return false;
            }

            indicator.Calculate(true, null);
            bool addResult;
            lock (this)
            {
                addResult = _indicators.Add(indicator);
            }

            if (addResult && IndicatorAddedEvent != null)
            {
                IndicatorAddedEvent(this, indicator);
            }

            return true;
        }
        protected void UnInitializeIndicator(Indicator indicator)
        {
            indicator.UnInitialize();

            if (IndicatorUnInitializedEvent != null)
            {
                IndicatorUnInitializedEvent(this, indicator);
            }
        }
        public void RemoveIndicator(Indicator indicator)
        {
            indicator.UnInitialize();

            bool removeResult;
            lock (this)
            {
                removeResult = _indicators.Remove(indicator);
            }

            if (IndicatorUnInitializedEvent != null)
            {
                IndicatorUnInitializedEvent(this, indicator);
            }

            if (removeResult && IndicatorRemovedEvent != null)
            {
                IndicatorRemovedEvent(this, indicator);
            }
        }
 /// <summary>
 /// Deserialization routine.
 /// </summary>
 public IndicatorSignals(SerializationInfo info, StreamingContext context)
 {
     _indicator = (Indicator)info.GetValue("indicator", typeof(Indicator));
     _actualResultSetStartingIndex = 0;
     _signals = new double[] { };
 }
 /// <summary>
 /// Default constructor.
 /// </summary>
 public IndicatorSignals(Indicator indicator)
 {
     _indicator = indicator;
 }