Chiến lược theo dõi xu hướng xuyên ngành dựa trên đường trung bình EMA hai chiều dừng động

Tác giả:ChaoZhang, Ngày: 2024-01-29 09:57:20
Tags:

基于EMA平均线双向动态止损的跨行情趋势追踪策略

Thông tin chi tiết

Chiến lược này dựa trên đường trung bình EMA, theo dõi hai chiều và thiết lập đường dừng lỗ ngắn dài năng động để nắm bắt thị trường xu hướng.

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

  1. Tính toán đường EMA nhanh (ngày 5) và đường EMA chậm (ngày 20)
  2. Làm nhiều hơn khi đường cao tốc đi qua đường chậm từ phía dưới; làm trống khi đường cao tốc đi qua đường chậm từ phía trên
  3. Sau khi làm nhiều, đặt đường dừng dừng động là giá nhập.(1 - tỷ lệ stoploss); sau khi đóng cửa, đặt đường stop stop động như giá vào(1+ tỷ lệ dừng lỗ ngắn)
  4. Một khi giá kích hoạt đường dừng lỗ tương ứng, giá dừng lỗ sẽ xuất hiện.

Phân tích ưu thế

  1. EMA có khả năng theo dõi xu hướng mạnh mẽ, đi qua hai chiều tạo thành đồng hồ, có thể khóa các cơ hội xu hướng hiệu quả
  2. Đường dừng lỗ tính toán động, theo dõi thị trường sau khi đạt được lợi nhuận, có thể khóa lợi nhuận xu hướng tối đa
  3. Sử dụng vwap như một điều kiện lọc bổ sung, tránh bị bóp và cải thiện chất lượng tín hiệu

Phân tích rủi ro

  1. Một chiến lược xu hướng thuần túy, dễ bị áp dụng khi thị trường sụp đổ
  2. Việc dừng lỗ quá lỏng lẻo có thể làm gia tăng lỗ
  3. Sự chậm trễ của tín hiệu tạo ra đường EMA có thể bỏ lỡ điểm tốt nhất của thị trường

Có thể được tối ưu hóa bằng cách sử dụng ATR để kiểm soát rủi ro, tối ưu hóa chiến lược dừng lỗ ngắn hạn hoặc kết hợp với các phương pháp khác như giao dịch lọc tiếng ồn.

Định hướng tối ưu

  1. Kết hợp với các chỉ số dừng dừng động như ATR hoặc DONCH, thiết lập đường dừng dừng phù hợp hơn với thị trường
  2. Tăng các tín hiệu lọc các chỉ số kỹ thuật khác, chẳng hạn như MACD, KDJ, v.v. để giảm nhầm lẫn
  3. Tối ưu hóa các tham số, tìm kiếm kết hợp đường dài đường trung bình nhanh nhất
  4. Bạn có thể thử một phương pháp học máy để tìm các thông số tối ưu.

Tóm lại

Chiến lược này nói chung là một chiến lược theo dõi xu hướng rất điển hình. EMA kép tạo thành cái chết của cái chết của cái chết của cái chết của cái chết của cái chết của cái chết của cái chết của cái chết của cái chết của cái chết của cái chết của cái chết.


/*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=5

strategy("EMA Crossover Strategy", shorttitle="EMAC", overlay=true,calc_on_every_tick=true)

// Input parameters
shortEmaLength = input(5, title="Short EMA Length")
longEmaLength = input(20, title="Long EMA Length")
priceEmaLength = input(1, title="Price EMA Length")

// Set stop loss level with input options (optional)
longLossPerc = input.float(0.05, title="Long Stop Loss (%)",
     minval=0.0, step=0.1) * 0.01

shortLossPerc = input.float(0.05, title="Short Stop Loss (%)",
     minval=0.0, step=0.1) * 0.01

// Calculating indicators
shortEma = ta.ema(close, shortEmaLength)
longEma = ta.ema(close, longEmaLength)
//priceEma = ta.ema(close, priceEmaLength)
vwap = ta.vwap(close)

// Long entry conditions
longCondition = ta.crossover(shortEma, longEma) and close > vwap
// Short entry conditions
shortCondition = ta.crossunder(shortEma, longEma) and close > vwap

// STEP 2:
// Determine stop loss price
longStopPrice  = strategy.position_avg_price * (1 - longLossPerc)
shortStopPrice = strategy.position_avg_price * (1 + shortLossPerc)


if (longCondition)
    strategy.entry("Enter Long", strategy.long)
    strategy.exit("Exit Long",from_entry = "Enter Long",stop= longStopPrice)
plotshape(series=longCondition, title="Long Signal", color=color.green, style=shape.triangleup, location=location.belowbar)


if (shortCondition)
    strategy.entry("Enter Short", strategy.short)
    strategy.exit("Exit Short", from_entry = "Enter Short",stop = shortStopPrice)
plotshape(series=shortCondition, title="Short Signal", color=color.red, style=shape.triangledown, location=location.abovebar)

// Stop loss levels
//longStopLoss = (1 - stopLossPercent) * close
//shortStopLoss = (1 + stopLossPercent) * close

// Exit conditions
//strategy.exit("Long", from_entry="Long", loss=longStopLoss)
//strategy.exit("Short", from_entry="Short", loss=shortStopLoss)

// Plotting indicators on the chart
plot(shortEma, color=color.yellow, title="Short EMA")
plot(longEma, color=color.green, title="Long EMA")
plot(close, color=color.black, title="Close")
plot(vwap, color=color.purple, title="VWAP")

// Plot stop loss values for confirmation
plot(strategy.position_size > 0 ? longStopPrice : na,
     color=color.red, style=plot.style_line,
     linewidth=2, title="Long Stop Loss")

plot(strategy.position_size < 0 ? shortStopPrice : na,
     color=color.blue, style=plot.style_line,
     linewidth=2, title="Short Stop Loss")
// Plotting stop loss lines
//plot(longStopLoss, color=color.red, title="Long Stop Loss", linewidth=2, style=plot.style_line)
//plot(shortStopLoss, color=color.aqua, title="Short Stop Loss", linewidth=2, style=plot.style_line)

Nhiều hơn nữa