Стратегия отслеживания трендов на основе показателей KST

Автор:Чао Чжан, Дата: 2023-09-15 12:05:21
Тэги:

Тенденция после стратегии с использованием индикатора KST

В этой статье подробно объясняется количественная тенденция, следующая за стратегией с использованием индикатора KST. Он генерирует торговые сигналы путем расчета перекрестка между линией KST и линией сигнала.

I. Логика стратегии

Основными этапами генерации сигнала являются:

  1. Вычислить значения нескольких показателей ROC с разными периодами.

  2. Применить скользящие средние значения к значениям ROC отдельно и взять сумму для получения прямой KST.

  3. Далее сглаживать линию KST с использованием скользящей средней, чтобы получить линию сигнала.

  4. Сигнал покупки генерируется, когда линия KST пересекается над линией сигнала, и наоборот для сигналов продажи.

  5. Можно выбрать подходящее размещение положения.

Принимая сумму нескольких значений 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)


Больше