Chiến lược theo xu hướng dựa trên đường trung bình động


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

Chiến lược theo xu hướng dựa trên đường trung bình động

Tổng quan

Chiến lược này sử dụng đường trung bình di chuyển nhanh và đường trung bình di chuyển chậm để xây dựng tín hiệu giao dịch, để xác định và theo dõi xu hướng. Nó tạo ra tín hiệu mua khi đường nhanh đi qua đường chậm; nó tạo ra tín hiệu bán khi đường nhanh đi qua đường chậm.

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

Chiến lược này sử dụng hai chu kỳ khác nhau của Exponential Moving Average như là cơ sở cho các quyết định giao dịch. Các tham số di chuyển nhanh trung bình được thiết lập là 30 ngày, được sử dụng để nắm bắt các biến động giá trong thời gian ngắn hơn; tham số di chuyển chậm trung bình được thiết lập là 100 ngày, được sử dụng để xác định hướng của xu hướng đường dài trong giá cả.

Khi đường nhanh từ dưới đi qua đường chậm, thị trường bước vào xu hướng tăng, tạo ra tín hiệu mua; khi đường nhanh từ trên đi qua đường chậm, thị trường bước vào xu hướng giảm, tạo ra tín hiệu bán.

Lợi thế chiến lược

Chiến lược này có những ưu điểm sau:

  1. Xây dựng dựa trên đường thẳng, có thể loại bỏ hiệu quả tiếng ồn thị trường ngắn hạn.
  2. Sử dụng chiến lược hai đường bằng nhau, bạn có thể xác định rõ xu hướng.
  3. Để thực hiện tối ưu hóa tham số, có thể tùy chỉnh chu kỳ trung tuyến chậm và nhanh.
  4. Với chức năng theo dõi xu hướng đường dài và điều chỉnh ngắn hạn.
  5. Quy tắc đơn giản, rõ ràng, dễ hiểu và phù hợp cho người mới bắt đầu.

Phân tích rủi ro

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

  1. Khi giá xảy ra phân tích ngang, có thể tạo ra tín hiệu giao dịch kích hoạt sai. Bạn có thể giảm rủi ro bằng cách tối ưu hóa tham số đường trung bình.
  2. Các trường hợp bất thường không thể đánh giá và xử lý hiệu quả sự biến động mạnh mẽ của giá. Bạn có thể thiết lập dừng lỗ để kiểm soát rủi ro.
  3. Hệ thống đường trung bình tự nó có tính chậm trễ, có thể bỏ lỡ điểm biến giá. Nó có thể được tối ưu hóa kết hợp với các chỉ số khác.

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

Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:

  1. Tối ưu hóa các tham số chu kỳ của đường trung bình, tăng hiệu quả lợi nhuận.
  2. Thêm các chỉ số khác, chẳng hạn như chỉ số khối lượng giao dịch, để tránh phá vỡ giả.
  3. Tăng chiến lược dừng lỗ, kiểm soát tổn thất đơn lẻ.
  4. Kết hợp các chỉ số xu hướng để đánh giá cường độ của xu hướng và tránh đảo ngược xu hướng.
  5. Thêm chức năng tối ưu hóa tham số để làm cho chiến lược phổ biến hơn.

Tóm tắt

Chiến lược này dựa trên hệ thống quyết định giao dịch xây dựng hai đường trung bình, đánh giá xu hướng thị trường thông qua mối quan hệ giá của đường trung bình nhanh và đường trung bình chậm, tạo tín hiệu đơn giản và rõ ràng. Chiến lược này lọc một phần tiếng ồn, có thể thuận lợi, phù hợp với giao dịch xu hướng đường dài trung bình.

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

//@version=2
strategy("EMA Strategy v2", shorttitle = "EMA Strategy v2", 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 = 30, title = "Fast MA Period", minval = 1)

// long ma
maSlowSource   = input(defval = close, title = "Slow MA Source")
maSlowLength   = input(defval = 100, 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 = 0, title = "Initial Stop Loss Points", minval = 1)
useTS       = input(defval = true, title = "Use Trailing Stop?")
tslPoints   = input(defval = 0, title = "Trail Points", minval = 1)
useTSO      = input(defval = false, title = "Use Offset For Trailing Stop?")
tslOffset   = input(defval = 0, 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.58)