Chiến lược chiết xuất xu hướng lọc băng thông là một chiến lược theo dõi xu hướng cổ phiếu dựa trên các bộ lọc băng thông. Nó sử dụng một đường trung bình động cân bằng theo cấp số nhân và lọc băng thông để xử lý chuỗi giá và chiết xuất thành phần xu hướng trong giá như là tín hiệu cho các bước vào và ra.
Chiến lược này đầu tiên xây dựng một đường trung bình di chuyển nhân tố kép bằng cách điều chỉnh các tham số Length và Delta để kiểm soát chiều dài của đường trung bình di chuyển và tính trơn tru. Sau đó nó sử dụng một tập hợp các biến đổi toán học để chiết xuất thành phần xu hướng từ chuỗi giá và lưu trữ nó trong biến xBandpassFilter. Cuối cùng, nó tính toán đường trung bình di chuyển đơn giản của xBandpassFilter, xMean, làm chỉ số cho các mục nhập và xuất.
Nó đi dài khi xMean vượt qua trên mức Trigger, và đi ngắn khi vượt qua dưới. Độ nhạy của các lối vào và lối ra có thể được kiểm soát bằng cách điều chỉnh mức Trigger.
Giảm độ dài có thể cải thiện các vấn đề về độ trễ.
Chiến lược này tương đối ổn định với hiệu suất tốt trong các thị trường có xu hướng mạnh. Việc tối ưu hóa hơn nữa trong nhiều môi trường thị trường có thể làm cho nó có lợi nhuận đáng tin cậy hơn. Nó đảm bảo nghiên cứu và ứng dụng thêm.
/*backtest start: 2022-12-27 00:00:00 end: 2024-01-02 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version = 2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 14/12/2016 // The related article is copyrighted material from Stocks & Commodities Mar 2010 // // You can use in the xPrice any series: Open, High, Low, Close, HL2, HLC3, OHLC4 and ect... // You can change long to short in the Input Settings // Please, use it only for learning or paper trading. Do not for real trading. //////////////////////////////////////////////////////////// strategy(title="Extracting The Trend Strategy Backtest") Length = input(20, minval=1) Delta = input(0.5) Trigger = input(0) reverse = input(false, title="Trade reverse") hline(Trigger, color=blue, linestyle=line) xPrice = hl2 beta = cos(3.1415 * (360 / Length) / 180) gamma = 1 / cos(3.1415 * (720 * Delta / Length) / 180) alpha = gamma - sqrt(gamma * gamma - 1) xBandpassFilter = 0.5 * (1 - alpha) * (xPrice - xPrice[2]) + beta * (1 + alpha) * nz(xBandpassFilter[1]) - alpha * nz(xBandpassFilter[2]) xMean = sma(xBandpassFilter, 2 * Length) pos = iff(xMean > Trigger, 1, iff(xMean < Trigger, -1, nz(pos[1], 0))) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) barcolor(possig == -1 ? red: possig == 1 ? green : blue ) plot(xMean, color=red, title="ExTrend")