Индекс импульса тенденция ETF после стратегии

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

img

Обзор

Это динамический индекс 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. Она определяет направления тренда с использованием пересечений скользящих средних и имеет такие преимущества, как сильный контроль рисков, низкие затраты на реализацию и стабильные прибыли.


/*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)

Больше