Chiến lược định lượng dựa trên trọng số trung bình di chuyển biểu thức và trọng số khối lượng

Tác giả:ChaoZhang, Ngày: 2024-01-25 15:31:21
Tags:

img

Tổng quan

Chiến lược này được đặt tên là Quantitative Strategy Based on Exponential Moving Average and Volume Weighting. Nó chủ yếu thực hiện giao dịch định lượng bằng cách kết hợp hai yếu tố của chỉ số trung bình chuyển động và khối lượng trọng số. Chiến lược xem xét toàn diện xu hướng giá, thông tin khối lượng và thông tin giá mới nhất, có thể nắm bắt hiệu quả các cơ hội thị trường và có một số lợi thế nhất định.

Nguyên tắc

Chỉ số cốt lõi của chiến lược này là nRes, kết hợp trung bình di chuyển theo cấp số nhân xMAVolPrice, trung bình di chuyển theo cấp số nhân của khối lượng xMAVol và giá đóng cửa gần nhất và được tính bằng công thức sau:

xMAVolPrice = ema(volume * close, length)
xMAVol = ema(volume, length) 
nRes = xMAVolPrice / xMAVol

Trong đó xMAVolPrice là trung bình động tỷ lệ nhân của sản phẩm giá đóng cửa và khối lượng, phản ánh thông tin kết hợp của giá và khối lượng; xMAVol chỉ là trung bình động tỷ lệ nhân của khối lượng; nRes là tỷ lệ của hai trung bình động tỷ lệ nhân, phản ánh thông tin giá điều chỉnh.

Chiến lược xác định hướng của các vị trí dài và ngắn bằng cách so sánh mối quan hệ kích thước giữa nRes và giá đóng cửa mới nhất:

if (nRes < close[1])  
    long
if (nRes > close[1]) 
    short

Tóm lại, chiến lược so sánh chỉ số giá điều chỉnh khối lượng nRes với giá đóng gần đây nhất để xác định hướng của các vị trí dài và ngắn, đó là một chiến lược giao dịch định lượng điển hình.

Phân tích lợi thế

Những lợi thế chính của chiến lược này là:

  1. Kết hợp thông tin đa yếu tố: Chiến lược không chỉ xem xét thông tin về giá cả, mà còn kết hợp thông tin về khối lượng để tận dụng đầy đủ các đặc điểm đa yếu tố của cổ phiếu để đánh giá chính xác hơn xu hướng thị trường.

  2. Giảm các tín hiệu sai. Đánh giá khối lượng có thể lọc ra một số đột phá sai do khối lượng không đủ. Điều này có thể giảm hiệu quả giao dịch không cần thiết và tránh bị mắc kẹt.

  3. Tính kịp thời tốt hơn. So với các đường trung bình động đơn giản, các đường trung bình động theo hàm số trong chiến lược này nhạy cảm hơn với dữ liệu mới nhất và có thể nhanh chóng nắm bắt những thay đổi thị trường gần đây.

  4. Dễ thực hiện. Ý tưởng chiến lược đơn giản và rõ ràng, dễ hiểu và thực hiện, và đáp ứng các yêu cầu của giao dịch định lượng.

Phân tích rủi ro

Mặc dù chiến lược có một số lợi thế, nó cũng phải đối mặt với những rủi ro sau:

  1. Thông tin về khối lượng không đáng tin cậy. Các chỉ số khối lượng dễ bị thao túng và thiếu ổn định, có thể gây hiểu lầm.

  2. Rất ít cơ hội để phán đoán dài và ngắn. So với các chiến lược theo xu hướng đơn giản, các cơ hội cho chiến lược này để đưa ra phán đoán tương đối nhỏ, điều này có thể dễ dàng dẫn đến giao dịch không đủ.

  3. Khó khăn trong việc lựa chọn tham số. Việc lựa chọn các tham số như độ dài trung bình di chuyển trong ngày sẽ có tác động lớn đến hiệu suất của chiến lược. Việc lựa chọn không đúng có thể làm giảm đáng kể lợi nhuận.

  4. Rủi ro biến động thị trường mạnh mẽ: Trong thị trường chuyển động nhanh, tính toán chỉ số có thể không phản ứng kịp thời với giá mới nhất, dẫn đến việc bỏ lỡ điểm giao dịch tốt nhất.

Các giải pháp tương ứng: tối ưu hóa cài đặt tham số, kiểm soát chặt chẽ kích thước vị trí, đặt dừng lỗ và lấy lợi nhuận; kết hợp các chỉ số yếu tố khác để xác minh; điều chỉnh thích hợp tần suất giữ vị trí.

Hướng dẫn tối ưu hóa

Các hướng chính để tối ưu hóa chiến lược này là:

  1. Khả năng mở các vị trí linh hoạt hơn. Các vị trí có thể được mở khi sự khác biệt giữa nRes và giá đóng cửa lớn hơn một ngưỡng nhất định, không chỉ là phán đoán phân loại nhị phân, để nắm bắt nhiều cơ hội hơn.

  2. Tăng cơ chế quản lý vị trí. Theo biến động thị trường, điều chỉnh động kích thước của mỗi giao dịch để kiểm soát rủi ro hiệu quả.

  3. Kết hợp các yếu tố khác. Nhiều yếu tố có thể được thêm vào, chẳng hạn như các chỉ số tâm lý, các yếu tố cơ bản, vv, để đưa ra các phán quyết chiến lược toàn diện hơn.

  4. Các thuật toán tối ưu hóa tham số thích nghi. Các thuật toán có thể được thiết lập để tự động tối ưu hóa các tham số như chiều dài, để chúng có thể điều chỉnh thích nghi theo các đặc điểm của các thị trường chu kỳ khác nhau.

  5. Sử dụng các mô hình học máy. RNN và các mô hình học sâu khác có thể được sử dụng cho mô hình tính năng đa biến để đạt được các chiến lược phi tuyến tính từ đầu đến cuối.

Tóm lại

Chiến lược này xem xét toàn diện các yếu tố như giá và khối lượng, và so sánh chỉ số giá điều chỉnh khối lượng với giá đóng cửa mới nhất để xác định hướng giao dịch. So với một chỉ số duy nhất, nó có những lợi thế về thông tin phong phú hơn và giảm tín hiệu sai. Nhưng nó cũng phải đối mặt với những rủi ro như thao túng khối lượng và ít thời gian phán đoán hơn. Trong tương lai, các khía cạnh như tối ưu hóa logic vị trí mở, quản lý vị trí và kết hợp nhiều yếu tố có thể được cải thiện để làm cho chiến lược hiệu quả hơn.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 06/03/2017
// The related article is copyrighted material from Stocks & Commodities 2009 Oct 
//
// 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="Combining Exponential And Volume Weighting", overlay=true)
length = input(22, minval=1)
reverse = input(false, title="Trade reverse")
xMAVolPrice = ema(volume * close, length)
xMAVol = ema(volume, length)
nRes = xMAVolPrice / xMAVol
pos = iff(nRes < close[1], 1,
	     iff(nRes > close[1], -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(nRes, color=blue)

Thêm nữa