Strategi ini mengira garis purata bergerak saluran dan menubuhkan kedudukan panjang atau pendek apabila harga memecahkan garis saluran untuk mengikuti trend harga saham.
Strategi ini mula-mula mengira purata tinggi 20 hari sebagai rel atas saluran, purata rendah 20 hari sebagai rel bawah saluran, dan mengira garis tengah saluran. Garis tengah saluran mewakili trend harga purata baru-baru ini. Apabila harga menembusi garis tengah saluran ke atas, kedudukan panjang ditubuhkan. Apabila harga menembusi garis tengah saluran ke bawah, kedudukan pendek ditubuhkan. Ikuti trend harga sehingga harga jatuh kembali ke sisi bertentangan julat saluran, tutup kedudukan.
Secara umum, strategi ini agak mudah dan mudah. Ia menilai trend harga saham melalui saluran harga asas dan tergolong dalam jenis trend berikut. Kelebihannya adalah operasi yang mudah, penggunaan penuh peluang pelaburan yang dibawa oleh trend harga, dan mengelakkan kunci dana. Kelemahannya adalah bahawa tetapan parameter yang tidak betul boleh mempengaruhi prestasi dan terdapat risiko ujian mundur tertentu. Melalui pengoptimuman yang munasabah, kestabilan strategi dapat ditingkatkan dan prestasi perdagangan sebenar dapat ditingkatkan.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //future strategy //strategy(title = "stub", default_qty_type = strategy.fixed, default_qty_value = 1, overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=2) //stock strategy strategy(title = "dc", default_qty_type = strategy.percent_of_equity, default_qty_value = 20, overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=.005) //forex strategy //strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 20, overlay = true) //crypto strategy //strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 20, overlay = true, commission_type=strategy.commission.percent,commission_value=.25,default_qty_value=20) testStartYear = input(2000, "Backtest Start Year") testStartMonth = input(1, "Backtest Start Month") testStartDay = input(1, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testEndYear = input(2019, "Backtest Start Year") testEndMonth = input(3) testEndDay = input(31, "Backtest Start Day") testPeriodEnd = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testPeriod() => true //time >= testPeriodStart ? true : false dcPeriod = 20 dcUpper = highest(close, dcPeriod)[1] dcLower = lowest(close, dcPeriod)[1] dcAverage = (dcUpper + dcLower) / 2 plot(dcLower, style=line, linewidth=3, color=red, offset=1) plot(dcUpper, style=line, linewidth=3, color=aqua, offset=1) plot(dcAverage, color=black, style=line, linewidth=3, title="Mid-Line Average") strategy.entry("simpleBuy", strategy.long, when=close > dcAverage) strategy.close("simpleBuy",when=close < dcLower) strategy.entry("simpleSell", strategy.short,when=close < dcAverage) strategy.close("simpleSell",when=close > dcAverage)