Strategi Masuk dan Keluar Saluran Harga Momentum


Tanggal Pembuatan: 2023-12-06 16:44:32 Akhirnya memodifikasi: 2023-12-06 16:44:32
menyalin: 1 Jumlah klik: 611
1
fokus pada
1619
Pengikut

Strategi Masuk dan Keluar Saluran Harga Momentum

Ringkasan

Strategi ini didasarkan pada indikator saluran harga, yang mengatur parameter momentum, yang membentuk garis tengah saluran harga dengan menghitung rata-rata harga tertinggi dan terendah dari berbagai siklus, dan dengan ini menjadi acuan untuk menetapkan garis panjang dan garis pendek. Ketika harga menerobos garis panjang, lakukan lebih banyak; Ketika harga menerobos garis pendek, lakukan lebih banyak.

Prinsip Strategi

Strategi ini menggunakan indikator saluran harga untuk menghitung rata-rata harga tertinggi dan terendah dalam periode yang berbeda, membentuk garis tengah saluran harga. Dengan garis tengah sebagai dasar, atur garis panjang dan garis pendek melalui parameter shift. Secara khusus, rumus untuk menghitung garis panjang adalah: garis tengah + ((( garis tengah × garis panjang parameter%); rumus untuk menghitung garis pendek adalah: garis tengah + ((( garis tengah × garis pendek parameter%).

Bila harga lebih rendah dari garis panjang, bukalah dengan menggunakan opsi tunggal dengan harga terbatas; bila harga lebih tinggi dari garis pendek, bukalah dengan opsi tunggal dengan harga terbatas. Stop loss untuk opsi ganda adalah harga kembali ke saluran tengah.

Analisis Keunggulan

Strategi ini memiliki keuntungan sebagai berikut:

  1. Menggunakan indikator saluran harga, Anda dapat secara efektif menangkap tren harga dan titik-titik resistensi pendukung utama.
  2. Menggunakan breakout recording untuk membuka posisi dapat mengurangi kerugian yang ditimbulkan oleh breakout palsu.
  3. Stop loss dilakukan secara langsung dengan standar garis tengah saluran harga, untuk menghindari kerugian yang berlebihan yang ditimbulkan oleh stop loss.

Analisis risiko

Strategi ini juga memiliki beberapa risiko:

  1. Parameter saluran harga tidak disetel dengan benar, yang dapat melewatkan tren positif atau menghasilkan terlalu banyak terobosan palsu.
  2. Cara menembus gudang membawa beberapa biaya untuk menyeberang.
  3. Pada saat harga kembali turun dengan cepat, Anda tidak dapat menghentikan kerugian tepat waktu.

Risiko ini dapat dikurangi dengan mengoptimalkan parameter, menetapkan stop loss, atau menggabungkan penilaian indikator lainnya.

Arah optimasi

Strategi ini dapat dioptimalkan dalam beberapa hal:

  1. Parameter untuk mengoptimalkan saluran harga, mencari kombinasi terbaik.
  2. Cobalah berbagai cara untuk membuka posisi, seperti bentuk K-line, indikator sinyal kosong, dan lain sebagainya.
  3. Meningkatkan pengaturan stop loss untuk mencegah penurunan harga yang cepat.
  4. Indikator volume transaksi, volatilitas, dan lain-lain untuk menghindari terjadinya terobosan palsu di pasar saham.

Meringkaskan

Strategi ini didasarkan pada indikator desain saluran harga yang jelas, menggunakan breakout open position dapat mengontrol risiko secara efektif. Namun, ada ruang untuk optimasi parameter yang lebih besar, mekanisme stop loss yang harus disempurnakan, dan lain-lain. Secara keseluruhan, strategi ini memiliki nilai praktis tertentu, layak untuk diuji dan dioptimalkan lebih lanjut.

Kode Sumber Strategi
/*backtest
start: 2022-11-29 00:00:00
end: 2023-12-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

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

//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, %")
per = input(3, title = "Length")
shortlevel = input(10.0, title = "Short line (red)")
longlevel = input(-5.0, title = "Long line (lime)")
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")

//Price Channel
h = highest(high, per)
l = lowest(low, per)
c = (h + l) / 2
ll = c + ((c / 100) * longlevel)
sl = c + ((c / 100) * shortlevel)

//Lines
shortcolor = needshort ? red : na
longcolor = needlong ? lime : na
plot(sl, linewidth = 2, color = shortcolor, title = "Short line")
plot(c, linewidth = 2, color = blue, title = "SMA line")
plot(ll, linewidth = 2, color = longcolor, title = "Long line")

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

if (not na(close[per])) and size == 0 and needlong
    strategy.entry("L", strategy.long, lot, limit = ll, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if (not na(close[per])) and size == 0 and needshort
    strategy.entry("S", strategy.short, lot, limit = sl, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if (not na(close[per])) and size > 0 
    strategy.entry("Close", strategy.short, 0, limit = c, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if (not na(close[per])) and size < 0 
    strategy.entry("Close", strategy.long, 0, limit = c, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()