Chiến lược giao dịch định lượng giao cắt đường trung bình động kép EMA23/EMA50

EMA EMA23 EMA50
Ngày tạo: 2024-04-26 15:29:21 sửa đổi lần cuối: 2024-04-26 15:29:21
sao chép: 3 Số nhấp chuột: 605
1
tập trung vào
1617
Người theo dõi

Chiến lược giao dịch định lượng giao cắt đường trung bình động kép EMA23/EMA50

Tổng quan

Chiến lược này giao dịch dựa trên tín hiệu chéo của EMA23 và EMA50. Khi EMA23 vượt qua EMA50, nó tạo ra tín hiệu mua và khi vượt qua EMA50, nó tạo ra tín hiệu bán. Chiến lược này cũng sẽ dừng lỗ khi giá giảm xuống EMA50, và ngược lại dừng lỗ khi giá giảm xuống EMA50. Ngoài ra, chiến lược này cũng sẽ quay trở lại khi giá tăng lên EMA50.

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

  1. Tính trung bình di chuyển của hai chỉ số EMA23 và EMA50
  2. Khi EMA23 đeo EMA50, tạo ra tín hiệu mua; khi EMA23 đeo EMA50 dưới, tạo ra tín hiệu bán.
  3. Đối với các vị trí đa đầu, nếu giá giảm xuống dưới EMA50 và giá đóng cửa thấp hơn EMA50 trên đường K trước đó, thì dừng lỗ.
  4. Đối với các vị trí không đầu, nếu giá vượt quá EMA50 và giá đóng cửa cao hơn EMA50 trên đường K trước đó, thì dừng lỗ.
  5. Đối với các vị trí đa đầu, nếu giá quay trở lại EMA50 và giá đóng cửa, giá cao nhất đều cao hơn EMA50, và EMA23 cao hơn EMA50, hãy nhập lại.
  6. Đối với các vị trí không đầu, nếu giá giảm xuống dưới EMA50 và giá đóng cửa, giá thấp nhất là dưới EMA50 và EMA23 thấp hơn EMA50, hãy nhập lại.
  7. Các vị trí nhiều đầu có lợi nhuận gấp 1,6 lần so với giá đóng cửa được thiết lập để mở vị trí, và các vị trí trống có lợi nhuận gấp 0,75 lần so với giá đóng cửa được thiết lập để mở vị trí.

Lợi thế chiến lược

  1. Bi-equilibrium crossover là một chỉ số theo dõi xu hướng đơn giản và hiệu quả, giúp nắm bắt xu hướng.
  2. Các cơ chế ngăn chặn thiệt hại giúp kiểm soát rủi ro và tránh thiệt hại.
  3. Các cơ chế tái nhập cảnh cho phép các chiến lược có thể nắm bắt lại xu hướng và tăng tiềm năng lợi nhuận.
  4. Thiết lập kết thúc lợi nhuận cho phép chiến lược khóa lợi nhuận kịp thời.
  5. Khoảng thời gian 30 phút cung cấp nhiều cơ hội giao dịch hơn, đồng thời lọc ra một số tiếng ồn.

Rủi ro chiến lược

  1. EMA là một chỉ số theo dõi xu hướng, có thể bỏ lỡ điểm đầu vào tốt nhất.
  2. Cài đặt vị trí điểm dừng có thể không được tối ưu hóa, dẫn đến dừng quá sớm.
  3. Việc giao dịch thường xuyên có thể làm tăng chi phí xử lý và ảnh hưởng đến lợi nhuận.
  4. Chiến lược: Có thể có nhiều tín hiệu giả trong thị trường bị chấn động.
  5. Các kết thúc có lợi nhuận cố định có thể giới hạn không gian lợi nhuận của chiến lược.

Hướng tối ưu hóa chiến lược

  1. Các chỉ số kỹ thuật khác có thể được xem xét để giúp xác định xu hướng và cải thiện điểm khởi đầu, chẳng hạn như MACD, RSI.
  2. Để tối ưu hóa thiết lập điểm dừng, bạn có thể xem xét sử dụng các chỉ số dao động như ATR để điều chỉnh động vị trí dừng.
  3. Kiểm soát tần suất giao dịch, thiết lập các điều kiện lọc giao dịch thích hợp, giảm tín hiệu giả.
  4. Cài đặt các tham số chiến lược khác nhau cho thị trường chấn động và thị trường xu hướng.
  5. Các điểm có lợi nhuận có thể linh hoạt hơn, chẳng hạn như điều chỉnh theo biến động của thị trường, tỷ lệ lợi nhuận rủi ro và các yếu tố khác.

Tóm tắt

Chiến lược này là một chiến lược giao dịch định lượng dựa trên giao lộ hai đường bằng nhau để nắm bắt xu hướng thông qua tín hiệu giao nhau của EMA23 và EMA50, và thiết lập các cơ chế dừng lỗ và tái nhập để kiểm soát rủi ro và nâng cao tiềm năng lợi nhuận. Chiến lược này đơn giản, dễ hiểu và phù hợp cho giao dịch ngắn hạn như 30 phút. Tuy nhiên, chiến lược này cũng có một số hạn chế, chẳng hạn như đánh giá xu hướng sau khi quá hạn, không tối ưu hóa dừng lỗ, thị trường xung đột không hoạt động tốt.

Mã nguồn chiến lược
/*backtest
start: 2023-04-20 00:00:00
end: 2024-04-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA Crossover Strategy", overlay=true)

// EMA 23 ve EMA 50'nin hesaplanması
ema23 = ta.ema(close, 23)
ema50 = ta.ema(close, 50)

// Ana alım kuralı: EMA 23 ve EMA 50'nin yukarı kesilmesi
buySignal = ta.crossover(ema23, ema50)

// Ana satış kuralı: EMA 23 ve EMA 50'nin aşağı kesilmesi
sellSignal = ta.crossunder(ema23, ema50)

// Long pozisyon stop seviyesi
longStopLoss = low < ema50 and close < ema50[1]

// Short pozisyon stop seviyesi
shortStopLoss = high > ema50 and close > ema50[1]

// Long pozisyon için tekrar giriş kuralı
longReEntry = high > ema50 and close > ema50 and close > ema50 and ema23 > ema50

// Short pozisyon için tekrar giriş kuralı
shortReEntry = low < ema50 and close < ema50 and close < ema50 and ema23 < ema50

// Long işlemde kar alma seviyesi (%60)
longTakeProfit = strategy.position_avg_price * 1.60

// Short işlemde kar alma seviyesi (%25)
shortTakeProfit = strategy.position_avg_price * 0.75

// Long işlem için yeniden giriş koşulu
longReEntryCondition = strategy.position_size <= 0 and longReEntry

// Short işlem için yeniden giriş koşulu
shortReEntryCondition = strategy.position_size >= 0 and shortReEntry

// Geriye dönük test için başlangıç tarihi (01.01.2022)
startDate = timestamp(2022, 01, 01, 00, 00)

if (time >= startDate)
    if (buySignal)
        strategy.entry("Buy", strategy.long)

    if (sellSignal)
        strategy.entry("Sell", strategy.short)

    if (strategy.position_size > 0 and (longStopLoss or close >= longTakeProfit))
        strategy.close("Buy")

    if (strategy.position_size < 0 and (shortStopLoss or close <= shortTakeProfit))
        strategy.close("Sell")

    if (longReEntryCondition)
        strategy.entry("Buy", strategy.long)

    if (shortReEntryCondition)
        strategy.entry("Sell", strategy.short)