이것은 이동 평균을 기반으로 한 지수 ETF 동적 양 트렌드 추종 전략이다. 그것은 빠른 이동 평균과 느린 이동 평균의 방향과 기울기를 교차하여 트렌드 방향을 판단하여 낮은 위험 지수 ETF 자산의 동적 양 트렌드 추종을 구현한다.
이 전략은 50주기 및 150주기 이동 평균을 사용한다. 빠른 이동 평균 위에 느린 이동 평균을 가로질러, 빠른 이동 평균의 기울기가 경착값보다 크면, 트렌드 전환이라고 간주하고, 더 많은 것을 한다. 빠른 이동 평균 아래에 느린 이동 평균을 가로질러, 또는 빠른 이동 평균의 기울기가 경착값보다 작을 때, 트렌드 역전이라고 간주하고, 평소 위치한다.
이 전략은 간단하고 직접적으로 이동 평균의 방향과 기울기를 사용하여 시장 추세를 판단하여 곡선 조화를 피하고 위험을 효과적으로 제어합니다. 이동 평균은 자연적으로 소음 제거 특성을 가지고 있으며 시장 소음을 효과적으로 필터링 할 수 있습니다.
이것은 낮은 위험의 지수 ETF이며 다음과 같은 장점을 가진 동적 경향을 따르는 전략입니다.
이 전략에는 몇 가지 위험도 있습니다.
대응방법:
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
이 전략은 낮은 위험, 간단하게 실행 인덱스 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)