Эта стратегия использует 5-дневные и 78-дневные пересечения MA для генерирования сигналов преследования импульса, направленных на захват краткосрочных прорывов цен.
Вычислить 3-дневные, 78-дневные и 195-дневные перемещающиеся средние.
3-дневный перекресток сверх 195-дневных сигналов покупки.
Когда 3-дневный находится выше 78-дневного, а 78-дневный выше 195-дневного, рассматривается формируемый канал восходящего тренда, который также запускает покупку.
Установите динамическую линию получения прибыли 6ATR, продавайте, когда цена опустится ниже линии.
Продай сигнал, когда 3-дневный пересекает обратно ниже 195-дневного.
Многочисленные перекрестки MA эффективно фильтруют ложные прорывы.
Динамическое получение прибыли избегает ударов.
Бакт-тест показывает среднее время хранения 2 часа на одну сделку, подходит для краткосрочной торговли импульсом.
Максимальное снижение контролируется около 20%.
Фиксированные параметры MA не могут адаптироваться к изменяющимся рынкам.
1-летний период выборки ограничен, необходимы более крупные данные для проверки стратегии.
Параметры получения прибыли и остановки потерь нуждаются в оптимизации для контроля рисков.
Не адаптируется к ценовым разрывам.
Высокие транзакционные издержки.
Проверьте различные комбинации MA для оптимизации.
Оптимизировать получение прибыли и остановку убытков для баланса риска и прибыли.
Установите фильтры для уменьшения вероятности попадания в ловушку.
Оптимизируйте размер позиции, пирамида на силе.
Испытания на различных продуктах и более длительные сроки.
Симуляция Монте-Карло для оценки максимального расхода.
Эта стратегия идентифицирует восходящий тренд с пересечениями MA и устанавливает динамические правила остановки прибыли с хорошими результатами бэкстеста. Но ограниченный период выборки, стабильность парама остается проверенной и не удается на пробелах. Требует дальнейшего бэкстестинга по более крупным наборам данных, больше фильтров для уменьшения ложных сигналов, оптимизированных параметров остановки прибыли, оценки затрат на транзакции. Если пройти комплексные тесты оптимизации и проверки, может стать надежной краткосрочной системой преследования импульса.
/*backtest start: 2022-09-14 00:00:00 end: 2023-09-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // © FinTasticTrading 2021/2/14 // This is a 5 day moving average crossing long strategy, used in short term momentum trading strategy. // Momentum trading Strategy: When S&P 500 index is at up trend (or above 60 sma), buy 10+ stocks in top 20% stock RS ranking at equal weight using this MA5X_L strategy. Change stocks when any stock exited by algorithm. // Back test start since 2020/7/1, each long entry for condition 1 is $30000, condition 2 is $20000, with max of 2 long positions. // Setup: 10 minutes chart // Buy condition 1) 3 wma cross up 180 wma (5day) 2) 3wma > 60wma > 180wma UP Trend Arrangement (UTA) // Exit condition 1) 3 wma cross under 180 wma 2) position profit > 20% and 3 wma cross under 6 ATRs line (green) //@version=4 strategy("MA5X_L", overlay=true, pyramiding=2,default_qty_type=strategy.cash, default_qty_value=100000) s_len = input( 3 ) m_len = input( 78 ) // 2 day moving average l_len = input( 195) // equal to 5 Day moving average xl_len = input(390) // 10 day moving average //Draw WMAs s_ma = wma(close,s_len) m_ma = wma(close,m_len) l_ma = wma(close,l_len) xl_ma = sma(close,xl_len) plot(s_ma, color=color.yellow, linewidth=2) plot(m_ma, color=color.fuchsia, linewidth=2) plot(l_ma, color=color.blue, linewidth=2) plot(xl_ma, color = color.gray, linewidth=2) //ATR Stop Profit , length = 40 or 1 day Periods = input(title="ATR Period", type=input.integer, defval=40) Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=6.0) sl=hl2-(Multiplier*atr(Periods)) sl1 = nz(sl[1], sl) sl := s_ma[1] > sl1 ? max(sl, sl1) : sl plot(strategy.position_size > 0 ? sl:na, title="Stop Loss", style=plot.style_linebr, linewidth=2, color=color.green) //Backtest since condition100 = time>=timestamp(2020, 07, 01, 00, 00) //Long Entry Condition 1 : s_ma Cross UP l_ma if crossover(s_ma, l_ma) and condition100 strategy.entry("X Up", strategy.long, qty = 30000/close, comment="X Up") //Long Entry Condition 2 : s_ma > m_ma > l_ma condition31 = s_ma>m_ma and m_ma>l_ma condition32 = condition31[1]==false and condition31 == true and condition100 strategy.entry("UTA", strategy.long, qty = 20000/close, when = condition32, comment="UTA") //Long Exit Condition 1 : 3 wma cross under 180 wma condition50 = crossunder(s_ma, l_ma) strategy.close_all(when = condition50, comment="X Dn") //Long Exit Condition 2 : position profit > 20% and 3 wma cross under 6 ATRs line (green) strategy.close_all(when = crossunder(close,sl) and strategy.openprofit>30000*0.2, comment="Stop")