동력 지수 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 트렌드 다음 전략입니다. 이동 평균 크로스오버를 사용하여 트렌드 방향을 결정하고 강력한 리스크 제어, 낮은 구현 비용 및 안정적인 이익과 같은 장점을 가지고 있습니다. 일부 결함이 있지만 전략은 인덱스 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)

더 많은