Đây là một xu hướng ETF chỉ số động lực theo chiến lược dựa trên trung bình động. Nó sử dụng sự chéo chéo và độ nghiêng của trung bình động nhanh và chậm để xác định hướng xu hướng cho xu hướng động lực rủi ro thấp theo xu hướng của tài sản ETF chỉ số.
Chiến lược này sử dụng trung bình di chuyển 50 giai đoạn và 150 giai đoạn. Khi trung bình di chuyển nhanh vượt qua trung bình di chuyển chậm, và độ nghiêng của trung bình di chuyển nhanh lớn hơn ngưỡng, nó báo hiệu sự đảo ngược xu hướng tăng cho bước vào dài. Khi trung bình di chuyển nhanh vượt dưới trung bình di chuyển chậm, hoặc độ nghiêng của trung bình di chuyển nhanh thấp hơn ngưỡng, nó báo hiệu sự đảo ngược xu hướng giảm cho các vị trí ra.
Chiến lược chỉ đơn giản là sử dụng hướng và độ nghiêng của đường trung bình động để xác định xu hướng thị trường, tránh quá mức và kiểm soát hiệu quả rủi ro.
Đây là xu hướng ETF chỉ số đà rủi ro thấp theo chiến lược với những lợi thế sau:
Ngoài ra còn có một số rủi ro:
Giải pháp:
Có một vài lĩnh vực mà chiến lược này có thể được tối ưu hóa thêm:
Tóm lại, đây là một chiến lược theo xu hướng ETF chỉ số đà giảm rủi ro, dễ thực hiện. Nó xác định hướng xu hướng bằng cách sử dụng đường chéo trung bình động và có những ưu điểm như kiểm soát rủi ro mạnh mẽ, chi phí thực hiện thấp và lợi nhuận ổn định. Mặc dù có một số lỗ hổng, chiến lược có thể được cải thiện thêm trong nhiều khía cạnh để trở thành một công cụ hiệu quả cho phân bổ tài sản ETF chỉ số.
/*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)