Chiến lược này tính toán các đường trung bình động của kênh và thiết lập các vị trí dài hoặc ngắn khi giá vượt qua các đường kênh để theo xu hướng của giá cổ phiếu.
Chiến lược đầu tiên tính toán trung bình cao 20 ngày như đường ray trên của kênh, trung bình thấp 20 ngày như đường ray dưới của kênh, và tính toán đường trung bình của kênh. Đường trung bình của kênh đại diện cho xu hướng giá trung bình gần đây. Khi giá vượt qua đường trung bình của kênh lên, một vị trí dài được thiết lập. Khi giá vượt qua đường trung bình của kênh xuống, một vị trí ngắn được thiết lập. Theo dõi xu hướng giá cho đến khi giá giảm trở lại phía đối diện của phạm vi kênh, đóng vị trí.
Nói chung, chiến lược này tương đối đơn giản và thẳng thắn. Nó đánh giá xu hướng giá cổ phiếu thông qua các kênh giá cơ bản và thuộc loại xu hướng sau. Những lợi thế là hoạt động dễ dàng, sử dụng đầy đủ các cơ hội đầu tư do xu hướng giá mang lại và tránh khóa quỹ. Những nhược điểm là cài đặt tham số không đúng có thể ảnh hưởng đến hiệu suất và có một số rủi ro của các thử nghiệm rút lui. Thông qua tối ưu hóa hợp lý, sự ổn định của chiến lược có thể được cải thiện và hiệu suất giao dịch thực tế có thể được tăng cường.
/*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)