Strategi Pembalikan Harga Dipandu oleh Saluran Harga

Penulis:ChaoZhang, Tarikh: 2023-11-27 11:40:36
Tag:

img

Ringkasan

Strategi pembalikan harga yang dipandu oleh saluran harga mengira garis tengah saluran harga untuk menentukan arah trend turun naik harga. Ia menghasilkan isyarat panjang dan pendek apabila harga mendekati garis tengah saluran. Strategi ini menggabungkan pelbagai keadaan penapis untuk mencari peluang perdagangan kebarangkalian tinggi.

Logika Strategi

Indikator teras strategi ini adalah garis pusat saluran harga. Ia dikira sebagai purata harga tertinggi dan harga terendah dari 30 candlestick yang paling baru. Apabila rendah lebih tinggi daripada garis pusat, ia dianggap sebagai trend menaik. Apabila tinggi lebih rendah daripada garis pusat, ia dianggap sebagai trend menurun.

Strategi ini hanya menghasilkan isyarat perdagangan apabila latar belakang trend berubah. iaitu, dalam latar belakang uptrend, ia akan pendek hanya apabila lilin berubah menjadi merah. Dalam latar belakang downtrend, ia akan panjang hanya apabila lilin berubah menjadi hijau.

Di samping itu, strategi ini juga menetapkan syarat penapis berganda: penapis badan candlestick dan penapis bar saluran harga. Isyarat hanya dicetuskan apabila jumlah badan candlestick lebih besar daripada 20% daripada nilai purata, dan mesti ada isyarat trend berturut-turut dalam kitaran penapis untuk membuka kedudukan.

Analisis Kelebihan

Strategi ini menggabungkan trend, kawasan nilai dan corak candlestick, yang merupakan strategi perdagangan pembalikan yang cekap.

  1. Menggunakan saluran harga untuk menentukan trend utama dan mengelakkan ditipu oleh pasaran terikat julat.
  2. Memilih tahap harga berhampiran garis pusat saluran harga, yang merupakan kawasan pembelian rendah-penjualan tinggi klasik.
  3. Badan lilin dan penapis bar saluran meningkatkan kualiti isyarat dan mengurangkan kadar isyarat palsu.
  4. Buka kedudukan hanya pada titik pembalikan yang jelas untuk mengelakkan mengejar tinggi dan menjual rendah.

Risiko dan Penyelesaian

Risiko utama strategi ini berasal dari titik pembalikan harga yang hilang dan menunggu isyarat yang tidak perlu.

  1. Sesuaikan ketegasan syarat penapis dan mengurangkan standard penapis untuk mengurangkan perdagangan yang hilang.
  2. Meningkatkan saiz kedudukan pada peringkat awal pembalikan trend untuk menangkap keuntungan trend.
  3. Gabungkan penunjuk lain untuk menilai kekuatan isyarat dan campur tangan dalam penapis secara manual.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Mengoptimumkan parameter seperti tempoh saluran harga, bilangan bar saluran dll.
  2. Tambah strategi stop loss untuk menghentikan kerugian apabila kerugian mencapai peratusan tertentu.
  3. Menggabungkan jumlah dagangan untuk campur tangan dalam kekuatan penapis.
  4. Tambah model pembelajaran mesin untuk menilai kebarangkalian pembalikan trend, menggantikan penapis mudah.

Kesimpulan

Strategi pembalikan harga yang dipandu oleh saluran harga menentukan titik pembalikan melalui saluran harga, dan menetapkan keadaan penapis berganda untuk menghasilkan isyarat berkualiti tinggi.


/*backtest
start: 2023-11-19 00:00:00
end: 2023-11-26 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy(title = "Noro's PriceChannel for D1 v1.0", shorttitle = "PriceChannel D1", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 0)

//Settings
needlong = input(true, "long")
needshort = input(true, "short")
slowlen = input(30, defval = 30, minval = 2, maxval = 200, title = "PriceChannel Period")
pcbars = input(1, defval = 1, minval = 1, maxval = 20, title = "PriceChannel Bars")
usecol = input(true, "Use color-filter")
usebod = input(true, "Use body-filter")
needbg = input(false, defval = false, title = "Need trend Background?")
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")

src = close

//PriceChannel
lasthigh = highest(src, slowlen)
lastlow = lowest(src, slowlen)
center = (lasthigh + lastlow) / 2

//Trend
ub = low > center ? 1 : 0
db = high < center ? 1 : 0
trend = sma(ub, pcbars) == 1 ? 1 : sma(db, pcbars) == 1 ? -1 : trend[1]

//Body
body = abs(close - open)
abody = sma(body, 10)

//Signals
up = trend == 1 and (close < open or usecol == false) and (body > abody / 5 or usebod == false)
dn = trend == -1 and (close > open or usecol == false) and (body > abody / 5 or usebod == false)

//Lines
plot(center, color = blue, linewidth = 3, transp = 0, title = "PriceChannel Center")

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)

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

if dn
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, 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()
    

Lebih lanjut