Strategi Pecah Saluran Donchian


Tarikh penciptaan: 2023-09-14 14:44:44 Akhirnya diubah suai: 2023-09-14 14:44:44
Salin: 0 Bilangan klik: 766
1
fokus pada
1617
Pengikut

Prinsip Strategi

Strategi penembusan saluran Dongxian adalah strategi pengesanan trend berdasarkan saluran Dongxian. Strategi ini menggunakan harga tertinggi dan terendah dalam tempoh yang berbeza untuk menentukan titik masuk dan titik berhenti untuk mata wang berganda dan kosong.

Peraturan kemasukan untuk strategi ini adalah: apabila harga menembusi harga tertinggi dalam tempoh yang ditetapkan (seperti 20 hari), buat lebih banyak; apabila harga menembusi harga terendah dalam tempoh yang ditetapkan (seperti 10 hari), buat kosong.

Peraturan EXIT adalah: kedudukan bermulut berhenti di tengah atau di bawah landasan; kedudukan kosong berhenti di tengah atau di atas landasan. Landasan adalah purata harga tertinggi dan terendah dalam tempoh yang ditetapkan (seperti 10 hari).

Katakan bahawa jenis perdagangan adalah BTCUSDT, parameter ditetapkan sebagai berikut:

  • Siklus kemasukan: 20 hari
  • Jangkaan Hentikan Kerosakan: 10 Hari
  • Adakah terdapat kerosakan di landasan tengah: Ya
  • Tempoh kemasukan kosong: 10 hari
  • Tempoh Hentian Kepala Kosong: 20 Hari
  • Adakah terdapat kerosakan di landasan tengah: Ya

Jadi, peraturan untuk masuk dan berhenti adalah:

  • Apabila harga melebihi harga tertinggi dalam tempoh 20 hari, anda boleh mengambil lebih banyak kedudukan di tempat itu.
  • Tahap stop loss adalah antara harga tertinggi dan terendah dalam tempoh 10 hari
  • Apabila harga jatuh ke bawah harga 10 hari, anda boleh memasuki kedudukan kosong pada titik itu.
  • Titik hentian kosong adalah di tengah-tengah harga tertinggi dan terendah dalam 20 hari

Dengan menyesuaikan parameter kitaran masuk dan hentian secara dinamik, ia dapat dioptimumkan dalam kitaran pasaran yang berbeza dan memperoleh keuntungan yang lebih baik dalam keadaan trend.

Kelebihan Strategik

  • Menggunakan terobosan untuk menentukan arah trend, anda boleh menangkap trend yang kuat
  • Hentikan Kerosakan Berhampiran Harga Semasa Untuk Mengendalikan Risiko
  • Parameter yang fleksibel untuk disesuaikan dengan kitaran yang berbeza

Risiko Strategik

  • Perdagangan terobosan mudah dirompak, perlu berhati-hati untuk menentukan keberkesanan penembusan
  • Titik henti berhampiran harga, kemungkinan besar untuk menghentikan kerugian dalam keadaan goyah
  • Tetapan parameter yang tidak betul boleh menyebabkan terlalu kerap atau tidak dapat menghentikan kerosakan tepat pada masanya

ringkaskan

Strategi penembusan saluran Tongxian menggunakan penembusan untuk menentukan arah trend, titik berhenti ditetapkan sebagai titik tengah saluran atau ke bawah, dan risiko dapat dikawal dengan berkesan. Dengan menetapkan parameter yang dioptimumkan, anda dapat meningkatkan penangkapan strategi dalam keadaan trend. Tetapi berhati-hati dengan penilaian dan penggunaan berhati-hati untuk mengelakkan penembusan.

Kod sumber strategi
/*backtest
start: 2023-08-14 00:00:00
end: 2023-09-13 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Donchian Channel Strategy", overlay=true, default_qty_type= strategy.percent_of_equity, initial_capital = 1000, default_qty_value = 20, commission_type=strategy.commission.percent, commission_value=0.036)

//Long optopns
buyPeriodEnter = input(10, "Channel Period for Long enter position")
buyPeriodExit = input(10, "Channel Period for Long exit position")
isMiddleBuy = input(true, "Is exit on Base Line? If 'no' - exit on bottom line")
takeProfitBuy = input(2.5, "Take Profit (%) for Long position")
isBuy = input(true, "Allow Long?")

//Short Options
sellPeriodEnter = input(20, "Channel Period for Short enter position")
sellPeriodExit = input(20, "Channel Period for Short exit position")
isMiddleSell = input(true, "Is exit on Base Line? If 'no' - exit on upper line")
takeProfitSell = input(2.5, "Take Profit (%) for Short position")
isSell = input(true, "Allow Short?")

// Test Start
startYear = input(2005, "Test Start Year")
startMonth = input(1, "Test Start Month")
startDay = input(1, "Test Start Day")
startTest = timestamp(startYear,startMonth,startDay,0,0)

//Test End
endYear = input(2050, "Test End Year")
endMonth = input(12, "Test End Month")
endDay = input(30, "Test End Day")
endTest = timestamp(endYear,endMonth,endDay,23,59)

timeRange = time > startTest and time < endTest ? true : false

// Long&Short Levels
BuyEnter = highest(buyPeriodEnter)
BuyExit = isMiddleBuy ? ((highest(buyPeriodExit) + lowest(buyPeriodExit)) / 2): lowest(buyPeriodExit)

SellEnter = lowest(sellPeriodEnter)
SellExit = isMiddleSell ? ((highest(sellPeriodExit) + lowest(sellPeriodExit)) / 2): highest(sellPeriodExit)

// Plot Data
plot(BuyEnter, style=plot.style_line, linewidth=2, color=color.blue, title="Buy Enter")
plot(BuyExit, style=plot.style_line, linewidth=1, color=color.blue, title="Buy Exit", transp=50)
plot(SellEnter, style=plot.style_line, linewidth=2, color=color.red, title="Sell Enter")
plot(SellExit, style=plot.style_line, linewidth=1, color=color.red, title="Sell Exit", transp=50)

// Calc Take Profits
TakeProfitBuy = 0.0
TakeProfitSell = 0.0
if strategy.position_size > 0
    TakeProfitBuy := strategy.position_avg_price*(1 + takeProfitBuy/100)
    
if strategy.position_size < 0
    TakeProfitSell := strategy.position_avg_price*(1 - takeProfitSell/100)

// Long Position    
if isBuy and timeRange
    strategy.entry("Long", strategy.long, stop = BuyEnter, when = strategy.position_size == 0) 
    
strategy.exit("Long Exit", "Long", stop=BuyExit, limit = TakeProfitBuy, when = strategy.position_size > 0)

// Short Position
if isSell and timeRange
    strategy.entry("Short", strategy.short, stop = SellEnter, when = strategy.position_size == 0) 
    
strategy.exit("Short Exit", "Short", stop=SellExit, limit = TakeProfitSell, when = strategy.position_size < 0)

// Close & Cancel when over End of the Test
if time > endTest
    strategy.close_all()
    strategy.cancel_all()