
Эта стратегия является стратегией торговли с использованием двустороннего индикатора обратной волатильности. Эта стратегия создает торговый сигнал путем вычисления максимальной, минимальной и закрывающей цены в течение определенного периода времени и вычисления их движущегося среднего значения.
Центральным показателем данной стратегии является Stochastic Momentum Index (SMI). Формула расчета SMI выглядит следующим образом:
\[SMI = \frac{Close-(HH+LL)/2}{AVGDIFF/2}*100\]
где HH - наивысшая цена за прошедшие N дней, LL - наименьшая цена за прошедшие N дней, N определяется параметром a; AVGDIFF - M-дневная скользящая средняя HH-LL, M определяется параметром b。
Индекс SMI отражает характер обратного ценообразования. Когда цена акции приближается к максимуму за последние N дней, SMI приближается к 100, что означает, что акция перекупается; когда приближается к минимуму за последние N дней, SMI приближается к 100, что означает, что акция перепродается.
В этой стратегии используется M-дневная скользящая средняя SMI как линия торгового сигнала. Когда SMI переворачивает вниз от зоны перекупа и падает вниз от SMA, создается сигнал покупки; когда SMI переворачивает вверх от зоны перепродажи и прорывается вниз от SMA, создается сигнал продажи.
В то же время, стратегия определяет прорыв объекта K-линии и устанавливает стоп-убытки.
Эта стратегия имеет следующие преимущества:
Используя принцип ценового разворота, можно создать торговый сигнал в точке разворота тенденции, чтобы поймать возможность разворота.
Индекс SMI объединяет самые высокие цены, самые низкие цены и цены закрытия, чтобы дать более надежный сигнал.
В сочетании с прорывом объекта K-линии, чтобы установить стоп-убыток, можно вовремя остановить убыток Exiting the position, эффективно контролировать риск.
Политические параметры меньше, их легко реализовать и оптимизировать.
Однако есть и другие риски:
На самом деле, в некоторых странах, например, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае.
Ошибки в оценке времени разворота могут привести к увеличению убытков.
Субъекты могут быть слишком чувствительны к прорыву, и вероятность того, что они окажутся в ловушке, высока.
Решение проблемы:
Оптимизация параметров SMI и коррекция частоты обратной торговли.
В сочетании с другими показателями оценивается момент обратного отсчета.
Настройка параметров сдерживания размера объекта, чтобы предотвратить чрезмерную чувствительность.
Эта стратегия может быть оптимизирована в следующих направлениях:
Оптимизируйте параметры a и b SMI, чтобы скорректировать чувствительность обратного захвата.
Добавьте другие показатели, чтобы не пропустить основные тенденции. Например, сочетание средних линий, показателей колебаний и т. Д.
Добавление способов остановки, чтобы предотвратить слишком чувствительную или медленную остановку. Можно рассмотреть возможность отслеживания остановки, остановки кривой и т. д.
В сочетании с моделями машинного обучения можно оценить вероятность успешного обращения вспять и избежать неудачных операций.
Эта стратегия в целом является стратегией использования обратного индекса SMI для двусторонней торговли. Преимущество заключается в том, что она использует характеристики ценового обратного отклонения, создает торговый сигнал в точке обратного отклонения и может захватить больше возможностей для короткой торговли. Но также существуют некоторые типичные риски обратной торговли, которые требуют оптимизации параметров и остановки, чтобы предотвратить увеличение убытков.
/*backtest
start: 2023-11-01 00:00:00
end: 2023-11-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=2
strategy(title = "Noro's Stochastic Strategy v1.0", shorttitle = "Stochastic str 1.0", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
a = input(5, "Percent K Length")
b = input(3, "Percent D Length")
limit = input(50, defval = 50, minval = 1, maxval = 100, title = "SMI Limit")
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
//Stochastic Momentum Index
ll = lowest (low, a)
hh = highest (high, a)
diff = hh - ll
rdiff = close - (hh+ll)/2
avgrel = ema(ema(rdiff,b),b)
avgdiff = ema(ema(diff,b),b)
SMI = avgdiff != 0 ? (avgrel/(avgdiff/2)*100) : 0
SMIsignal = ema(SMI,b)
//Lines
plot(SMI, color = blue, linewidth = 3, title = "Stochastic Momentum Index")
plot(SMIsignal, color = red, linewidth = 3, title = "SMI Signal Line")
plot(limit, color = black, title = "Over Bought")
plot(-1 * limit, color = black, title = "Over Sold")
plot(0, color = blue, title = "Zero Line")
//Body
body = abs(close - open)
abody = sma(body, 10)
//Signals
up = SMIsignal < -1 * limit and close < open
dn = SMIsignal > limit and close > open
exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body > abody / 2
//Trading
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]
if up
if strategy.position_size < 0
strategy.close_all()
strategy.entry("Bottom", strategy.long, needlong == false ? 0 : lot)
if dn
if strategy.position_size > 0
strategy.close_all()
strategy.entry("Top", strategy.short, needshort == false ? 0 : lot)
if exit
strategy.close_all()