Momentum Index ETF Trend Mengikuti Strategi

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

img

Gambaran umum

Ini adalah tren indeks momentum ETF mengikuti strategi berdasarkan rata-rata bergerak. Ini menggunakan persilangan dan kemiringan rata-rata bergerak cepat dan lambat untuk menentukan arah tren untuk tren momentum risiko rendah mengikuti aset ETF indeks.

Logika Strategi

Strategi ini menggunakan rata-rata bergerak 50 periode dan 150 periode. Ketika rata-rata bergerak cepat melintasi rata-rata bergerak lambat, dan kemiringan rata-rata bergerak cepat lebih besar dari ambang batas, itu menandakan pembalikan tren naik untuk entri panjang. Ketika rata-rata bergerak cepat melintasi di bawah rata-rata bergerak lambat, atau kemiringan rata-rata bergerak cepat kurang dari ambang batas, itu menandakan pembalikan tren menurun untuk posisi keluar.

Strategi ini hanya memanfaatkan arah dan kemiringan moving average untuk menentukan tren pasar, menghindari overfit dan mengontrol risiko secara efektif.

Analisis Keuntungan

Ini adalah tren ETF indeks momentum berisiko rendah yang mengikuti strategi dengan keuntungan berikut:

  1. Kemampuan pengendalian risiko yang kuat. Rata-rata bergerak memfilter kebisingan pasar untuk pengendalian risiko yang efektif.
  2. Biaya pelaksanaan yang rendah. Hanya menggunakan rata-rata bergerak sederhana, menghasilkan biaya rendah dan pelaksanaan yang mudah.
  3. Index ETF sendiri memiliki volatilitas rendah, dikombinasikan dengan mengikuti tren, hasil yang lebih stabil dapat dicapai.
  4. Adaptifitas tinggi. Banyak parameter yang dapat disesuaikan memungkinkan optimasi untuk ETF indeks yang berbeda.

Analisis Risiko

Ada juga beberapa risiko:

  1. Menggunakan rata-rata bergerak untuk menentukan tren dapat melewatkan pembalikan cepat.
  2. Pengaturan parameter yang tidak tepat dapat menyebabkan overtrading atau kehilangan peluang.
  3. Ketergantungan kinerja pada kondisi pasar.

Solusi:

  1. Sertakan indikator lain untuk menentukan pembalikan cepat.
  2. Uji dan optimalkan parameter.
  3. Sesuaikan parameter secara dinamis berdasarkan perubahan kondisi pasar.

Arahan Optimasi

Ada beberapa bidang strategi ini dapat lebih dioptimalkan:

  1. Menggunakan indikator lain seperti MACD, KD untuk melengkapi strategi.
  2. Masukkan logika stop loss untuk mengendalikan risiko lebih lanjut.
  3. Mengoptimalkan periode rata-rata bergerak untuk menyesuaikan lebih banyak ETF indeks.
  4. Mengatur parameter secara dinamis agar sesuai dengan lingkungan pasar yang berbeda.

Kesimpulan

Kesimpulannya, ini adalah strategi indeks momentum ETF yang berisiko rendah dan mudah diimplementasikan. Ini menentukan arah tren menggunakan crossover rata-rata bergerak dan memiliki keuntungan seperti pengendalian risiko yang kuat, biaya implementasi yang rendah dan keuntungan yang stabil. Meskipun beberapa kekurangan ada, strategi dapat ditingkatkan lebih lanjut dalam banyak aspek untuk menjadi alat yang efektif untuk alokasi 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 banyak