Три стратегии перехода SMA

Автор:Чао Чжан, Дата: 2023-12-25 12:06:36
Тэги:

img

Обзор

Стратегия Three SMA Crossover Momentum - это типичная стратегия технического индикатора, которая отслеживает тенденции рынка. Она сочетает в себе простые скользящие средние за 16-, 36- и 72-е периоды и использует их бычьи и медвежие кроссоверы для определения рыночных тенденций, а также адаптивную скользящую среднюю Кауфмана (KAMA) в качестве фильтра для занятия длинных или коротких позиций, когда направление тренда относительно ясно.

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

Основными показателями этой стратегии являются 16-, 36- и 72-периодные простые скользящие средние. Когда короткосрочная SMA пересекает более длительный период вверх, это сигнализирует о том, что рынок вступает в восходящий тренд. Когда короткосрочная SMA пересекает ниже более длительного периода вниз, это сигнализирует о том, что рынок вступает в нисходящий тренд. Например, когда 16-SMA пересекает 36-SMA и 72-SMA, это бычий сигнал. А когда 16-SMA пересекает ниже 36-SMA и 72-SMA, это медвежий сигнал.

Адаптивная скользящая средняя Кауфмана (KAMA) служит фильтром для предотвращения ошибочных сигналов, когда тенденция неясна.

Стратегия отслеживает ситуации перекрестки SMA, чтобы занять длинные или короткие позиции, когда тенденция относительно ясна. Длинное условие - 16-SMA пересечение 36-SMA и 72-SMA с линейной KAMA. Короткое условие - 16-SMA пересечение ниже 36-SMA и 72-SMA с линейной KAMA.

Анализ преимуществ

Преимущества этой стратегии:

  1. Комбинирование многопериодных СМС позволяет эффективно отслеживать среднесрочные и долгосрочные рыночные тенденции
  2. Введение адаптивной скользящей средней в качестве фильтра может уменьшить неправильные сигналы, когда тенденция неясна
  3. Простая в реализации, подходящая для автоматизированной или программной торговли

Анализ рисков

Эта стратегия также сопряжена с некоторыми рисками:

  1. Частые неэффективные сигналы могут возникать на рыночных диапазонах из-за частых перекресток SMA.
  2. Стоп-лосс не установлен, убытки могут расширяться
  3. Разработанный для высоковолатильных крипторынков, может быть менее эффективен на менее волатильных рынках

Риски могут быть уменьшены путем настройки параметров SMA, установления ограничений стоп-лосса или применения только к очень волатильным рынкам.

Руководство по оптимизации

Стратегия может быть оптимизирована следующими способами:

  1. Испытать различные комбинации параметров SMA, чтобы найти оптимальный
  2. Добавление показателей объема торговли или волатильности в качестве дополнительных условий фильтрации
  3. Установка механизмов остановки потерь
  4. Сочетание других показателей для определения сроков входа
  5. Оптимизация размеров позиций, корректировка рисков путем постепенного добавления и уменьшения позиций

Заключение

Стратегия Three SMA Crossover Momentum - довольно классическая и практичная стратегия, следующая за трендом в целом. Она эффективно оценивает средне- и долгосрочные рыночные тенденции с помощью многопериодных перекрестных SMA и фильтрует некоторый шум. Она может служить одним из ориентировочных индикаторов времени для позиционной торговли.


/*backtest
start: 2023-11-24 00:00:00
end: 2023-12-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Wielkieef


//@version=5
strategy(title='Three SMA-crossover strategy [30min] ', overlay=true, pyramiding=1, initial_capital=10000, default_qty_type=strategy.cash, default_qty_value=10000, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0.03)

src = close

Length1 = input.int(16, title='  1-SMA Lenght', minval=1, group='SMA')
Length2 = input.int(36, title='  2-SMA Lenght', minval=1, group='SMA')
Length3 = input.int(72, title='  3-SMA Lenght', minval=1, group='SMA')
SMA1 = ta.sma(close, Length1)
SMA2 = ta.sma(close, Length2)
SMA3 = ta.sma(close, Length3)

Long_ma = SMA1 > SMA2 and SMA2 > SMA3
Short_ma = SMA1 < SMA2 and SMA2 < SMA3

LengthMainSMA = input.int(100, title='  Trend SMA ', minval=1)

SMAas = ta.sma(src, LengthMainSMA)

//  Powered Kaufman Adaptive Moving Average by alexgrover (modificated by Wielkieef)
lengthas = input.int(50, title='   KAMA Lenght')
sp = input.bool(true, title='  Self Powered')

er = math.abs(ta.change(close, lengthas)) / math.sum(math.abs(ta.change(close)), lengthas)
pow = sp ? 1 / er : 2
per = math.pow(math.abs(ta.change(close, lengthas)) / math.sum(math.abs(ta.change(close)), lengthas), pow)
a = 0.
a := per * src + (1 - per) * nz(a[1], src)
mad4h = 0.
a_f = a / a[1] > .999 and a / a[1] < 1.001

///.

Bar_color = close > SMAas ? color.green : Long_ma ? color.blue : Short_ma ? color.maroon : color.gray

barcolor(color=Bar_color)

long_cond = Long_ma and SMAas < close and not a_f and close > a

short_cond = Short_ma and SMAas > close and not a_f and close < a
  
long_stop = Short_ma and SMAas < close

short_stop = Long_ma and SMAas > close

SMA1plot = plot(SMA1, color=Bar_color, linewidth=2)
SMA2plot = plot(SMA2, color=Bar_color, linewidth=4)
SMA3plot = plot(SMA3, color=Bar_color, linewidth=2)

fill(SMA1plot,SMA3plot,title="RANGE " ,color = color.new(Bar_color, 50))



if  long_cond
    strategy.entry('Long', strategy.long)

if  short_cond
    strategy.entry('Short', strategy.short)

strategy.close_all(when=long_stop or short_stop)



//by wielkieef

Больше