Strategi Perdagangan Gap Moving Average

Penulis:ChaoZhang, Tanggal: 2023-10-26 16:05:01
Tag:

img

Artikel ini memberikan analisis mendalam tentang strategi perdagangan gap rata-rata bergerak yang dikodekan oleh Noro. Strategi ini mengidentifikasi pembalikan tren dengan menghitung penyimpangan antara harga penutupan dan rata-rata bergerak sederhana, dan mencapai beli rendah dan jual tinggi.

Logika Strategi

Strategi ini pertama-tama menghitung rata-rata bergerak sederhana 3 hari (SMA). Kemudian menghitung rasio harga penutupan (pendek) ke SMA dikurangi satu sebagai indikator (ind). Ketika ind melintasi di atas batas parameter yang telah ditetapkan sebelumnya, itu berarti harga penutupan telah melampaui SMA secara signifikan dan posisi panjang dianggap. Ketika ind melintasi di bawah -limit, itu berarti harga penutupan telah turun jauh di bawah SMA dan posisi pendek dianggap.

Strategi ini juga memetakan sumbu 0, sumbu batas dan sumbu batas. Indikator berwarna berbeda di area yang terpisah untuk membantu penilaian. Ketika ind melintasi batas atau batas, itu menandakan entri panjang atau pendek.

Pada sinyal panjang/pendek, strategi akan menutup posisi berlawanan terlebih dahulu, kemudian membuka posisi panjang/pendek.

Keuntungan

  1. Mengadopsi prinsip perdagangan gap untuk menangkap pembalikan tren, tidak seperti strategi mengikuti tren.

  2. Menggambar sumbu indikator untuk penilaian intuitif posisi indikator dan persilangan.

  3. Logika dekat yang dioptimalkan, menutup posisi yang ada sebelum membalikkan arah.

  4. Jangka waktu perdagangan yang ditentukan untuk menghindari posisi overnight yang tidak perlu.

  5. Fleksibilitas untuk mengaktifkan/menonaktifkan perdagangan panjang/pendek.

Risiko

  1. Strategi rata-rata bergerak cenderung menghasilkan banyak perdagangan yang kalah, yang membutuhkan kesabaran dalam memegang.

  2. Rata-rata bergerak tidak memiliki fleksibilitas dalam menangkap perubahan harga real-time.

  3. Parameter batas yang telah ditetapkan adalah statis, yang membutuhkan penyesuaian untuk produk dan lingkungan pasar yang berbeda.

  4. Tidak dapat mengidentifikasi fluktuasi dalam tren, membutuhkan kombinasi dengan indikator volatilitas.

  5. Perlu mengoptimalkan aturan kepemilikan misalnya stop loss, mengambil keuntungan; atau hanya menangkap celah awal.

Arah Peningkatan

  1. Uji pengaturan parameter yang berbeda misalnya periode SMA, atau rata-rata bergerak adaptif seperti EMA.

  2. Tambahkan arah rata-rata bergerak dan validasi kemiringan untuk menghindari perdagangan yang tidak berarti.

  3. Pertimbangkan untuk menggabungkan dengan indikator volatilitas seperti Bollinger Bands untuk menghentikan perdagangan ketika volatilitas meningkat.

  4. Menerapkan aturan ukuran posisi misalnya jumlah tetap, piramida tambahan, manajemen uang.

  5. Atur garis stop loss/take profit, atau jeda order baru ketika stop loss persentase tetap dipicu, untuk mengendalikan per risiko perdagangan.

Ringkasan

Artikel ini secara komprehensif menganalisis strategi perdagangan selisih rata-rata bergerak Noro. Ini memanfaatkan selisih harga dari fitur rata-rata bergerak dan menerapkan sumbu indikator dan warna untuk waktu masuk. Ini juga mengoptimalkan logika dekat dan mendefinisikan rentang waktu perdagangan. Namun, kelemahan inheren pelacakan rata-rata bergerak tetap ada, yang membutuhkan optimasi lebih lanjut dalam parameter, aturan stop loss, menggabungkan indikator dll untuk meningkatkan ketahanan.


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

//Noro
//2018

//@version=3
strategy(title = "Noro's Shift Close Strategy v1.0", shorttitle = "Shift Close 1.0", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 5)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
limit = input(10)
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From Day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To Day")

//Shift MA
sma = sma(ohlc4, 3)
ind = ((close / sma) - 1) * 100

//Oscilator
plot(3 * limit, color = na, transp = 0)
plot(limit, color = black, transp = 0)
plot(0, color = black, transp = 0)
plot(-1 * limit, color = black, transp = 0)
plot(-3 * limit, color = na, transp = 0)
plot(ind, linewidth = 3, transp = 0)
col = ind > limit ? red : ind < -1 * limit ? lime : na
bgcolor(col, transp = 0)

//Signals
size = strategy.position_size
up = ind < -1 * limit
dn = ind > limit
exit = ind > -1 * limit and ind < limit

//Trading
lot = 0.0 
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]

if up
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if exit
    strategy.close_all()

Lebih banyak