Ini adalah trend indeks momentum ETF mengikut strategi berdasarkan purata bergerak. Ia menggunakan persilangan dan kemiringan purata bergerak cepat dan perlahan untuk menentukan arah trend untuk trend momentum risiko rendah berikut aset ETF indeks.
Strategi ini menggunakan purata bergerak 50 tempoh dan 150 tempoh. Apabila purata bergerak pantas melintasi purata bergerak perlahan, dan kemiringan purata bergerak pantas lebih besar daripada ambang, ia menandakan pembalikan trend menaik untuk kemasukan panjang. Apabila purata bergerak pantas melintasi di bawah purata bergerak perlahan, atau kemiringan purata bergerak pantas kurang daripada ambang, ia menandakan pembalikan trend menurun untuk kedudukan keluar.
Strategi ini hanya menggunakan arah dan kemiringan purata bergerak untuk menentukan trend pasaran, mengelakkan terlalu banyak dan mengawal risiko dengan berkesan.
Ini adalah trend ETF indeks momentum berisiko rendah mengikut strategi dengan kelebihan berikut:
Terdapat juga beberapa risiko:
Penyelesaian:
Terdapat beberapa bidang strategi ini boleh dioptimumkan lebih lanjut:
Kesimpulannya, ini adalah strategi trend ETF indeks momentum yang berisiko rendah dan mudah dilaksanakan. Ia menentukan arah trend menggunakan persilangan purata bergerak dan mempunyai kelebihan seperti kawalan risiko yang kuat, kos pelaksanaan yang rendah dan keuntungan yang stabil. Walaupun terdapat beberapa kelemahan, strategi ini boleh ditingkatkan lagi dalam banyak aspek untuk menjadi alat yang berkesan untuk peruntukan aset ETF indeks.
/*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)