
Strategi ini mengikuti tren harga saham dengan menghitung saluran rata-rata, membangun posisi overhead atau kosong ketika harga menembus saluran rata-rata, dan termasuk dalam kategori strategi pelacakan tren.
Strategi ini pertama-tama menghitung rata-rata titik tinggi 20 hari sebagai saluran atas, rata-rata titik rendah 20 hari sebagai saluran bawah, dan menghitung garis tengah saluran. Garis tengah saluran mewakili tren harga rata-rata baru-baru ini.
Strategi ini secara keseluruhan relatif sederhana dan langsung, untuk menilai tren harga saham melalui saluran harga dasar, termasuk dalam jenis strategi pelacakan tren. Kelebihannya adalah mudah dioperasikan, memanfaatkan peluang investasi yang dibawa oleh tren harga, menghindari dana terkunci. Kelemahannya adalah pengaturan parameter yang tidak tepat dapat mempengaruhi efek, dan ada risiko tes penyesuaian tertentu.
/*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)