Trend Indeks Momentum ETF Mengikut Strategi

Penulis:ChaoZhang, Tarikh: 2023-12-05 15:13:25
Tag:

img

Ringkasan

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.

Logika Strategi

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.

Analisis Kelebihan

Ini adalah trend ETF indeks momentum berisiko rendah mengikut strategi dengan kelebihan berikut:

  1. Keupayaan kawalan risiko yang kuat. purata bergerak menapis bunyi pasaran untuk kawalan risiko yang berkesan.
  2. Kos pelaksanaan yang rendah. Hanya purata bergerak mudah yang digunakan, menghasilkan kos yang rendah dan pelaksanaan yang mudah.
  3. Keuntungan yang stabil. ETF indeks sendiri mempunyai turun naik yang rendah, digabungkan dengan mengikuti trend, pulangan yang berlebihan yang stabil dapat dicapai.
  4. Kebolehsesuaian yang tinggi. Banyak parameter yang boleh diselaraskan membolehkan pengoptimuman untuk ETF indeks yang berbeza.

Analisis Risiko

Terdapat juga beberapa risiko:

  1. Menggunakan purata bergerak untuk menentukan trend mungkin terlepas pembalikan cepat.
  2. Parameter sensitif. tetapan parameter yang tidak betul boleh mengakibatkan overtrading atau peluang yang hilang.
  3. Ketergantungan prestasi pada keadaan pasaran.

Penyelesaian:

  1. Sertakan penunjuk lain untuk menentukan pembalikan cepat.
  2. Uji dan optimumkan parameter.
  3. Sesuaikan parameter secara dinamik berdasarkan keadaan pasaran yang berubah.

Arahan pengoptimuman

Terdapat beberapa bidang strategi ini boleh dioptimumkan lebih lanjut:

  1. Menggunakan penunjuk lain seperti MACD, KD untuk melengkapkan strategi.
  2. Menggabungkan logik stop loss untuk mengawal risiko lebih lanjut.
  3. Mengoptimumkan tempoh purata bergerak untuk menyesuaikan lebih banyak ETF indeks.
  4. Sesuaikan parameter secara dinamik agar sesuai dengan persekitaran pasaran yang berbeza.

Kesimpulan

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)

Lebih lanjut