Количественная торговая стратегия на основе SMA и EMA


Дата создания: 2023-12-12 12:31:25 Последнее изменение: 2023-12-12 12:31:25
Копировать: 0 Количество просмотров: 669
1
Подписаться
1621
Подписчики

Количественная торговая стратегия на основе SMA и EMA

Обзор стратегии

Эта стратегия называется количественная стратегия торговли на основе SMA, EMA, основной идеей которой является объединение среднего значения SMA и среднего значения EMA с различными параметрами для построения торгового сигнала.

2. Принципы стратегии

  1. Вычислите средние значения SMA9, SMA50, SMA180 и EMA20 для цены закрытия.

  2. В зависимости от отношения цены закрытия к уровню поддержки (sup) и сопротивления (res) определяются сигналы покупки и продажи. При прорыве близкого уровня (sup) появляется сигнал покупки (BuySignal), а при прорыве близкого уровня (res) появляется сигнал продажи (SellSignal).

  3. При покупке сигнального триггера выполнять стратегию открытия многоголовной позиции; при продаже сигнального триггера - ликвидировать многоголовую позицию.

  4. При продаже сигнального триггера выполняйте стратегию открытия пустого позиции; при покупке сигнального триггера - ликвидируйте пустую позицию.

Третье, анализ стратегических преимуществ.

  1. Комбинируя несколько равномерных линий для формирования торгового сигнала, повышается точность и стабильность сигнала.

  2. Вычисление динамических уровней поддержки и сопротивления, чтобы сделать торговый сигнал более обоснованным.

  3. При использовании средней и низкой волатильной средней линии, которая уделяет внимание долгосрочным тенденциям, а также учитывает краткосрочные прорывы, повышает стратегические возможности для получения прибыли.

  4. Поддержка двусторонней торговли на форекс, которая может принести прибыль как в трендовых, так и в шокирующих ситуациях.

Анализ стратегических рисков

  1. В средней SMA существует задержка, которая может привести к задержке сигналов о покупке и продаже, что может повлиять на эффективность стратегии.

  2. Если не установить механизм остановки убытков, то убытки от хранения могут увеличиться.

  3. Данные отслеживания недостаточны, и параметры в диске должны быть скорректированы в соответствии с рынком.

  4. Поскольку они зависят от технических индикаторов, которые формируют торговые сигналы, они не могут справиться с последствиями крупного Чёрного Света.

Решение риска:

  1. адекватная корректировка среднелинейных циклов SMA;
  2. Установление разумного стоп-листа;
  3. Повышение количества проб и корректировка параметров;
  4. Необходимо улучшить механизмы управления ветром.

Пятое: оптимизация стратегии

  1. Повышение убыточного механизма, основанного на волатильности, с целью ограничения убытков.

  2. Добавление моделей машинного обучения для определения тенденций, которые помогают формировать торговые сигналы.

  3. Добавление модуля анализа ключевых ценовых точек для повышения точности резистентных суждений.

  4. Испытание различных комбинаций среднелинейных показателей для поиска наиболее оптимальных.

В-шестых, итоги стратегии

Эта стратегия использует технические показатели средней линии SMA и средней линии EMA для построения торговых сигналов, а также рассчитывает динамические уровни поддержки и сопротивления, создавая более полную логику стратегии купли-продажи. Стратегия имеет преимущества гибкости параметров показателей, двусторонней торговли и адаптации к различным ситуациям, но также сталкивается с такими проблемами, как задержка средней линии, несовершенное остановка убытков.

]

Исходный код стратегии
/*backtest
start: 2023-12-10 00:00:00
end: 2023-12-11 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="StrategySMA 9/50/180 | EMA 20 | BUY/SELL", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

//SMA and EMA code
smaInput1 = input(9, title="SMA1")
smaInput2 = input(50, title="SMA2")
smaInput3 = input(180, title="SMA3")
emaInput1 = input(20, title="EMA1")
sma1 = sma(close, smaInput1)
sma2 = sma(close, smaInput2)
sma3 = sma(close, smaInput3)
EMA1 = ema(close, emaInput1)
plot(sma1, color= color.red , title="SMA1")
plot(sma2, color = color.blue, title="SMA2")
plot(sma3, color= color.white, title="SMA3")
plot(EMA1, color = color.yellow, title="EMA1")

no=input(3,title="BUY/SELL Swing")
Barcolor=input(false,title="BUY/SELL Bar Color")
Bgcolor=input(false,title="BUY/SELL Background Color")
res=highest(high,no)
sup=lowest(low,no)
avd=iff(close>res[1],1,iff(close<sup[1],-1,0))
avn=valuewhen(avd!=0,avd,0)
tsl=iff(avn==1,sup,res)

// Buy/sell signals
BuySignal = crossover(close, tsl)
SellSignal = crossunder(close, tsl)

// Enter long position
strategy.entry("Buy", strategy.long, when=BuySignal)

// Exit long position
strategy.exit("Sell", "Buy", when=SellSignal)

// Enter short position
strategy.entry("Sell", strategy.short, when=SellSignal)

// Exit short position
strategy.exit("Buy", "Sell", when=BuySignal)

colr = close>=tsl ? color.green : close<=tsl ? color.red : na
plot(tsl, color=colr)