Код переведен в АД4 по мотивам индикатора WaveTrend в TradingView.com
Первоисточник кода:
https://ru.tradingview.com/script/izhKh ... -LazyBear/
Входящие параметры
n1 - период для расчета индикататора
n2 - период для расчета индикататора
Примеры
Код: Выделить всё
function Initialize()
{
IndicatorName = "WaveTrend";
PriceStudy = false;
AddInput("Input", Inputs.Candle);
AddSeries("esa", DrawAs.Line, Color.Black, false);
AddSeries("d", DrawAs.Line, Color.Black, false);
AddSeries("wt1", DrawAs.Line, Color.Green, AxisType.ZeroBased);
AddSeries("wt2", DrawAs.Line, Color.Red, AxisType.ZeroBased);
AddSeries("wt3", DrawAs.Histogram, Color.Blue, AxisType.ZeroBased);
AddSeries("zero", DrawAs.Line, Color.Black, AxisType.ZeroBased);
AddParameter("n1", 10);
AddParameter("n2", 21);
AddGlobalVariable("K1", Types.Double, 0.0);
AddGlobalVariable("K2", Types.Double, 0.0);
AddGlobalVariable("sum", Types.Double, 0.0);
}
function Evaluate()
{
// evge 09.11.2018 http://alfadirect4.ru
var I = Input;
var ap = (I.High[0] + I.Low[0] + I.Close[0]) / 3;
if (CurrentIndex > 0)
{
esa[0] = (1.0 - K1) * esa[1] + K1 * ap;
d[0] = (1.0 - K1) * d[1] + K1 * Math.Abs(ap - esa[0]);
wt1[0] = (1.0 - K2) * wt1[1] + K2 * (ap - esa[0]) / (0.015 * d[0]);
}
else
{
K1 = 2.0 / (n1 + 1.0);
K2 = 2.0 / (n2 + 1.0);
}
sum += wt1[0];
if (CurrentIndex >= 4) sum -= wt1[4];
wt2 = sum / 4;
wt3 = wt1 - wt2;
zero = 0;
}
Скачать индикатор