Một chiến lược giao dịch dựa trên hai đường trung bình động thay đổi dần dần với các tham số khác nhau


Ngày tạo: 2023-12-20 14:28:36 sửa đổi lần cuối: 2023-12-20 14:28:36
sao chép: 0 Số nhấp chuột: 661
1
tập trung vào
1621
Người theo dõi

Một chiến lược giao dịch dựa trên hai đường trung bình động thay đổi dần dần với các tham số khác nhau

Tổng quan

Chiến lược giao dịch theo đường trung bình dần dần là một chiến lược giao dịch dựa trên tín hiệu chéo của chỉ số chuyển động trung bình (EMA) dựa trên hai tham số khác nhau. Nó sử dụng một đường EMA có chu kỳ ngắn và một đường EMA có chu kỳ dài, tạo ra tín hiệu giao dịch khi chúng giao nhau, tăng giá khi đường nhanh đi lên khi đi qua đường chậm và bằng phẳng khi đi xuống. Chiến lược này cũng kết hợp các phương tiện quản lý rủi ro như dừng lỗ, theo dõi dừng lỗ để khóa lợi nhuận và kiểm soát rủi ro.

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

Các chỉ số cốt lõi của chiến lược này là hai đường EMA: đường nhanh và đường chậm. Các tham số đường nhanh được đặt mặc định là đường 13 ngày, phản ứng với biến động giá nhạy cảm hơn; tham số đường chậm được đặt mặc định là đường 48 ngày, phản ứng với biến động giá chậm hơn. Khi đường ngắn tăng nhanh, đường nhanh sẽ tăng trước đường chậm; khi đường ngắn giảm, đường nhanh cũng sẽ giảm nhanh hơn đường chậm.

Theo nguyên tắc này, chiến lược này làm nhiều hơn khi đường nhanh từ dưới lên phá vỡ đường chậm, cho thấy giá bắt đầu tăng lên, có thể mua; khi đường nhanh từ trên xuống phá vỡ đường chậm, cho thấy xu hướng tăng lên đã kết thúc, nên dừng lại. Để kiểm soát rủi ro, chiến lược cũng thiết lập dừng lỗ ban đầu và theo dõi dừng lỗ: dừng lỗ ban đầu là 8% giá nhập, và theo dõi dừng lỗ là 120 điểm. Điều này có thể dừng lỗ sớm nhất khi giá đảo ngược, giảm thiểu tổn thất.

Trên thực hiện mã, chiến lược này dùng hai hàm crossover và crossunder để xác định tín hiệu giao dịch EMA, khi giao dịch xảy ra, kích hoạt entry và close tương ứng để mua và đóng.

Phân tích lợi thế

Chiến lược giao dịch theo đường thẳng dần dần có những lợi thế sau:

  1. Các tín hiệu chiến lược đơn giản, rõ ràng, dễ hiểu và thích hợp cho người mới học;

  2. Chỉ số đường trung bình có hiệu quả tốt trong việc giảm tiếng ồn thị trường, có thể phát hiện ra sự thay đổi xu hướng;

  3. Khả năng cấu hình mạnh mẽ, các tham số dòng nhanh và chậm, điểm dừng có thể được thiết lập tùy chỉnh;

  4. Kết hợp các biện pháp ngăn chặn tổn thất, bạn có thể kiểm soát rủi ro hiệu quả.

  5. Có một sự ổn định.

Phân tích rủi ro

Chiến lược này cũng có một số rủi ro:

  1. Trong một thị trường biến động mạnh, tín hiệu giao thoa EMA có thể bị chậm và không thể phản ánh kịp thời sự thay đổi giá;

  2. Điều chỉnh tham số chỉ số đường trung bình quá nhanh có thể tạo ra nhiều tín hiệu sai;

  3. Khi xu hướng yếu, EMA giao thoa ít hơn, không thể nắm bắt hiệu quả xu hướng giá.

  4. Chính chiến lược này không tính đến phân tích xu hướng ở cấp độ lớn, dễ tạo ra các giao dịch khác với xu hướng lớn khi xu hướng tổng thể của thị trường không rõ ràng.

Những rủi ro trên có thể được giảm thiểu bằng cách:

  1. Kết hợp với các chỉ số khác để xác nhận tín hiệu chéo đồng tuyến, như MACD, KD, v.v.

  2. Điều chỉnh các tham số EMA theo thị trường khác nhau để giảm tỷ lệ tín hiệu sai;

  3. Thêm mô-đun đánh giá xu hướng dựa trên đường trung bình dài hạn để đánh giá xu hướng chung của thị trường.

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

Chiến lược này có thể được tối ưu hóa theo các hướng sau:

  1. Tăng bộ lọc điều kiện mở vị trí để tránh quá nhiều giao dịch không cần thiết trong tình huống bất ổn. Các chỉ số như tỷ lệ biến động, khối lượng giao dịch có thể được kết hợp để thiết lập ngưỡng mở vị trí;

  2. Kết hợp các điểm cao, thấp và hỗ trợ của thị trường để thiết lập vị trí dừng lỗ và nâng cao độ chính xác của dừng lỗ;

  3. Thêm mô-đun đánh giá xu hướng để lọc các tín hiệu ngắn hạn bằng xu hướng dài trong khung thời gian cao hơn, tránh sự lệch lạc với xu hướng lớn;

  4. Các tham số EMA có thể được đào tạo và tối ưu hóa thông qua học máy để phù hợp hơn với tình huống thị trường thực tế, giảm tỷ lệ tín hiệu sai.

Những điểm trên là những hướng chính mà chiến lược này có thể được cải thiện và tối ưu hóa trong tương lai.

Tóm tắt

Chiến lược giao dịch đường trung bình biến động là một chiến lược theo xu hướng cơ bản. Nó sử dụng đường nhanh và đường chậm EMA để đánh giá xu hướng giá và kết hợp với các biện pháp ngăn chặn để kiểm soát rủi ro.

Mã nguồn chiến lược
/*backtest
start: 2022-12-13 00:00:00
end: 2023-12-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
// *** USE AT YOUR OWN RISK ***
// 
strategy("EMA Strategy", shorttitle = "EMA Strategy", overlay=true, pyramiding = 3,default_qty_type = strategy.percent_of_equity, default_qty_value = 10)


// === Inputs ===
// short ma
maFastSource   = input(defval = close, title = "Fast MA Source")
maFastLength   = input(defval = 13, title = "Fast MA Period", minval = 1)

// long ma
maSlowSource   = input(defval = close, title = "Slow MA Source")
maSlowLength   = input(defval = 48, title = "Slow MA Period", minval = 1)

// invert trade direction
tradeInvert = input(defval = false, title = "Invert Trade Direction?")
// risk management
useStop     = input(defval = true, title = "Use Initial Stop Loss?")
slPoints    = input(defval = 25, title = "Initial Stop Loss Points", minval = 1)
useTS       = input(defval = true, title = "Use Trailing Stop?")
tslPoints   = input(defval = 120, title = "Trail Points", minval = 1)
useTSO      = input(defval = false, title = "Use Offset For Trailing Stop?")
tslOffset   = input(defval = 20, title = "Trail Offset Points", minval = 1)

// === Vars and Series ===
fastMA = ema(maFastSource, maFastLength)
slowMA = ema(maSlowSource, maSlowLength)

plot(fastMA, color=blue)
plot(slowMA, color=purple)

goLong() => crossover(fastMA, slowMA)
killLong() => crossunder(fastMA, slowMA)
strategy.entry("Buy", strategy.long, when = goLong())
strategy.close("Buy", when = killLong())

// Shorting if using
goShort() => crossunder (fastMA, slowMA)
killShort() => crossover(fastMA, slowMA)
//strategy.entry("Sell", strategy.short, when = goShort())
//strategy.close("Sell", when = killShort())

if (useStop)
    strategy.exit("XLS", from_entry ="Buy", stop = strategy.position_avg_price / 1.08 )
    strategy.exit("XSS", from_entry ="Sell", stop = strategy.position_avg_price * 1.08)