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


Дата создания: 2023-12-05 15:13:25 Последнее изменение: 2023-12-05 15:13:25
Копировать: 0 Количество просмотров: 681
1
Подписаться
1619
Подписчики

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

Обзор

Это стратегия динамического количественного трендового отслеживания индекса ETF, основанная на движущихся средних. Она использует перекрестные направления и наклонности быстрых и медленных движущихся средних для определения направления тенденции и реализует динамическое количественное трендовое отслеживание активов индекса ETF с низким риском.

Стратегический принцип

Эта стратегия использует движущиеся средние с 50 и 150 циклами. Когда движущиеся средние пересекают движущиеся средние на быстрых движущихся средних, и скольжение быстрых движущихся средних больше, чем порог, считается, что тенденция изменилась, и больше; когда движущиеся средние пересекают медленные средние ниже быстрых движущихся средних, или скольжение быстрых движущихся средних меньше, чем порог, считается, что тенденция изменилась, и позиция равномерна.

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

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

Это низкорисковый индексный ETF с динамичной стратегией трендового отслеживания, обладающий следующими преимуществами:

  1. Сильная способность к управлению рисками. С помощью фильтрации рыночного шума с помощью движущихся средних эффективно контролировать риски.
  2. Низкая стоимость реализации. Использование только простой скользящей средней, низкая стоимость реализации, легко реализовать.
  3. Устойчивый доход. Индекс ETF сам по себе колеблется мало, и в сочетании с тенденцией можно получить стабильный дополнительный доход.
  4. Высокая адаптивность. Большое количество регулируемых параметров, которые могут быть оптимизированы для различных индексов ETF.

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

Однако эта стратегия также несет в себе некоторые риски:

  1. Может быть пропущена быстрая реверсия. Используйте движущуюся среднюю для оценки тенденции, может быть пропущена быстрая реверсия.
  2. Чувствительные к параметрам. Неправильная настройка параметров может привести к избыточному количеству сделок или упущенным возможностям.
  3. Эффективность меняется в зависимости от рыночной обстановки.

Решение проблемы:

  1. В сочетании с другими показателями, быстрое обращение вспять.
  2. Тестирование и оптимизация параметров.
  3. Параметры корректируются в зависимости от динамики рыночной среды.

Направление оптимизации

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

  1. Повышение эффективности стратегии с использованием других показателей, таких как MACD, KD и т. д.
  2. Дополнительная логика сдерживания убытков для дальнейшего контроля риска.
  3. Оптимизация циклических параметров скользящих средних для большего количества индексов ETF.
  4. Динамическая корректировка параметров, адаптирующаяся к изменению рыночной среды.

Подвести итог

Эта стратегия представляет собой низкорисковую, простую и легко реализуемую стратегию динамического количественного тренда в индексных ETF. Она использует пересечение движущихся средних для определения направления тренда, обладает преимуществами сильного контроля риска, обеспечения низкой стоимости и стабильной прибыли. Эта стратегия также имеет определенные недостатки, но может быть дополнительно оптимизирована различными способами, что делает ее эффективным инструментом для распределения активов индексных ETF.

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

//@version=4
//please use on daily SPY, or other indexes only
strategy("50-150 INDEX TREND FOLLOWING", overlay=true)

//user input
fastSMA = input(title="Fast Moving Average (Int)",type=input.integer,minval=1,maxval=1000,step=1,defval=50,confirm=false)
slowSMA = input(title="Slow Moving Average (Int)",type=input.integer,minval=1,maxval=1000,step=1,defval=150,confirm=false)
longSlopeThreshold = input(title="Bullish Slope Angle (Deg)",type=input.integer,minval=-90,maxval=90,step=1,defval=5,confirm=false)
shortSlopeThreshold = input(title="Bearish Slope Angle (Deg)",type=input.integer,minval=-90,maxval=90,step=1,defval=-5,confirm=false)
atrValue = input(title="Average True Range (Int)",type=input.integer,minval=1,maxval=100,step=1,defval=14,confirm=false)
risk = input(title="Risk (%)",type=input.integer,minval=1,maxval=100,step=1,defval=100,confirm=false)

//create indicator
shortSMA = sma(close, fastSMA)
longSMA = sma(close, slowSMA)

//calculate ma slope
angle(_source) =>
    rad2degree=180/3.14159265359
    ang=rad2degree*atan((_source[0] - _source[1])/atr(atrValue)) 

shortSlope=angle(shortSMA)
longSlope=angle(longSMA)

//specify crossover conditions
longCondition = (crossover(shortSMA, longSMA) and (shortSlope > longSlopeThreshold)) or ((close > shortSMA) and (shortSMA > longSMA) and (shortSlope > longSlopeThreshold))
exitCondition = crossunder(shortSMA, longSMA) or (shortSlope < shortSlopeThreshold)
strategy.initial_capital = 50000
//units to buy
amount = (risk / 100) * (strategy.initial_capital + strategy.netprofit)
units = floor(amount / close)

//long trade
if (longCondition and strategy.position_size == 0)
    strategy.order("Long", strategy.long, units)

//close long trade
if (exitCondition and strategy.position_size > 0)
    strategy.order("Exit", strategy.short, strategy.position_size)

// Plot Moving Average's to chart
plot(shortSMA, color=color.blue)
plot(longSMA, color=color.green)