Стратегия двойного импульса

Автор:Чао Чжан, Дата: 2023-09-28 15:03:57
Тэги:

Обзор

Стратегия двойного импульса использует быстрые и медленные индикаторы импульса для генерации сигналов входа и выхода.

Стратегия позволяет настроить длинный/короткий или только длинный режим. Она также позволяет включить фиксированный стоп-лосс или проигнорировать его, так что стратегия действует исключительно на сигналы входа и выхода.

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

Стратегия использует быстрый период импульса (дефолт 5 дней) и медленный период импульса (дефолт 10 дней).

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

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

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

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

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

  • Использование двойного импульса обеспечивает более точное обнаружение изменений тренда и меньше ложных сигналов.

  • Быстрый период импульса быстро реагирует на изменения рынка, в то время как медленный период фильтрует шум.

  • Гибкие режимы длинной/короткой торговли или только длинной торговли соответствуют различным торговым предпочтениям.

  • Необязательное ограничение потери контролирует риск.

  • Быстродействующий характер делает его подходящим для торговли трендом в суточные или более длительные временные рамки для получения огромных прибылей.

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

  • Двойной импульс зависит от показателей выше/ниже 0, что имеет некоторое отставание.

  • Стратегия более зависит от тренда и может иметь более низкую производительность на рынках с ограниченным диапазоном с большим количеством сдвигов.

  • Если не использовать стоп-лосс, рискуют большими потерями.

  • Неправильный выбор символов или сроков может привести к плохим результатам.

Чтобы контролировать риски, настраивайте периоды импульса, используйте разумный фиксированный процент стоп-лосса, выбирайте сильные трендовые символы и выполняйте ежедневные или более длительные временные рамки.

Возможности для расширения

Стратегия может быть улучшена несколькими способами:

  1. Добавьте такие фильтры, как MACD или RSI, чтобы избежать ошибочных сделок в поворотные моменты тренда.

  2. Добавить адаптивную потерю стопа для корректировки дистанции стопа на основе волатильности рынка.

  3. Оптимизировать параметры импульса для различных символов с помощью пошаговой оптимизации, анализа ходьбы вперед и т. Д.

  4. Добавить правила размещения позиций для корректировки нового размера позиции на основе прошлых результатов.

  5. Различить длинные и короткие рыночные условия для асимметричных входов и выходов.

Заключение

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


/*backtest
start: 2023-08-28 00:00:00
end: 2023-09-27 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/
// © QuantCT

//@version=4
strategy("Momentum Strategy Idea",
         shorttitle="Momentum", 
         overlay=false,
         pyramiding=0,     
         default_qty_type=strategy.percent_of_equity, 
         default_qty_value=100, 
         initial_capital=1000,           
         commission_type=strategy.commission.percent, 
         commission_value=0.075)

// ____ Inputs

fast_period = input(title="Fast Period", defval=5) 
slow_period = input(title="Slow Period", defval=10)
long_only = input(title="Long Only", defval=false)
slp = input(title="Stop-loss (%)", minval=1.0, maxval=25.0, defval=5.0)
use_sl = input(title="Use Stop-Loss", defval=false)

// ____ Logic

mom_fast = mom(close, fast_period)
mom_slow = mom(close, slow_period)
    
enter_long = (mom_slow > 0 and mom_fast > 0)
exit_long = (mom_slow < 0 or mom_fast < 0)
enter_short = (mom_slow < 0 and mom_fast < 0)
exit_short = (mom_slow > 0 or mom_fast > 0)

strategy.entry("Long", strategy.long, when=enter_long)
strategy.close("Long", when=exit_long) 
if (not long_only)
    strategy.entry("Short", strategy.short, when=enter_short)
    strategy.close("Short", when=exit_short) 
   
// ____ SL

sl_long = strategy.position_avg_price * (1- (slp/100))
sl_short = strategy.position_avg_price * (1 + (slp/100))
if (use_sl)
    strategy.exit(id="SL", from_entry="Long", stop=sl_long)
    strategy.exit(id="SL", from_entry="Short", stop=sl_short)
    
// ____ Plots

colors = 
 enter_long ? #27D600 :
 enter_short ? #E30202 :
 color.orange

mom_fast_plot = plot(mom_fast, color=colors)
mom_slow_plot = plot(mom_slow, color=colors)
fill(mom_fast_plot, mom_slow_plot, color=colors, transp=50)








Больше