Chiến lược giao dịch dựa trên độ lệch chuẩn của khối lượng giao dịch

Tác giả:ChaoZhang, Ngày: 2023-11-21
Tags:

img

Tổng quan

Chiến lược này xây dựng mô hình khối lượng giao dịch bằng cách sử dụng trung bình động và độ lệch chuẩn của khối lượng giao dịch, và xác định hướng xu hướng với mức trung bình động của giá để tạo ra tín hiệu giao dịch khi khối lượng bình thường. Nó cũng đặt giới hạn trên và dưới cho khối lượng giao dịch để tránh các tín hiệu sai khi khối lượng bất thường.

Chiến lược logic

Logic cốt lõi là xây dựng mô hình khối lượng giao dịch và đánh giá xu hướng giá.

  1. Xây dựng mô hình khối lượng giao dịch
    • Tính toán trung bình di chuyển 40 thời gian của khối lượng vavg như đường cơ bản
    • Tính toán độ lệch chuẩn 40 giai đoạn của khối lượng vsd như phạm vi biến động bình thường
    • Tính toán trung bình động 5 giai đoạn của khối lượng vavgn như mức khối lượng mới nhất
    • Thiết lập giới hạn dưới của khối lượng giới hạn thấp như vavg trừ 1 lần vsd
    • Thiết lập giới hạn trên của khối lượng uplimit như vavg cộng với 2 lần vsd
  2. Xu hướng giá của thẩm phán
    • Tính toán trung bình động 20 giai đoạn của giá đóng mavg như là chỉ số của xu hướng giá
  3. Tạo tín hiệu giao dịch
    • Khi mavg vượt trên ngày trước và vavgn trên giới hạn thấp, đi dài
    • Khi mavg vượt qua dưới ngày trước và vavgn là trên giới hạn thấp, đi ngắn
    • Khóa vị trí khi xu hướng MAVG đảo ngược

Chiến lược kết hợp mô hình khối lượng giao dịch và xu hướng giá để tránh theo đuổi xu hướng giá khi khối lượng bất thường, có thể lọc ra một số tín hiệu sai.

Phân tích lợi thế

  1. Kết hợp thay đổi khối lượng để đánh giá xu hướng giá có thể lọc ra một số tín hiệu sai và làm cho các tín hiệu giao dịch đáng tin cậy hơn
  2. Xây dựng mô hình khối lượng giao dịch sử dụng độ lệch chuẩn tránh tác động khối lượng cực đoan
  3. Các thông số điều chỉnh của đường trung bình động có thể thích nghi với sự thay đổi giá trong các chu kỳ khác nhau

Phân tích rủi ro

  1. Khối lượng và giá có thể khác nhau trong ngắn hạn, dẫn đến việc thiếu xu hướng giá
  2. Cài đặt tham số không chính xác của âm lượng có thể gây lỗi cho mô hình
  3. Không có lệnh dừng lỗ trong chiến lược có thể dẫn đến tổn thất lớn

Giải pháp:

  1. Điều chỉnh các thông số trung bình di chuyển đúng để tối ưu hóa mô hình
  2. Thêm logic dừng lỗ để kiểm soát lỗ duy nhất

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

  1. Thêm thêm các chỉ số để đánh giá xu hướng giá để làm cho tín hiệu đáng tin cậy hơn
  2. Tăng mô-đun học máy để đào tạo các tham số của mô hình khối lượng và giá dựa trên dữ liệu
  3. Thêm logic dừng lỗ để ngăn ngừa mất mát đơn quá mức
  4. Tối ưu hóa logic nhập để đảm bảo xác suất bắt được xu hướng cao hơn
  5. Kết hợp các chỉ số như ATR để tự động điều chỉnh khoảng cách dừng mất mát

Tóm lại

Chiến lược này sử dụng khối lượng để tránh theo đuổi xu hướng sai và các tín hiệu đầu vào tương đối đáng tin cậy. Nhưng chính chiến lược là đơn giản với không gian mở rộng lớn. Bằng cách thêm nhiều chỉ số, học máy, dừng lỗ và các mô-đun khác, nó có thể cải thiện thêm sự ổn định và khả năng bắt được xu hướng. Đây là một chiến lược theo đuổi xu hướng điển hình. Sau khi tối ưu hóa, nó có thể trở thành một chiến lược định lượng rất thực tế.


/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
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/
// © dongyun

//@version=4
strategy("交易量底部标准差系统", overlay=true)

options = input(1,'')
length = input(40,'')
nlow = input(5,'')
factor = input(1.0,'')

vavg = 0.0
vavgn = 0.0
vsd = 0.0
lowlimit = 0.0
uplimit = 0.0
mavg = 0.0
aror = 0.0
adjvol = 0.0
savevol = 0.0


//Find average volume, replacing bad values
adjvol := volume

if (volume != 0)
	savevol := volume
else
	savevol := savevol[1]
	adjvol := savevol


// Replace high volume days because they distort standard deviation
if (adjvol > 2 * factor * nz(vsd[1]))
	adjvol := savevol
else
	adjvol := adjvol[1]

vavg := sma(adjvol,length)
vsd := stdev(adjvol,length)
vavgn := sma(adjvol,nlow)

// Extreme volume limits
lowlimit := vavg - factor * vsd
uplimit := vavg + 2 * factor * vsd

// System rules based on moving average trend
mavg := sma(close,length/2)

// Only enter on new trend signals
if (options == 2)
	if (mavg > mavg[1] and mavg[1] <= mavg[2])
		strategy.entry("Long", strategy.long)
	if (mavg<mavg[1] and mavg[1]>=mavg[2])
		strategy.entry("Short", strategy.short)
else
	if (mavg > mavg[1] and vavgn > lowlimit)
		strategy.entry("Long", strategy.long)
	if (mavg < mavg[1] and vavgn > lowlimit)
		strategy.entry("Short", strategy.short)

// Exit on low volume
if (options != 1)
	if (mavg<mavg[1] or (strategy.position_size > 0 and vavgn<= lowlimit))
		strategy.close("Long")
	if (mavg>mavg[1] or (strategy.position_size > 0 and vavgn<= lowlimit))
		strategy.close("Short")
else
	if (mavg < mavg[1])
		strategy.close("Long")
	if (mavg > mavg[1])
		strategy.close("Short")

Thêm nữa