Strategi Mengikuti Trend Pecah Saluran Donchian


Tarikh penciptaan: 2024-01-29 11:51:08 Akhirnya diubah suai: 2024-01-29 11:51:08
Salin: 0 Bilangan klik: 718
1
fokus pada
1617
Pengikut

Strategi Mengikuti Trend Pecah Saluran Donchian

Gambaran keseluruhan

Strategi penembusan saluran Dongguan adalah strategi pengesanan trend yang membentuk saluran harga dengan mengira harga tertinggi dan terendah dalam jangka masa tertentu, dan menggunakan sempadan saluran sebagai isyarat pembelian dan penjualan. Apabila harga menembusi lintasan, buat kosong; apabila harga menembusi lintasan, buat lebih banyak.

Prinsip Strategi

Strategi ini menggunakan indikator saluran Dongxian untuk menilai trend harga dan mengira titik keluar masuk. Saluran Dongxian terdiri daripada saluran atas, saluran bawah dan saluran tengah. Saluran atas adalah harga tertinggi, saluran bawah adalah harga terendah, saluran tengah adalah harga purata dalam tempoh tertentu.

Panjang kitaran masuk dan keluar boleh dikonfigurasikan secara berasingan. Apabila harga naik, masuk lebih banyak; Apabila harga turun, masuk kosong.

Di samping itu, strategi ini juga menetapkan titik hentian. Untuk membuat lebih banyak kedudukan, harga hentian adalah rasio harga masuk ((1 + hentian), sebaliknya untuk posisi kosong. Mengaktifkan fungsi ini dapat mengunci keuntungan dan mengelakkan kerugian berkembang.

Secara keseluruhan, strategi ini menilai trend sambil memastikan terdapat ruang yang mencukupi untuk menetapkan hentian dan hentian. Ini menjadikannya sangat sesuai untuk varieti yang berfluktuasi tinggi seperti mata wang digital.

Analisis kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Strategi yang jelas, penjanaan isyarat mudah dan boleh dipercayai.
  2. Indeks Tangjian Channel tidak sensitif terhadap pergerakan harga, yang membantu menangkap trend.
  3. Parameter saluran boleh disesuaikan untuk pelbagai jenis dan tempoh masa.
  4. Fungsi pencegahan kerosakan terbina dalam untuk mengawal risiko dengan berkesan.
  5. Untuk varian yang berfluktuasi tinggi seperti mata wang digital, potensi keuntungan yang tinggi.

Analisis risiko

Strategi ini juga mempunyai risiko:

  1. Walaupun ia mempunyai fungsi penghentian kerugian, ia tidak dapat mengelakkan risiko besar.
  2. Tetapan parameter yang tidak betul boleh menyebabkan terlalu banyak perdagangan, meningkatkan kos perdagangan dan risiko slippage.
  3. Strategi ini tidak sensitif terhadap pergerakan harga dan mungkin terlepas beberapa peluang perdagangan.

Untuk mengawal risiko tersebut, langkah-langkah berikut disyorkan:

  1. Mengurangkan jumlah dana yang diperuntukkan, menyebarkan jenis pelaburan, dan mengawal risiko keseluruhan.
  2. Optimumkan parameter, cari kombinasi parameter yang terbaik. Anda boleh mencuba mengoptimumkan secara automatik menggunakan kaedah pembelajaran mesin dan sebagainya.
  3. Di samping itu, terdapat juga penunjuk tambahan untuk menilai kebolehpercayaan isyarat terobosan dan mengelakkan perdagangan yang salah.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dari segi berikut:

  1. Uji dan optimumkan lebih banyak kombinasi parameter untuk mencari parameter terbaik. Parameter utama termasuk kitaran saluran, nisbah penangguhan, sama ada lebih banyak ruang kosong dibenarkan, dan sebagainya.
  2. Menambah model pembelajaran mesin, mengenal pasti parameter optimum secara automatik.
  3. Gabungan dengan petunjuk lain untuk menilai trend dan kebolehpercayaan isyarat, seperti garis purata, jumlah transaksi dan sebagainya.
  4. Membangunkan strategi henti rugi, seperti menjejaki henti rugi, keluar Chandelier, dan sebagainya, untuk mengawal risiko lebih jauh.
  5. Berkembang ke lebih banyak varieti, mencari varieti yang paling sesuai untuk strategi ini.

ringkaskan

Strategi penembusan saluran TCM secara keseluruhan adalah strategi pengesanan trend yang jelas, risiko yang boleh dikawal. Ia sangat sesuai untuk varieti yang berfluktuasi tinggi seperti mata wang digital, dengan potensi keuntungan yang tinggi. Pada masa yang sama, strategi ini juga mempunyai ruang untuk pengoptimuman parameter tertentu dan kemungkinan menggabungkan indikator lain, yang merupakan arah yang boleh diperluas pada masa depan. Dengan terus mengoptimumkan dan inovasi, strategi ini dijangka menjadi pilihan penting untuk perdagangan algoritma mata wang digital.

Kod sumber strategi
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © algotradingcc
// Strategy testing and optimisation for free trading bot 

//@version=4
strategy("Donchian Channel Strategy [for free bot]", overlay=true )

//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()