HYE Mean Reversion SMA Strategi

Penulis:ChaoZhang, Tanggal: 2023-12-15 16:51:23
Tag:

img

Gambaran umum

HYE Mean Reversion SMA Strategy adalah strategi perdagangan reversi rata-rata yang menggunakan rata-rata bergerak sederhana dan indeks kekuatan relatif (RSI). Ini menghasilkan sinyal beli dan jual ketika harga menyimpang dari rata-rata bergerak dengan persentase tertentu, dikombinasikan dengan penyaringan indikator RSI. Ini adalah strategi perdagangan jangka pendek.

Logika Strategi

Strategi ini terutama didasarkan pada aturan berikut:

  1. Ketika rata-rata bergerak sederhana 2 periode jatuh 3% di bawah rata-rata bergerak sederhana 5 periode, dianggap harga menyimpang dari rata-rata dan sinyal beli dihasilkan.

  2. Ketika SMA 2 periode melintasi SMA 5 periode, dianggap bahwa harga kembali ke rata-rata dan sinyal jual dihasilkan.

  3. Dikombinasikan dengan rata-rata bergerak eksponensial RSI 5 periode, sinyal beli hanya dihasilkan ketika RSI di bawah 30 dan sinyal jual ketika RSI di atas 70, untuk menghindari perdagangan yang tidak perlu.

Ide utamanya adalah untuk menangkap peluang reversi rata-rata dengan menggunakan fluktuasi harga jangka pendek. Beli ketika harga turun sebesar persentase tertentu, jual ketika harga kembali mendekati rata-rata bergerak, untuk menghasilkan keuntungan. Sementara itu, indikator RSI dapat mengidentifikasi kondisi overbought dan oversold untuk menyaring beberapa sinyal perdagangan yang bising.

Analisis Keuntungan

Strategi ini memiliki keuntungan berikut:

  1. Mudah diterapkan dengan biaya pemantauan yang rendah.

  2. Menangkap peluang pembalikan rata-rata jangka pendek menggunakan penyimpangan harga dari rata-rata bergerak.

  3. Indikator RSI dapat secara efektif menyaring bising perdagangan dan menghindari mengejar puncak dan membunuh lembah.

  4. Penyesuaian parameter yang fleksibel dapat disesuaikan dengan lingkungan pasar yang berbeda.

  5. Mendukung perdagangan hanya panjang, hanya pendek atau kedua arah untuk memenuhi preferensi yang berbeda.

Analisis Risiko

Ada juga beberapa risiko:

  1. Ada risiko stop loss yang tinggi jika terjadi perubahan harga drastis.

  2. Pengaturan parameter yang tidak benar dapat menyebabkan perdagangan berlebihan atau kehilangan peluang.

  3. Kinerja sangat berkorelasi dengan pasar.

Pengendalian:

  1. Atur stop loss yang tepat untuk mengendalikan kerugian perdagangan tunggal.

  2. Secara bertahap mengoptimalkan parameter dan mengevaluasi pengembalian yang disesuaikan dengan risiko.

  3. Gabungkan dengan indeks saham untuk meningkatkan kemampuan beradaptasi.

Arahan Optimasi

Strategi dapat dioptimalkan dalam aspek berikut:

  1. Uji kombinasi rata-rata bergerak yang berbeda untuk menemukan parameter optimal.

  2. Cobalah memasukkan indikator lain untuk mengidentifikasi tren dan meningkatkan tingkat kemenangan.

  3. Tambahkan mekanisme stop loss untuk mengurangi penarikan maksimum.

  4. Mengoptimalkan aturan masuk dan keluar untuk meningkatkan faktor keuntungan.

  5. Mengadopsi teknik pembelajaran mesin untuk membangun parameter adaptif.

Kesimpulan

HYE Mean Reversion SMA Strategy adalah strategi reversi rata-rata jangka pendek yang sederhana dan praktis. Ini menggunakan penyimpangan harga dari moving average untuk menghasilkan sinyal perdagangan, menyaring kebisingan dengan indikator RSI. Ini menunjukkan kinerja backtest yang baik. Strategi ini mudah dilaksanakan dengan parameter yang dapat disesuaikan dengan lingkungan pasar yang berbeda. Tetapi ketidakpastian risiko reversi dan stop loss harus dicatat, yang memerlukan optimasi yang tepat untuk kondisi pasar yang berbeda. Secara keseluruhan, ini memberikan templat strategi reversi rata-rata referensi yang baik untuk perdagangan kuantitatif.


/*backtest
start: 2022-12-08 00:00:00
end: 2023-12-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @version=4

strategy("HYE Mean Reversion SMA [Strategy]", overlay = true )
  
//Strategy inputs
source = input(title = "Source", defval = close)
tradeDirection = input(title="Trade Direction", type=input.string,
     options=["Long Only", "Short Only", "Both"], defval="Long Only") 
smallMAPeriod = input(title = "Small Moving Average", defval = 2)
bigMAPeriod = input(title = "Big Moving Average", defval = 5)
percentBelowToBuy = input(title = "Percent below to buy %", defval = 3)
percentAboveToSell = input(title = "Percent above to sell %", defval = 3)
rsiPeriod = input(title = "Rsi Period", defval = 2)
rsiLevelforBuy = input(title = "Maximum Rsi Level for Buy", defval = 30)
rsiLevelforSell = input(title = "Minimum Rsi Level for Sell", defval = 70)
     
longOK  = (tradeDirection == "Long Only") or (tradeDirection == "Both")
shortOK = (tradeDirection == "Short Only") or (tradeDirection == "Both")

// Make input options that configure backtest date range
startDate = input(title="Start Date", type=input.integer,
     defval=1, minval=1, maxval=31)
startMonth = input(title="Start Month", type=input.integer,
     defval=1, minval=1, maxval=12)
startYear = input(title="Start Year", type=input.integer,
     defval=2020, minval=1800, maxval=2100)

endDate = input(title="End Date", type=input.integer,
     defval=31, minval=1, maxval=31)
endMonth = input(title="End Month", type=input.integer,
     defval=12, minval=1, maxval=12)
endYear = input(title="End Year", type=input.integer,
     defval=2021, minval=1800, maxval=2100)
     
inDateRange = true

//Strategy calculation 
rsiValue = rsi(source, rsiPeriod)
rsiEMA   = ema(rsiValue, 5)
smallMA = sma(source, smallMAPeriod)
bigMA =  sma(source, bigMAPeriod) 
buyMA = ((100 - percentBelowToBuy) / 100) * sma(source, bigMAPeriod)[0]
sellMA = ((100 + percentAboveToSell) / 100) * sma(source, bigMAPeriod)[0]

if(crossunder(smallMA, buyMA) and rsiEMA < rsiLevelforBuy and inDateRange and longOK)
    strategy.entry("BUY", strategy.long) 

if(crossover(smallMA, bigMA) or not inDateRange)
    strategy.close("BUY")

if(crossover(smallMA, sellMA) and rsiEMA > rsiLevelforSell and inDateRange and shortOK)
    strategy.entry("SELL", strategy.short)

if(crossunder(smallMA, bigMA) or not inDateRange)
    strategy.close("SELL")



Lebih banyak