Chiến lược giao thoa EMA kép

Tác giả:ChaoZhang, Ngày: 2023-10-30 12:27:50
Tags:

img

Tổng quan

Chiến lược giao dịch EMA đôi là một chiến lược theo xu hướng điển hình. Nó sử dụng hai đường EMA của các giai đoạn khác nhau và tạo ra các tín hiệu giao dịch dựa trên giao dịch của họ. Khi EMA nhanh hơn vượt qua trên EMA chậm hơn, một tín hiệu mua được tạo ra. Khi EMA nhanh hơn vượt qua dưới EMA chậm hơn, một tín hiệu bán được tạo ra. Chiến lược này có thể theo dõi xu hướng trung dài và nắm bắt các cơ hội giao dịch trong giai đoạn bắt đầu xu hướng.

Chiến lược logic

Các thành phần chính của chiến lược này là:

  1. Đặt chiều dài cho EMA nhanh hơn và EMA chậm hơn.

  2. Tính toán EMA nhanh hơn và EMA chậm hơn. EMA nhanh hơn phản ứng nhanh hơn trong khi EMA chậm hơn ổn định hơn.

  3. Xác định các tình huống chéo EMA để tạo ra tín hiệu giao dịch. Khi EMA nhanh hơn vượt qua EMA chậm hơn, một tín hiệu mua được tạo ra. Khi EMA nhanh hơn vượt qua dưới EMA chậm hơn, một tín hiệu bán được tạo ra.

  4. Khi đi dài, các vị trí ngắn hiện có được đóng trước khi mở các vị trí dài.

  5. Đặt điểm dừng lỗ. Khi mua mua, dừng lỗ được kích hoạt nếu giá giảm xuống dưới mức thấp trước đó bằng một tỷ lệ phần trăm.

  6. Các giao dịch thoát dựa trên tín hiệu. Các vị trí dài được đóng khi EMA nhanh hơn vượt qua EMA chậm hơn. Các vị trí ngắn được đóng khi EMA nhanh hơn vượt qua EMA chậm hơn.

EMA nhanh hơn phản ứng với những thay đổi giá ngắn hạn nhanh chóng trong khi EMA chậm hơn phản ứng với các xu hướng dài hạn ổn định.

Phân tích lợi thế

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

  1. Khái niệm đơn giản dễ hiểu và thực hiện.

  2. Có thể theo dõi hiệu quả xu hướng trung bình dài hạn và nắm bắt cơ hội sớm.

  3. Thiết lập EMA kép tránh tiếng ồn từ biến động thị trường ngắn hạn.

  4. Có các quy tắc vào rõ ràng, các quy tắc ra và các quy tắc dừng lỗ.

  5. Chỉ cần một vài thông số, không dễ bị quá tải, điều chỉnh thông số dễ dàng phù hợp với người mới bắt đầu.

  6. Kết quả backtest tốt, khả thi cho giao dịch trực tiếp. Có thể được sử dụng độc lập hoặc kết hợp với các chiến lược khác.

Phân tích rủi ro

Một số rủi ro của chiến lược này:

  1. Chế độ giao thoa EMA đôi có xu hướng tạo ra tín hiệu sai và whipsaws. Các thông số cần điều chỉnh để lọc tín hiệu không hợp lệ.

  2. Không thể xử lý các tình huống biến động và thay đổi xu hướng tốt.

  3. Chiến lược EMA kép có xu hướng theo đuổi mức cao và bán mức thấp.

  4. Kết quả thử nghiệm sau có thể được lắp quá mức một cách nào đó.

  5. Không có stop loss kịp thời có thể dẫn đến tổn thất lớn.

  6. Chi phí giao dịch có thể ảnh hưởng đến lợi nhuận thực tế.

Các lĩnh vực cải thiện

Một số cách để cải thiện chiến lược:

  1. Tối ưu hóa các thông số thời gian EMA để tìm kết hợp tốt nhất, sử dụng tối ưu hóa bước đi trước và học máy.

  2. Thêm các chỉ số lọc xu hướng như ADX, CCI vv để tránh giao dịch trong xu hướng không chắc chắn.

  3. Thêm các chỉ số khối lượng như khối lượng giao dịch, vào khối lượng số dư để đảm bảo giao dịch thực sự là tín hiệu lái xe.

  4. Thực hiện stop loss động để tự động điều chỉnh stop dựa trên biến động thị trường.

  5. Kết hợp các sản phẩm tương quan để sử dụng tương quan cho quản lý rủi ro.

  6. giới thiệu máy học để tối ưu hóa tham số, kỹ thuật tính năng, lọc tín hiệu v.v.

  7. Xem xét chi phí giao dịch, điều chỉnh dừng và kích thước để giảm tần suất giao dịch.

  8. Tùy chỉnh các thông số dựa trên các đặc điểm của sản phẩm để cải thiện khả năng thích nghi.

  9. Thiết kế khuôn khổ chiến lược tổng hợp, kết hợp với các chiến lược khác để cải thiện độ bền.

Những cải tiến này có thể làm cho chiến lược mạnh mẽ hơn và sinh lợi hơn cho giao dịch trực tiếp.

Kết luận

Chiến lược này sử dụng đường chéo EMA kép để tạo ra tín hiệu giao dịch và có thể theo dõi hiệu quả xu hướng trung dài hạn. Ưu điểm nằm trong tính đơn giản và kết quả kiểm tra hậu quả tốt, giúp người mới bắt đầu dễ dàng sử dụng. Nhưng rủi ro tồn tại và nên được quản lý thông qua tối ưu hóa tham số, thêm các chỉ số, dừng động, tối ưu hóa chi phí giao dịch vv. Chiến lược có thể được sử dụng độc lập hoặc kết hợp với những người khác để tăng tính thực tế.


/*backtest
start: 2022-10-23 00:00:00
end: 2023-10-29 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2

strategy(title = "EMA Cross Strategy", shorttitle = "EMA Cross",calc_on_order_fills=true,calc_on_every_tick =true, initial_capital=21000,commission_value=.25,overlay = true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
StartYear = input(2018, "Backtest Start Year")
StartMonth = input(1, "Backtest Start Month")
StartDay = input(1, "Backtest Start Day")
UseStopLoss = input(true,"UseStopLoss")

window() => time >=  timestamp(StartYear, StartMonth, StartDay,00,00) ? true : false

stopLoss = input(20, title = "Stop loss percentage(0.1%)")


maFastSource   = input(defval = open, title = "Fast MA Source")
maFastLength   = input(defval = 12, title = "Fast MA Period", minval = 1)
// long ma
maSlowSource   = input(defval = open, title = "Slow MA Source")
maSlowLength   = input(defval = 26, title = "Slow MA Period", minval = 1)

maFast = ema(maFastSource, maFastLength)
maSlow = ema(maSlowSource, maSlowLength)


fast = plot(maFast, title = "Fast MA", color = #7a8598, linewidth = 2, style = line, transp = 50)
slow = plot(maSlow, title = "Slow MA", color = #e08937, linewidth = 2, style = line, transp = 50)


longEMA = crossover(maFast, maSlow)
exitLong = crossunder(maFast, maSlow)

shortEMA = crossover(maSlow, maFast)
exitShort = crossover(maFast, maSlow)


if (longEMA)
    strategy.entry("LongId", strategy.long, when=window())
 
if (shortEMA)
    strategy.entry("ShortId", strategy.short, when=window())


if (UseStopLoss)
    strategy.exit("StopLoss", "LongId", loss = close * stopLoss / 1000 / syminfo.mintick)
    strategy.exit("StopLoss", "ShortId", loss = close * stopLoss / 1000 / syminfo.mintick)

Thêm nữa