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

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

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

Добавлено: evge » 02 мар 2018, 16:12

Тема: Volatility Stop (VStop) - определение тренда через волатильность

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

Volatility Stop (VStop) - трендовый индикатор. Определяет смену направления тренда через волатильность.

Параметры

length - период для ATR
mult - коэф. для определения смены направления

Пример работы

VStop-02.png
VStop-02.png (32.28 КБ) 28774 просмотра

VStop.zip
(61.55 КБ) 1327 скачиваний


Исходный код

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

function Initialize()
{
IndicatorName = "VStop";   
PriceStudy = true;   
AddInput("I", Inputs.Candle);
AddSeries("vstop", DrawAs.Line, Color.Red, false);   
AddSeries("Up", DrawAs.Custom, Color.Green);   
AddSeries("Dn", DrawAs.Custom, Color.Red);

AddParameter("length", 20);
AddParameter("mult", 2);

AddGlobalVariable("is_uptrend", Types.Boolean, false);
AddGlobalVariable("is_uptrend_prev", Types.Boolean, false);
AddGlobalVariable("max_", Types.Double, 0.0);
AddGlobalVariable("min_", Types.Double, 0.0);
AddGlobalVariable("c", Types.Int, 0);
}

function Evaluate()
{

// evge 02.03.2018 http://alfadirect4.ru

var atr_ = ATR(I, length);

double max1 = Math.Max(max_, I.Close[0]);
double min1 = Math.Min(min_, I.Close[0]);

is_uptrend_prev = is_uptrend;

double stop = is_uptrend_prev ? max1 - mult * atr_[0] : min1 + mult * atr_[0];
double vstop_prev = CurrentIndex > length ? vstop[1] : 0.0;
double vstop1 = is_uptrend_prev ? Math.Max(vstop_prev, stop) : Math.Min(vstop_prev, stop);
is_uptrend = (I.Close[0] - vstop1) >= 0;
bool is_trend_changed = is_uptrend != is_uptrend_prev;
max_ = is_trend_changed ? I.Close[0] : max1;
min_ = is_trend_changed ? I.Close[0] : min1;
vstop = is_trend_changed ? is_uptrend ? max_ - mult * atr_ : min_ + mult * atr_ : vstop1;

c += is_uptrend != is_uptrend_prev ? -c : 1;

if (is_uptrend)
   { Up[0] = vstop[0]; if (c > 0) Up.DrawLine(); }
   else
   { Dn[0] = vstop[0]; if (c > 0) Dn.DrawLine(); }

}


Скачать индикатор

VStop-01.png
VStop-01.png (31.92 КБ) 28791 просмотр