
Двойная подвижная средняя стратегия для отслеживания трендов заключается в том, чтобы рассчитывать двойные скользящие средние индексы цены, образуя быструю и медленную линии, и определять ценовые тенденции в зависимости от перекрестного формата двух линий. Эта стратегия относится к количественным торговым стратегиям, основанным на отслеживании трендов.
Сначала стратегия рассчитывает двойные индексы движущихся средних цен, включая быструю и медленную линии. Параметр быстрой линии составляет 4 цикла, а параметр медленной линии - 8 циклов. Пересечение двух линий вызывает сигнал покупки и продажи.
Во-первых, эта стратегия позволяет торговать в соответствии с ценовыми тенденциями, избегая транзакционных издержек. Во-вторых, двойная движущаяся средняя линия фильтрует часть шума, связанного с ценами, и позволяет плавно улавливать ценовые тенденции. Во-вторых, параметры этой стратегии оптимизированы гибко.
Эта стратегия зависит от оптимизации параметров, и если параметры установлены неправильно, это приведет к большому количеству ошибочных сигналов. Кроме того, двойная движущаяся средняя линия имеет отсталость и может пропустить точку перехода цены. Кроме того, трендовые сделки легко образуют модель, которая преследует высокие и убивает низкие, и существует определенный риск. Кроме того, ликвидность торгового сорта и комиссионные также могут повлиять на прибыль стратегии.
Эта стратегия может быть оптимизирована в следующих аспектах:
Оптимизируйте циклические параметры двойных скользящих средних и найдите оптимальную комбинацию параметров
Добавление фильтров других показателей, таких как RSI, KD и т. Д., Повышение качества сигнала
Увеличение стратегии остановки убытков и своевременное прекращение убытков при обратном тренде
Динамично корректируйте размер позиции в зависимости от рыночных условий, контролируйте риск
Оптимизация параметров для различных торговых сортов
Повышение эффективности стратегии в сочетании с более высокими стратегиями, такими как машинное обучение
В целом, эта стратегия является простой стратегией отслеживания тенденций на основе двойной движущейся средней линии. Идея стратегии ясна, ее легко реализовать, параметры могут быть скорректированы гибко, и она подходит как входная стратегия для количественной торговли. Однако в этой стратегии есть проблемы, такие как отслеживание падения, задержка сигнала и т. Д., которые требуют дальнейшей оптимизации для контроля риска и повышения стабильности. В целом, эта стратегия предоставляет хорошую возможность для начинающих изучать алгоритм торговли и является основой для продвинутой стратегии.
/*backtest
start: 2023-10-14 00:00:00
end: 2023-11-13 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 12/11/2017
// The SMI Ergodic Indicator is the same as the True Strength Index (TSI) developed by
// William Blau, except the SMI includes a signal line. The SMI uses double moving averages
// of price minus previous price over 2 time frames. The signal line, which is an EMA of the
// SMI, is plotted to help trigger trading signals. Adjustable guides are also given to fine
// tune these signals. The user may change the input (close), method (EMA), period lengths
// and guide values.
// You can use in the xPrice any series: Open, High, Low, Close, HL2, HLC3, OHLC4 and ect...
//
// WARNING:
// - For purpose educate only
////////////////////////////////////////////////////////////
strategy(title="SMI Ergodic Oscillator")
fastPeriod = input(4, minval=1)
slowPeriod = input(8, minval=1)
SmthLen = input(3, minval=1)
TopBand = input(0.5, step=0.1)
LowBand = input(-0.5, step=0.1)
reverse = input(false, title="Trade reverse")
// hline(0, color=gray, linestyle=dashed)
// hline(TopBand, color=red, linestyle=line)
// hline(LowBand, color=green, linestyle=line)
xPrice = close
xPrice1 = xPrice - xPrice[1]
xPrice2 = abs(xPrice - xPrice[1])
xSMA_R = ema(ema(xPrice1,fastPeriod),slowPeriod)
xSMA_aR = ema(ema(xPrice2, fastPeriod),slowPeriod)
xSMI = xSMA_R / xSMA_aR
xEMA_SMI = ema(xSMI, SmthLen)
pos = iff(xEMA_SMI < xSMI, -1,
iff(xEMA_SMI > xSMI, 1, nz(pos[1], 0)))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1, 1, pos))
if (possig == 1)
strategy.entry("Long", strategy.long)
if (possig == -1)
strategy.entry("Short", strategy.short)
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(xSMI, color=green, title="Ergotic SMI")
plot(xEMA_SMI, color=red, title="SigLin")