AO_t=SMA(MP,5)–SMA(MP,34),
Где MP_t=(High_t+Low_t)/2
AC_t=AO_t-SMA(AO,5)
Индикатор AC является аналогом индикатора гистограммы MACD, только который построен на SMA.
Пример:
Исходный текст:
Код: Выделить всё
function Initialize()
{
IndicatorName = "BW_AC";
AddInput("Input", Inputs.Candle);   
PriceStudy = false;   
AddSeries("BW_AC", DrawAs.Custom, Color.Red, AxisType.ZeroBased);   
AddGlobalVariable("LSMA5", Types.DoubleList);         
AddGlobalVariable("LSMA34", Types.DoubleList);         
AddGlobalVariable("LAO5", Types.DoubleList);         
}
function Evaluate()
{
// AlfaDirect. 2015. OX
// BW_AC (Acceleration/Deceleration) Bill Williams
  double TP = Input.High[0] + Input.Low[0];
  LSMA5.Add(TP);
  if ( CurrentIndex >= 5 )
     LSMA5.RemoveAt(0);
  double SMA5 = LSMA5.Average(x => x);
  LSMA34.Add(TP);
  if ( CurrentIndex >= 34 )
     LSMA34.RemoveAt(0);
  double SMA34 = LSMA34.Average(x => x);
  double AO = SMA5 - SMA34;
  LAO5.Add(AO);
  if ( CurrentIndex >= 5 )
     LAO5.RemoveAt(0);
  double AO5 = LAO5.Average(x => x);
  BW_AC = AO - AO5;
  if ( CurrentIndex > 0 )
    if ( BW_AC > BW_AC[-1] )
        BW_AC.DrawHistogram(Color.LightGreen);
    else 
       BW_AC.DrawHistogram(Color.Red);
}
