Chiến lược trích xuất xu hướng lọc thông dải


Ngày tạo: 2024-01-03 15:22:49 sửa đổi lần cuối: 2024-01-03 15:22:49
sao chép: 0 Số nhấp chuột: 641
1
tập trung vào
1621
Người theo dõi

Chiến lược trích xuất xu hướng lọc thông dải

Tổng quan

Chiến lược trích xuất xu hướng đợt thổi phồng là một chiến lược theo dõi xu hướng cổ phiếu dựa trên bộ lọc đợt thổi phồng. Chiến lược này sử dụng chỉ số trọng lượng trung bình di chuyển và đợt thổi phồng để xử lý chuỗi giá, trích xuất thành phần xu hướng trong giá và sử dụng một số tham số nhất định làm tín hiệu để tạo ra vị trí yên ổn.

Nguyên tắc chiến lược

Chiến lược này đầu tiên xây dựng một trung bình di chuyển có trọng lượng chỉ số đúp, điều chỉnh độ dài và độ trượt của trung bình di chuyển bằng cách điều chỉnh các tham số Length và Delta. Sau đó, sử dụng một bộ chuyển đổi toán học, trích xuất các thành phần xu hướng trong chuỗi giá, lưu trữ trong biến xBandpassFilter. Cuối cùng, tính toán trung bình di chuyển đơn giản xMean của xBandpassFilter làm chỉ số cho việc xây dựng và lưu trữ.

Khi xMean vượt qua các tham số Trigger đặt ở mức độ làm nhiều đầu, khi đi ngang làm đầu trống. Bạn có thể điều chỉnh mức độ Trigger để kiểm soát sự nhạy cảm của việc xây dựng kho và kho.

Phân tích lợi thế

  1. Sử dụng đường trung bình di chuyển có trọng lượng chỉ số đôi có thể loại bỏ một phần tiếng ồn trong chuỗi giá, làm cho chiến lược ổn định hơn.
  2. Bộ lọc dẫn chỉ trích các thành phần xu hướng trong chuỗi giá, tránh bị sai lệch bởi các biến động, làm cho chiến lược ổn định và đáng tin cậy hơn.
  3. Các tham số chiến lược ít hơn, dễ điều chỉnh và kiểm soát rủi ro.

Phân tích rủi ro

  1. Chiến lược này bị trì hoãn và có thể bỏ lỡ cơ hội biến đổi giá.
  2. Đường trung bình di chuyển có trọng lượng chỉ số kép và bộ lọc băng thông có hiệu quả lọc sóng thấp, sẽ lọc các tín hiệu tần số cao và làm giảm độ nhạy của chiến lược.
  3. Nếu các tham số được đặt không đúng cách, hiệu quả lọc quá mạnh và có thể bỏ lỡ cơ hội xu hướng mạnh hơn.

Có thể cải thiện sự trễ thời gian bằng cách rút ngắn các tham số Length một cách thích hợp, điều chỉnh độ nhạy của chiến lược kiểm soát mức độ kích hoạt.

Hướng tối ưu hóa

  1. Bạn có thể xem xét thêm các chiến lược ngăn chặn tổn thất để kiểm soát tổn thất đơn lẻ.
  2. Sự ổn định của chiến lược có thể được cải thiện thông qua hệ thống hai đường thẳng ngắn hạn và dài hạn.
  3. Có thể kết hợp với các chỉ số khác như khối lượng giao dịch thị trường để đánh giá tín hiệu đảo ngược và tránh bị mắc kẹt trong tình trạng biến động.
  4. Các tham số có thể được tối ưu hóa bằng học máy hoặc thuật toán di truyền để làm cho chiến lược ổn định và đáng tin cậy hơn.

Tóm tắt

Chiến lược này nói chung là ổn định hơn và hoạt động tốt hơn trong thị trường xu hướng mạnh. Nó có thể được tối ưu hóa thêm bằng nhiều cách để duy trì lợi nhuận ổn định trong nhiều môi trường thị trường hơn. Chiến lược này đáng để nghiên cứu và áp dụng thêm.

Mã nguồn chiến lược
/*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")