
Strategi ini adalah strategi perdagangan jangka pendek berdasarkan indikator saluran. Ia menggunakan terobosan saluran untuk menentukan permulaan dan akhir trend, dan kemudian membuat keputusan membeli dan menjual. Dalam pasaran trend yang kuat, strategi terobosan ini dapat memperoleh keuntungan yang lebih baik.
Strategi ini bermula dengan mengira harga tertinggi dan terendah dalam tempoh tertentu untuk membina laluan atas dan bawah.
Jika harga naik menembusi garisan atas, maka masuklah lebih banyak. Jika harga turun menembusi garisan bawah, maka masuklah secara kosong.
Menggunakan Hentian Bergerak untuk mengawal risiko. Garis Hentian ditetapkan sebagai garis tengah saluran.
Terdapat dua pilihan peraturan keluar: garis tengah pengembalian dan berhenti bergerak. Yang pertama untuk mendapatkan keuntungan yang cepat untuk keluar, yang kedua untuk mengawal risiko.
Anda boleh memilih kitaran saluran mengikut keadaan pasaran, menyesuaikan parameter seperti stop loss, dan lain-lain untuk mencapai pengoptimuman strategi.
Operasi mudah dan mudah dilaksanakan. Hanya perlu memantau hubungan harga dengan saluran, dan membuka kedudukan terbuka mengikut peraturan.
Perdagangan mengikut trend, tiada risiko untuk berbalik.
Laluan jelas dan intuitif, membentuk isyarat masuk yang jelas.
Mereka mempunyai ruang keuntungan yang baik dan biasanya mendapat ganjaran yang lebih memuaskan.
Terdapat banyak parameter yang boleh disesuaikan dan boleh dioptimumkan untuk pasaran yang berbeza.
Penembusan tidak semestinya berjaya, ada risiko tersandung.
Saluran memerlukan pembentukan kitaran tertentu, tidak sesuai untuk keadaan gegaran.
Jika dilihat semula, penurunan di saluran tengah mungkin terlalu konservatif dan tidak dapat mengekalkan trend.
Pengoptimuman parameter memerlukan sokongan data sejarah, dan mungkin terdapat pengoptimuman pada cakera.
Membeli dan menjual secara mekanikal boleh meningkatkan jumlah transaksi dan kos slippage.
Menilai kesan parameter kitaran yang berbeza dan memilih kitaran laluan yang terbaik.
Uji kemunduran pada garis tengah regresi dan kemunduran bergerak, pilih mekanisme keluar yang lebih sesuai.
Mengoptimumkan amplitud hentian dan mengurangkan kemungkinan hentian akan dicetuskan.
Menambah penapis trend untuk mengelakkan transaksi terobosan yang tidak sesuai.
Pertimbangkan untuk meningkatkan kedudukan, tetapi kawal risiko.
Strategi ini secara keseluruhan adalah strategi penembusan jangka pendek yang lebih matang. Ia mempunyai peraturan kemasukan yang jelas, langkah-langkah kawalan risiko berada di tempat, dan prestasi yang lebih baik.
/*backtest
start: 2022-10-18 00:00:00
end: 2023-10-24 00:00:00
period: 1d
basePeriod: 1h
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/
// Strategy testing and optimisation for free Bitmex trading bot
// © algotradingcc
//@version=4
strategy("Channel Break [for free bot]", overlay=true, default_qty_type= strategy.percent_of_equity, initial_capital = 1000, default_qty_value = 20, commission_type=strategy.commission.percent, commission_value=0.075)
//Options
buyPeriod = input(13, "Channel Period for Long position")
sellPeriod = input(18, "Channel Period for Short position")
isMiddleExit = input(true, "Is exit on Base Line?")
takeProfit = input(46, "Take Profit (%) for position")
stopLoss = input(9, "Stop Loss (%) for position")
// 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(buyPeriod)
BuyExit = isMiddleExit ? (highest(buyPeriod) + lowest(buyPeriod)) / 2: lowest(buyPeriod)
SellEnter = lowest(sellPeriod)
SellExit = isMiddleExit ? (highest(sellPeriod) + lowest(sellPeriod)) / 2: highest(sellPeriod)
// 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 & Stop Loss
TP = 0.0
SL = 0.0
if strategy.position_size > 0
TP := strategy.position_avg_price*(1 + takeProfit/100)
SL := strategy.position_avg_price*(1 - stopLoss/100)
if strategy.position_size > 0 and SL > BuyExit
BuyExit := SL
if strategy.position_size < 0
TP := strategy.position_avg_price*(1 - takeProfit/100)
SL := strategy.position_avg_price*(1 + stopLoss/100)
if strategy.position_size < 0 and SL < SellExit
SellExit := SL
// Long Position
if timeRange and strategy.position_size <= 0
strategy.entry("Long", strategy.long, stop = BuyEnter)
strategy.exit("Long Exit", "Long", stop=BuyExit, limit = TP, when = strategy.position_size > 0)
// Short Position
if timeRange and strategy.position_size >= 0
strategy.entry("Short", strategy.short, stop = SellEnter)
strategy.exit("Short Exit", "Short", stop=SellExit, limit = TP, when = strategy.position_size < 0)
// Close & Cancel when over End of the Test
if time > endTest
strategy.close_all()
strategy.cancel_all()