Тенденция после стратегии с использованием индикатора KST
В этой статье подробно объясняется количественная тенденция, следующая за стратегией с использованием индикатора KST. Он генерирует торговые сигналы путем расчета перекрестка между линией KST и линией сигнала.
I. Логика стратегии
Основными этапами генерации сигнала являются:
Вычислить значения нескольких показателей ROC с разными периодами.
Применить скользящие средние значения к значениям ROC отдельно и взять сумму для получения прямой KST.
Далее сглаживать линию KST с использованием скользящей средней, чтобы получить линию сигнала.
Сигнал покупки генерируется, когда линия KST пересекается над линией сигнала, и наоборот для сигналов продажи.
Можно выбрать подходящее размещение положения.
Принимая сумму нескольких значений ROC, линия KST отражает как краткосрочные, так и долгосрочные ценовые тенденции.
II. Преимущества стратегии
Наибольшее преимущество заключается в всеобъемлющем расчете показателей, который включает информацию о тенденциях в различные временные рамки.
Еще одним преимуществом является простое и интуитивно понятное использование индикатора с четкой сигнальной линией.
Наконец, регулируемое размещение позиций помогает контролировать общую рискованность.
III. Потенциальные недостатки
Однако существуют некоторые проблемы:
Во-первых, сам показатель имеет некоторое отставание в реагировании на изменения цен.
Во-вторых, зависимость от KST делает его восприимчивым к изменениям.
Кроме того, требуется широкая оптимизация, чтобы избежать перенастройки.
IV. Резюме
В целом, в этой статье объясняется количественная тенденция, следующая за стратегией с использованием кроссоверных сигналов KST. Она отражает ценовые тенденции через индикатор для торговых сигналов, но требует управления отставанием индикатора и правильной настройки параметров. В целом она обеспечивает простой подход к отслеживанию тренда.
/*backtest start: 2023-08-15 00:00:00 end: 2023-09-14 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 // strategy(title="KST Alert", shorttitle="KST Alert", format=format.price, precision=4) roclen1 = input.int(10, minval=1, title = "ROC Length #1") roclen2 = input.int(15, minval=1, title = "ROC Length #2") roclen3 = input.int(20, minval=1, title = "ROC Length #3") roclen4 = input.int(30, minval=1, title = "ROC Length #4") smalen1 = input.int(10, minval=1, title = "SMA Length #1") smalen2 = input.int(10, minval=1, title = "SMA Length #2") smalen3 = input.int(10, minval=1, title = "SMA Length #3") smalen4 = input.int(15, minval=1, title = "SMA Length #4") siglen = input.int(9, minval=1, title = "Signal Line Length") smaroc(roclen, smalen) => ta.sma(ta.roc(close, roclen), smalen) kst = smaroc(roclen1, smalen1) + 2 * smaroc(roclen2, smalen2) + 3 * smaroc(roclen3, smalen3) + 4 * smaroc(roclen4, smalen4) sig = ta.sma(kst, siglen) plot(kst, color=#009688, title="KST") plot(sig, color=#F44336, title="Signal") hline(0, title="Zero", color = #787B86) eL1=ta.crossover(kst,sig) eS1=ta.crossunder(kst,sig) ch = 0 t = year(time('D')) ch := ta.change(t) != 0 ? 1 : 0 T1 = time(timeframe.period, "0915-1520") session_open = na(t) ? false : true newDay = ta.change(time("15m")) != 0 strategy.entry("Long1", strategy.long, when = eL1) strategy.entry("Short1", strategy.short, when = eS1)