Chiến lược giao dịch ngắn hạn dựa trên EMA

Tác giả:ChaoZhang, Ngày: 2024-02-20 14:06:27
Tags:

img

Tổng quan

Chiến lược này được thiết kế với các nguyên tắc chéo của các đường EMA để thực hiện các giao dịch ngắn hạn thích hợp và kiếm được lợi nhuận hợp lý khi giá giảm xuống một mức độ nào đó.

Chiến lược logic

Chiến lược này áp dụng 5 đường EMA với các thông số khác nhau, cụ thể là đường 10 ngày, 20 ngày, 50 ngày, 75 ngày và 200 ngày.

  1. Khi giá vượt qua đường 75 ngày và giảm xuống dưới đường 50 ngày, nó được coi là một tín hiệu cho một pullback ngắn hạn thích hợp để có một vị trí ngắn.

  2. Sau khi đi ngắn, nếu đường 10 ngày vượt dưới đường 20 ngày, tiếp tục giữ vị trí ngắn. Khi đường 10 ngày vượt qua đường 20 ngày, đóng vị trí để hoàn thành vòng giao dịch ngắn hạn này.

Thông qua thiết kế logic này, biến động giá lớn trong ngắn hạn có thể được bắt để kiếm lợi từ chênh lệch giá trong thời gian giảm giá.

Ưu điểm

Ưu điểm lớn nhất của chiến lược này nằm ở các tín hiệu đơn giản và rõ ràng dễ thực hiện. Chỉ bằng tình huống chéo giữa một số đường trung bình động, các quyết định giao dịch có thể được thực hiện trơn tru, không có các mô hình phức tạp và tải dữ liệu lịch sử, làm giảm khó khăn trong thực hiện.

Ngoài ra, việc sử dụng kết hợp nhiều đường EMA giúp lọc tiếng ồn thị trường hiệu quả và xác định thời gian đảo ngược xu hướng trung hạn đến ngắn hạn chính xác để đưa ra các quyết định giao dịch hợp lý.

Rủi ro

Rủi ro lớn của chiến lược này đến từ sự biến động giá mạnh mẽ trong ngắn hạn. Sự gia tăng hoặc giảm mạnh không kiểm soát có thể dẫn đến việc dừng lỗ hoặc lấy lợi nhuận bị phá vỡ, gây ra tổn thất lớn. Ngoài ra, các thông số không phù hợp có thể dẫn đến các tín hiệu giao dịch quá thường xuyên làm suy yếu lợi nhuận của chiến lược.

Để kiểm soát rủi ro, các tham số của đường trung bình động nên được điều chỉnh thích hợp để duy trì tần số tín hiệu ở mức thích hợp. Các phạm vi dừng lỗ và lấy lợi nhuận hợp lý cũng nên được thiết lập để tránh tổn thất quá lớn mỗi giao dịch. Sự can thiệp thủ công cũng cần thiết khi đối mặt với điều kiện thị trường đặc biệt, đình chỉ chiến lược giao dịch.

Tối ưu hóa

Không gian tối ưu hóa chính nằm trong điều chỉnh tham số. Nhiều sự kết hợp có thể được thử nghiệm để tìm danh mục đầu tư tham số tối ưu. Ví dụ, nhiều đường trung bình động hơn có thể được giới thiệu như đường 60 ngày và 120 ngày để tạo thành một nguồn tín hiệu phong phú hơn.

Tối ưu hóa cũng có thể được thực hiện xung quanh các khía cạnh như dừng lỗ và lấy lợi nhuận. Việc nới lỏng đúng phạm vi dừng lỗ có thể làm giảm xác suất dừng sai. Tắt chặt phạm vi lấy lợi nhuận có thể làm tăng lợi nhuận. Những điều chỉnh tham số này cần dựa trên kết quả backtest cho tối ưu.

Kết luận

Để kết luận, chiến lược này khá đơn giản nói chung. Được thiết kế với các tín hiệu chéo EMA cơ bản, nó hình thành thành một chiến thuật giao dịch ngắn hạn khả thi. Ưu điểm của nó nằm trong các tín hiệu rõ ràng dễ thực hiện, có thể nắm bắt hiệu quả các cơ hội giao dịch từ sự đảo ngược xu hướng trung hạn đến ngắn hạn.


/*backtest
start: 2023-02-13 00:00:00
end: 2024-02-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © theswissguy

//@version=5
strategy("Jan 2024 Daily (Short)", initial_capital = 10000, overlay=true, commission_value = 1)

// use closing prices as data source throughout calcs.
ema_source = close
price = close

// set up the EMA curves.
ema10 = ta.ema(ema_source, 10)
ema20 = ta.ema(ema_source, 20)
ema50 = ta.ema(ema_source, 50)
ema75 = ta.ema(ema_source, 75)
ema200 = ta.ema(ta.ema(ema_source, 200), 35)

plot(ema10, color=color.red, title="EMA10")
plot(ema20, color=color.orange, title="EMA20")
plot(ema50, color=color.green, title="EMA50")
plot(ema75, color=color.yellow, title="EMA75")
plot(ema200, color=color.blue, title="EMA200", linewidth = 4)

// if EMA50 <= price <= EMA75 AND EMA10 < EMA20 - sell
dailySellIndicator = ta.crossover(price, ema75) and ta.crossunder(price, ema50) and ta.crossunder(ema10, ema20) 
dailyBuyIndicator = ta.crossover(ema10, ema20)

if(dailySellIndicator)
    strategy.entry("daily", strategy.short)
else if(dailyBuyIndicator)
    strategy.entry("daily", strategy.long)



Thêm nữa