Chiến lược giao dịch chéo EMA kép

Tác giả:ChaoZhang, Ngày: 2023-09-19 19:36:03
Tags:

Tổng quan

Chiến lược giao dịch chéo EMA kép là một chiến lược theo xu hướng sử dụng chéo của hai EMA có chiều dài khác nhau để xác định xu hướng thị trường và thực hiện giao dịch.

Chiến lược logic

Chiến lược này chủ yếu sử dụng các giá trị và giao thoa của EMA ngắn hạn và dài hạn để xác định hướng xu hướng. Đầu tiên nó tính toán EMA ngắn hạn (ví dụ 13 giai đoạn) và EMA dài hạn (ví dụ 26 giai đoạn), sau đó tính toán tỷ lệ giao thoa tỷ lệ phần trăm giữa hai EMA. Nếu EMA ngắn nằm trên EMA dài và giao thoa lớn hơn một ngưỡng (ví dụ 5%), nó báo hiệu xu hướng tăng và giao dịch dài được thực hiện. Nếu EMA ngắn nằm dưới EMA dài và giao thoa lớn hơn ngưỡng, nó báo hiệu xu hướng giảm và giao dịch ngắn được thực hiện. Các giao dịch được đóng khi giá vượt qua trở lại trên hoặc dưới EMA ngắn.

Lý thuyết chính là:

  1. Tính toán EMA ngắn hạn và dài hạn
  2. Kiểm tra xem EMA ngắn trên hay dưới EMA dài
  3. Tính toán tỷ lệ chéo giữa hai EMA
  4. Xác định hướng xu hướng cho các giao dịch dài hoặc ngắn
  5. Đóng giao dịch khi giá vượt qua EMA ngắn

Điều này cho phép chiến lược theo dõi hiệu quả xu hướng trung và dài hạn và chuyển hướng khi xu hướng thay đổi.

Ưu điểm

  • Dễ dàng và hiệu quả để theo dõi xu hướng dài hạn
  • EMA giúp lọc tiếng ồn thị trường ngắn hạn
  • Thời gian EMA có thể cấu hình và ngưỡng chéo cho tính linh hoạt
  • Mức ngưỡng chéo chỉ đảm bảo giao dịch khi xu hướng mạnh
  • Sự phá vỡ EMA ngắn cho dừng lỗ giúp quản lý rủi ro

Rủi ro và giảm thiểu

  • Không thể ra khỏi trước khi đảo ngược xu hướng, rút tiền lớn hơn
  • Có thể bị chém trong hành động giá giới hạn phạm vi
  • Cần thiết phải thiết lập các khoảng thời gian EMA phù hợp và ngưỡng cho mỗi công cụ

Các rủi ro có thể được giảm bằng cách:

  1. Thêm bộ lọc để xác định tín hiệu đảo ngược xu hướng cho việc thoát sớm
  2. Tăng các quy tắc lọc xu hướng để tránh hoạt động giao dịch giới hạn trong phạm vi
  3. Tối ưu hóa thời gian EMA và ngưỡng cho mỗi công cụ

Cơ hội gia tăng

Chiến lược có thể được tăng cường trong các lĩnh vực như:

  1. Tối ưu hóa tham số thông qua backtesting để tìm ra thời gian EMA tối ưu và ngưỡng

  2. Việc lọc xu hướng bằng cách sử dụng các chỉ số bổ sung như MACD, Bollinger Bands để tránh whipsaws

  3. Chiến lược dừng lỗ như dừng lại hoặc dừng dựa trên thời gian để hạn chế lỗ

  4. Lấy lợi nhuận bằng cách di chuyển dừng lỗ để khóa lợi nhuận một phần sau khi đánh

  5. Tối ưu hóa định lượng bằng cách sử dụng máy học để tự động điều chỉnh các thông số và bộ lọc

  6. Tối ưu hóa danh mục đầu tư bằng cách kết hợp với các chiến lược không tương quan để giảm thu hút và tăng độ bền

Thông qua tối ưu hóa tham số, lọc tốt hơn, dừng lỗ, lấy lợi nhuận và tối ưu hóa định lượng và danh mục đầu tư, chiến lược có thể trở nên mạnh mẽ hơn, thích nghi và hiệu quả về mặt khoa học.

Kết luận

EMA crossover đôi là một chiến lược theo xu hướng đơn giản và trực tiếp phù hợp với giao dịch swing. Nó chỉ yêu cầu hai EMA để xác định hướng xu hướng, lý tưởng cho giao dịch xu hướng trung hạn đến dài hạn. Chiến lược cũng có thể được tăng cường thông qua điều chỉnh tham số, bộ lọc tốt hơn, dừng lỗ và tối ưu hóa định lượng khác để làm cho nó mạnh mẽ hơn. Dễ thực hiện và tối ưu hóa, đây là một chiến lược giao dịch xu hướng được khuyến cáo.


/*backtest
start: 2023-08-19 00:00:00
end: 2023-08-23 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("2-EMA Strategy", overlay=true, initial_capital=100, currency="USD", default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.075)

diffMinimum = input(0.95, step=0.01)

small_ema = input(13, title="Small EMA")
long_ema = input(26, title="Long EMA")

ema1 = ema(close, small_ema)
ema2 = ema(close, long_ema)


orderCondition = ema1 > ema2?((ema1/ema2)*100)-100 > diffMinimum:((ema2/ema1)*100)-100 > diffMinimum

longCondition = close > ema1 and ema1 > ema2
if (longCondition and orderCondition)
    strategy.entry("Long", strategy.long)

shortCondition = close < ema1 and ema1 < ema2
if (shortCondition and orderCondition)
    strategy.entry("Short", strategy.short)
    
strategy.close("Short", when=close > ema1)
strategy.close("Long", when=close < ema1)
    
plot(ema(close, small_ema), title="EMA 1", color=green, transp=0, linewidth=2)
plot(ema(close, long_ema), title="EMA 2", color=orange, transp=0, linewidth=2)

Thêm nữa