
Strategi ini didasarkan pada indikator saluran Donchian yang memungkinkan penyesuaian untuk melacak pergerakan pasar, melakukan perdagangan tren. Saat harga menembus saluran Donchian, melakukan pelacakan tren; Saat harga kembali ke saluran, melakukan stop loss.
Perhitungan harga tertinggi dan terendah dalam periode tertentu, membentuk saluran Tongjian. Garis tengah saluran adalah rata-rata harga tertinggi dan terendah dalam periode tersebut.
Ketika harga menembus saluran atas, buka posisi multihead; ketika harga menembus saluran bawah, buka posisi kosong.
Setelah membuka posisi, garis stop mengikuti garis tengah saluran; garis stop mengikuti harga untuk sebagian dari saluran yang telah dilalui.
Jika harga kembali ke dalam channel, maka stop loss akan dilakukan.
Strategi ini menggunakan saluran Tongxian untuk menentukan arah tren dan menangkap terobosan pasar dengan cepat.
Menggunakan stop loss tracking pada saluran tengah, dapat melindungi keuntungan.
Dengan menggunakan stop loss yang telah ditetapkan oleh pengguna, Anda dapat memperbesar ruang keuntungan Anda.
Kemampuan untuk beradaptasi dengan situasi yang berbeda, seperti perhitungan, penembusan, dan penyesuaian, dan dapat menyesuaikan posisi secara fleksibel.
Strategi trading logikanya sederhana dan jelas, mudah dipahami dan dikuasai.
Strategi ini hanya didasarkan pada transaksi terobosan, dan tidak dapat secara efektif menanggapi pasar konsolidasi.
Ada risiko penembusan sinyal palsu, yang perlu divalidasi dalam kombinasi dengan indikator lainnya.
Stop loss yang tidak tepat dapat menyebabkan kerugian prematur atau kurangnya keuntungan.
Periode saluran yang tidak tepat dapat mempengaruhi keakuratan sinyal perdagangan.
Posisi yang terlalu besar akan memperkuat dampak dari pergerakan pasar terhadap akun.
Perdagangan robot berisiko mengalami gangguan yang tidak disengaja, dan perlu memastikan bahwa sistemnya stabil dan dapat diandalkan.
Dengan menggunakan indikator volume transaksi, hindari mengikuti terobosan palsu.
Meningkatkan penilaian indikator tren, meningkatkan akurasi sinyal untuk membuka posisi.
Mengoptimalkan algoritma stop-loss dan melakukan penyesuaian dinamis.
Strategi manajemen posisi disesuaikan dengan kondisi pasar secara real-time.
Pelajari data sebelum dan sesudah pertandingan, cari waktu yang lebih baik untuk masuk.
Uji Periode Berbagai Parameter Untuk Mencari Kombinasi Parameter Terbaik.
Menambahkan modul verifikasi model untuk menghindari overfit.
Strategi ini secara keseluruhan adalah strategi tren yang lebih sederhana dan praktis. Dengan fitur seperti penangkapan tren yang cepat, perlindungan keuntungan, dan lain-lain. Namun, ada juga beberapa kelemahan seperti ketidak efektifannya terhadap kondisi konsolidasi, penembusan palsu yang membawa kerugian.
/*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
//2020
//@version=4
strategy(title = "Noro's Donchian Strategy", shorttitle = "Donchian str", overlay = true, default_qty_type = strategy.percent_of_equity, initial_capital = 100, default_qty_value = 100, commission_value = 0.1)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
tp = input(defval = 10, minval = 1, title = "Take profit")
lotsize = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
pclen = input(50, minval = 1, title = "Price Channel Length")
showll = input(true, defval = true, title = "Show lines")
showbg = input(false, defval = false, title = "Show Background")
showof = input(true, defval = true, title = "Show Offset")
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, pclen)
l = lowest(low, pclen)
center = (h + l) / 2
tpl = h * (100 + tp) / 100
tps = l * (100 - tp) / 100
//Lines
tpcol = showll ? color.lime : na
pccol = showll ? color.blue : na
slcol = showll ? color.red : na
offset = showof ? 1 : 0
plot(tpl, offset = offset, color = tpcol, title = "TP Long")
plot(h, offset = offset, color = pccol, title = "Channel High")
plot(center, offset = offset, color = slcol, title = "Cannel Center")
plot(l, offset = offset, color = pccol, title = "Channel Low")
plot(tps, offset = offset, color = tpcol, title = "TP Short")
//Background
size = strategy.position_size
bgcol = showbg == false ? na : size > 0 ? color.lime : size < 0 ? color.red : na
bgcolor(bgcol, transp = 70)
//Trading
truetime = time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)
lot = 0.0
lot := size != size[1] ? strategy.equity / close * lotsize / 100 : lot[1]
mo = 0
mo := strategy.position_size != 0 ? 0 : high >= center and low <= center ? 1 : mo[1]
if h > 0
strategy.entry("Long", strategy.long, lot, stop = h, when = strategy.position_size <= 0 and needlong and truetime and mo)
strategy.exit("TP Long", "Long", limit = tpl, stop = center)
strategy.entry("Short", strategy.short, lot, stop = l, when = strategy.position_size >= 0 and needshort and truetime and mo)
strategy.exit("TP Short", "Short", limit = tps, stop = center)
if time > timestamp(toyear, tomonth, today, 23, 59)
strategy.close_all()
strategy.cancel("Long")
strategy.cancel("Short")