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

Tác giả:ChaoZhang
Tags:

img

Tổng quan

Chiến lược này sử dụng trung bình di chuyển nhanh và chậm để xác định và theo dõi xu hướng. Nó tạo ra tín hiệu mua khi đường nhanh vượt qua đường chậm và bán tín hiệu khi đường nhanh vượt qua đường chậm. Chiến lược này phù hợp để theo dõi xu hướng trung và dài hạn và lọc tiếng ồn thị trường hiệu quả.

Chiến lược logic

Phân tích lợi thế

Những lợi thế của chiến lược này bao gồm:

  1. Sử dụng phương pháp EMA hai để xác định rõ hướng xu hướng.
  2. Logic đơn giản và rõ ràng, dễ hiểu và thực hiện, phù hợp cho người mới bắt đầu.

Phân tích rủi ro

Một số rủi ro cũng tồn tại:

  1. Có thể giảm thiểu bằng cách điều chỉnh tham số EMA.
  2. Không hiệu quả trong việc đối phó với sự biến động giá cực đoan.
  3. Sự chậm trễ vốn có trong các hệ thống MA, có thể bỏ lỡ các điểm đảo ngược giá có thể tối ưu hóa với các chỉ số khác.

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

Một số hướng tối ưu hóa:

  1. Tối ưu hóa thời gian EMA để cải thiện lợi nhuận.
  2. Thêm các chiến lược dừng lỗ để hạn chế downside trên các giao dịch đơn.

Kết luận

Chiến lược này xây dựng một hệ thống giao dịch dựa trên đường chéo EMA kép, sử dụng các mối quan hệ EMA nhanh và chậm để xác định xu hướng thị trường. Việc tạo tín hiệu đơn giản và rõ ràng. Nó lọc một số tiếng ồn và đi cùng với xu hướng, phù hợp với giao dịch xu hướng trung hạn đến dài hạn. Có chỗ để cải thiện tính phổ quát và hiệu quả thông qua tối ưu hóa và kiểm soát rủi ro đa chỉ số.


/*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)

Thêm nữa