Индикатор AccelerationDecelerationOsc изменяет ускорение цены: является ли оно положительным или отрицательным. Автор (Бил Вильямс) утверждает, что с помощью индикатора AccelerationDecelerationOsc можно задолго предопределить динамику цены. Это предположение вполне логично: прежде чем цена развернется, она сначала должна уменьшить свою скорость. Таким образом AC будет изменять направление перед изменением движущей силы, а она в свою очередь будет изменять свое направление перед изменением цены.
declare lower; // декларация по размещению индикатора в нижней части окна графика в отдельном окне под объемами
def AO = AwesomeOscillator(); // Awesome Oscillator это 34-периодное простое скользящее среднее, построенное по средним точкам баров (High + Low)/2, которое вычтено из 5-периодного простого скользящего среднего, построенного по центральным точкам баров (High + Low)/2.
plot AC = AO - Average(AO, 5); // разница между Awesome Oscillator и его пятипериодного скользящего среднего.
plot ZeroLine = 0; //базовая нулевая линия
AC.SetPaintingStrategy(PaintingStrategy.HISTOGRAM); //вид отображения данного индикатора/осциллятора - гистограмма
AC.SetLineWeight(3); // толщина линии
AC.DefineColor("Up", Color.UPTICK); //цвет по умолчанию для отображения разгона
AC.DefineColor("Down", Color.DOWNTICK); //цвет по умолчанию для отображения торможения
AC.AssignValueColor(if AC > AC[1] then AC.color("Up") else if AC < AC[1] then AC.color("Down") else GetColor(1)); //выбор цвета для отображения индикатора/осциллятора
ZeroLine.SetDefaultColor(GetColor(5)); //цвет по умолчанию, для базовой линии