Расчет кастом breadth индикаторов

Фрагмент кода, который вычисляет и рисует среднее значение цен закрытия MSFT и AAPL. Таким образом можно составлять свои графики advance/decline line, tick, new high, breadth.

using System;
using System.Drawing;
using System.Collections;

using OpenQuant.API;
using OpenQuant.API.Indicators;

public class MyStrategy : Strategy
{
   static Hashtable indicators = new Hashtable();
   static Instrument MSFT;
   static Instrument AAPL;
   static TimeSeries mean;
   
   public override void OnStrategyStart()
   {
      Console.WriteLine("Adding " + Instrument);
      
      MSFT = Instruments["MSFT"];
      AAPL = Instruments["AAPL"];
            
      indicators[Instrument] = new MACD(Bars, 7, 14);
      
      if (Instrument == AAPL)
      {
         mean = new TimeSeries("Mean", Color.White);
         
         Draw(mean, 2);
      }
   }

   public override void OnBarSlice(long size)
   {
      if (Instrument == AAPL)
      {
         foreach(Instrument instrument in indicators.Keys)
         {
            Indicator indicator = indicators[instrument] as Indicator;
            
            //if (indicator.Count != 0)
            //   Console.WriteLine(instrument + "  " + indicator.Last);
         }
         
         //Console.WriteLine("=====");
         
         mean.Add(MSFT.Bar.DateTime, (MSFT.Bar.Close + AAPL.Bar.Close) / 2);
      }
   }
}