Каталог файлов форума

Список вложений в сообщениях, оставленных на этой конференции.

Все файлы форума: 1270

Добавлено: BugsDigger » 04 ноя 2020, 15:52

Тема: Процентное отклонение от SMA

Текст сообщения:

Простой график отклонения последнего значения данных от бегущей средней по тем же данным в процентах.

Код: Выделить всё

function Initialize()
{
 IndicatorName = "Percent";
 PriceStudy=false;
 AddInput("Input", Inputs.Price);
 AddSeries("Percent", DrawAs.Line, Color.Black, AxisType.ZeroBased);
 AddParameter("Period", 10);
 AddLevel(0.0, Color.Black, "Percent");
}

function Evaluate()
{
 if(CurrentIndex<=Period) return;
 double t=SMA(Input, Period)[-1];
 Percent[0]=(t!=0.0 ? (Input[0]-t)/Math.Abs(t)*100.0 : 0.0);
}

В представленном варианте сравниваем со SMA[-1], т.е. SMA без учета последней (текущей) точки данных.
Конечно, вместо SMA можно вписать и любой другой фильтр, однако SMA, призванный дать "консервативное" базовое значение для счета отклонения от него, как мне кажется, весьма подходит на эту роль.

Безымянный.png

На скриншоте - Percent(90) и для наглядности SMA с тем же периодом.

Что м.б. полезно:
- визуальная оценка волатильности, на основе которой можно прикинуть отступ для стопа;
- получить оценку того, втягивается ли индикатор в область цен. Бич простых сглаживающих индикаторов - длинный тренд, когда цена колеблется вокруг монотонно движущегося в одном направлении индикатора, давая много пересечений и, соответственно, ложных пробоев. Можно попробовать задаться порогом отклонения цены от индикатора: если отклонение становится больше порога - пробой, иначе следует ориентироваться на знак производной индикатора (т.е. растет или падает сам индикатор).
- можно применить к графику объема, чтобы выделить вступление "большого игрока" или просто возрастание активности торгов после "мертвого сезона", когда цены бессистемно колеблются на малых объемах.

Update: подправил для правильного счета процентов при отрицательных значениях среднего и при нулевом среднем.
Update: стоит иметь в виду, что если входной ряд знакопеременный, то в какие-то моменты он переходит через 0 или близкое к нулю значение, так что это малое значение появляется при расчете процента в знаменателе; это дает большой (и чаще всего нерелевантный) пик на выходе.