Chiến lược giao cắt đường trung bình động kép

EMA SMA
Ngày tạo: 2024-05-17 15:48:04 sửa đổi lần cuối: 2024-05-17 15:48:04
sao chép: 0 Số nhấp chuột: 661
1
tập trung vào
1617
Người theo dõi

Chiến lược giao cắt đường trung bình động kép

Tổng quan

Chiến lược chéo hai đường bằng nhau là một chiến lược giao dịch theo xu hướng cổ điển. Chiến lược này sử dụng hai đường trung bình di chuyển, một là đường trung bình di chuyển nhanh và một là đường trung bình di chuyển chậm. Khi đường trung bình di chuyển nhanh đi từ trên xuống đường trung bình di chuyển chậm, nó được gọi là “gold crossing”, cho thấy xu hướng tăng có thể được hình thành, tại thời điểm đó mở nhiều vị trí.

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

Cốt lõi của chiến lược này là sử dụng các đặc tính xu hướng và tín hiệu giao chéo của đường trung bình di chuyển để xác định hướng xu hướng và thời gian mở vị trí. Đầu tiên, bạn đặt các tham số cho các chu kỳ của đường trung bình di chuyển nhanh (bằng mặc định 50) và đường trung bình di chuyển chậm (bằng mặc định 200) và chọn sử dụng SMA hoặc EMA. Sau đó, tính toán hai đường trung bình di chuyển để xác định sự giao chéo của chúng:

  1. Khi đường trung bình di chuyển nhanh đi lên trên đường trung bình di chuyển chậm ((gold crossing), nếu không có vị trí hiện tại, hãy mở nhiều vị trí hơn, đồng thời đặt giá dừng lỗ ((theo tỷ lệ phần trăm dừng lỗ)).
  2. Khi đường trung bình di chuyển nhanh đi xuống qua đường trung bình di chuyển chậm ((crossover chết)), nếu không có vị trí hiện tại, hãy mở vị trí trống và đặt giá dừng lỗ.
  3. Nếu đã có nhiều vị trí đầu tư, khi xảy ra giao thoa tử vong, vị trí được thanh toán.
  4. Nếu đã có vị trí đầu trống, hãy thanh toán khi xảy ra giao thoa vàng. Bắt giữ xu hướng trung và dài hạn của giá bằng cách theo dõi xu hướng bằng cách mở và đặt lệnh dừng bằng tín hiệu giao thoa đường trung bình di chuyển.

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

  1. Logic đơn giản và rõ ràng, dễ hiểu và dễ thực hiện, là nền tảng của chiến lược theo dõi xu hướng.
  2. Các trung bình di chuyển của hai chu kỳ khác nhau có thể được giao chéo để đánh giá tốt hơn về sự hình thành và đảo ngược của xu hướng.
  3. Hỗ trợ cả hai loại moving average SMA và EMA, có thể lựa chọn linh hoạt.
  4. Cài đặt lỗ dừng, kiểm soát rủi ro tổn thất ở một mức độ nhất định.
  5. Phong cách theo dõi xu hướng, phù hợp với xu hướng trung và dài hạn.

Rủi ro chiến lược

  1. Việc lựa chọn tham số không đúng (ví dụ như chọn không đúng chu kỳ trung bình di chuyển) có thể dẫn đến tín hiệu thường xuyên hoặc trì hoãn xu hướng.
  2. Những biến động nhanh chóng có thể dẫn đến giao dịch thường xuyên và hoạt động kém.
  3. Có thể có một sự rút lui lớn khi xu hướng đảo ngược hoặc kết thúc.
  4. Lãi suất dừng cố định có thể không kiểm soát rủi ro tốt.

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

  1. Tối ưu hóa các tham số, bao gồm chu kỳ trung bình di chuyển, tỷ lệ dừng lỗ, để tăng sự ổn định và tỷ lệ rủi ro lợi nhuận.
  2. Có thể xem xét việc giới thiệu các chỉ số liên quan đến biến động như ATR để điều chỉnh động vị trí dừng lỗ.
  3. Sau khi xác nhận xu hướng, hãy mở vị trí ngay lập tức, thay vì mở vị trí khi giao nhau, hoặc thêm các chỉ số xác nhận xu hướng khác để hỗ trợ phán đoán, nâng cao độ chính xác của việc nắm bắt xu hướng.
  4. Có thể cải thiện bằng các chiến lược quản lý tài chính như tăng hoặc giảm.
  5. Cân nhắc kết hợp với các tín hiệu khác để tạo ra một chiến lược đa yếu tố.

Tóm tắt

Chiến lược chéo hai đường bằng nhau là một chiến lược theo dõi xu hướng đơn giản và cổ điển, đánh giá định hướng xu hướng và thời gian mở vị trí bằng cách chéo hai trung bình di chuyển có chu kỳ khác nhau, phù hợp để nắm bắt xu hướng trung và dài hạn. Tuy nhiên, tham số cố định có thể hoạt động không ổn định trong môi trường thị trường thay đổi, cần phải được tối ưu hóa hơn nữa để trở thành một chiến lược giao dịch tương đối ổn định. Chiến lược này có thể làm nền tảng cho chiến lược xu hướng và liên tục cải thiện và mở rộng trên cơ sở này.

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

//@version=5
//==============================================================================
// A baseline strategy with a well known concept, golden cross & death cross.
// Support for both Simple & Exponential moving averages.
// Support for long & short stop losses as a percentage.:well
//==============================================================================
strategy("Basic Moving Average Crosses", overlay=true)

//------------------------------------------------------------------------------
// configuration
//------------------------------------------------------------------------------
maQuickLength = input(50, title="Quick MA Length") 
maSlowLength  = input(200, title="Quick MA Length") 
useSma        = input(true, title="Use SMA? If false, EMA is used.")

maQuick = useSma ? ta.sma(close, maQuickLength) : ta.ema(close, maQuickLength)
maSlow  = useSma ? ta.sma(close, maSlowLength) : ta.ema(close, maSlowLength)

stop_loss_percentage = input(2.0, title="Stop Loss (%)")

var float longStopLevel = na
var float shortStopLevel = na

bool isGoldenCross = ta.crossover(maQuick, maSlow)
bool isDeathCross  = ta.crossunder(maQuick, maSlow)

//------------------------------------------------------------------------------
// position opening logic
//------------------------------------------------------------------------------

if(strategy.position_size == 0)
    // Golden cross, enter a long position
    if(isGoldenCross)
        strategy.entry("Buy", strategy.long)
        longStopLevel := close - close * stop_loss_percentage/100.0
        strategy.exit("StopLossLong", "Buy", stop=longStopLevel)
    // Death cross, enter short position
    else if(isDeathCross)
        strategy.entry("Sell", strategy.short)
        shortStopLevel := close + close * stop_loss_percentage/100.0
        strategy.exit("StopLossShort", "Sell", stop=shortStopLevel)

//------------------------------------------------------------------------------
// position closing logic
//------------------------------------------------------------------------------
else
    // Close long position on death cross
    if(strategy.position_size > 0 and isDeathCross)
        strategy.close("Buy")
    
    // Close short position on golden cross
    else if(strategy.position_size < 0 and isGoldenCross)
        strategy.close("Sell")

//------------------------------------------------------------------------------
// ploting
//------------------------------------------------------------------------------
plot(maQuick, color=color.yellow)
plot(maSlow, color=color.blue)