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);
}