Chiến lược này dựa trên việc phá vỡ kênh và sử dụng đường chéo trung bình động như tín hiệu thoát.
Tính toán mức cao nhất và thấp nhất trong một khoảng thời gian nhất định để xây dựng kênh trên và dưới.
Đi dài khi giá phá vỡ trên kênh trên; đi ngắn khi giá phá vỡ dưới kênh dưới.
Tính toán đường SMA nhanh và chậm.
Nếu dài, đóng dài khi SMA nhanh vượt qua SMA chậm; Nếu ngắn, đóng ngắn khi SMA nhanh vượt qua SMA chậm.
Kết hợp kênh và hệ thống trung bình động có thể cải thiện lợi nhuận.
Kênh đánh giá luân chuyển và SMA đánh giá sự cạn kiệt của xu hướng.
Bộ lọc SMA tránh các whipsaws và giảm các giao dịch không cần thiết.
Phạm vi kênh điều chỉnh phù hợp với các giai đoạn và biến động khác nhau.
Phạm vi kênh không chính xác có thể bỏ lỡ đột phá hoặc tạo ra đột phá sai.
Các thông số SMA không đúng có thể thoát sớm hoặc muộn.
Cần có kích thước vị trí hợp lý để hạn chế tổn thất đơn lẻ.
Cẩn thận để không bị phá vỡ, tránh theo đuổi giá cao / bán thấp.
Các thông số thử nghiệm để tối ưu hóa phạm vi kênh và thời gian SMA.
Thêm bộ lọc xu hướng để cải thiện tỷ lệ thành công.
Thêm kích thước vị trí như phần cố định và Martingale.
Thêm stop loss để kiểm soát single loss.
Chiến lược này tận dụng kênh và SMA để đạt được lợi nhuận ổn định trong các xu hướng mạnh. Nhưng phải tránh tổn thất cưa cưa và kích thước vị trí là rất quan trọng. Các cải tiến hơn nữa về điều chỉnh tham số, lọc tín hiệu và quản lý rủi ro sẽ cải thiện độ bền.
/*backtest start: 2023-10-01 00:00:00 end: 2023-10-13 00:00:00 period: 1m basePeriod: 1m 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/ // © anshuanshu333 //@version=4 // strategy("ChBrkOutStrategySMA", overlay=true, initial_capital = 200000) length = input(title="Length", type=input.integer, minval=1, maxval=1000, defval=7) fastSMA = sma(close,9) slowSMA = sma(close,21) upBound = highest(high, length) downBound = lowest(low, length) boundLongEntry = ((close >= upBound) or (high >= upBound)) and fastSMA>slowSMA and (close > open) boundShortEntry =((close <= downBound) or (low <= downBound)) and fastSMA<slowSMA and (close <open) u=plot(upBound, title = "Upper Bound",color=color.blue, linewidth=1) l=plot(downBound, title = "Lower Bound",color=color.red, linewidth=1) plot(fastSMA,title = "Fast SMA", color = color.red, linewidth =2) plot(slowSMA,title = "Slow SMA" ,color = color.green, linewidth =1) fill(u,l, transp=95) plot(avg(upBound,downBound), title = "Avg", color=color.gray,linewidth =1) if (boundLongEntry ) strategy.entry("LE", long = true) if (boundShortEntry) strategy.entry("SE", long = false) SmaLongExit = crossunder(fastSMA,slowSMA) SmaShortExit = crossover(fastSMA,slowSMA) //Close TRades if (strategy.position_size > 0) strategy.close(id="LE",when= SmaLongExit) if (strategy.position_size < 0) strategy.close(id="SE",when= SmaShortExit)