Chiến lược theo dõi xu hướng MACD


Ngày tạo: 2023-12-11 14:57:00 sửa đổi lần cuối: 2023-12-11 14:57:00
sao chép: 0 Số nhấp chuột: 649
1
tập trung vào
1621
Người theo dõi

Chiến lược theo dõi xu hướng MACD

Tổng quan

Chiến lược theo dõi xu hướng MACD là một chiến lược giao dịch định lượng dựa trên chỉ số MACD. Chiến lược này đánh giá xu hướng thị trường bằng cách xác định các tín hiệu của chỉ số MACD và các tín hiệu chết.

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

Một chiến lược theo dõi xu hướng của MACD có một logic cốt lõi:

  1. Tính MACD và tín hiệu.
  2. Khi đường MACD vượt qua 0 từ dưới lên, hãy ghi lại điểm cao nhất tại thời điểm đó và chờ tín hiệu chết.
  3. Khi đường MACD giảm xuống 0 từ trên xuống dưới, ghi lại điểm thấp nhất tại thời điểm này và chờ tín hiệu vàng.
  4. Khi xảy ra Gold Forks, ghi lại giá đóng cửa hiện tại như là điểm nhập thêm, thiết lập điểm dừng lỗ, mở thêm.
  5. Khi xảy ra sự cố, hãy ghi lại giá đóng cửa hiện tại như là điểm tham gia để thực hiện lệnh giảm giá, thiết lập điểm dừng lỗ và mở lệnh giảm giá.
  6. Khi nắm giữ nhiều vị trí, nếu lợi nhuận đạt đến mục tiêu đặt trước hoặc rút lui đến điểm dừng lỗ, vị trí thanh toán sẽ thu lợi nhuận.
  7. Khi nắm giữ vị thế short position, nếu lợi nhuận đạt đến mục tiêu đặt trước hoặc rút lại đến điểm dừng lỗ, vị thế thanh toán sẽ thu lợi nhuận.

Thông qua cơ chế theo dõi xu hướng này, chiến lược này có thể bắt kịp sự biến đổi xu hướng thị trường và tạo ra lợi nhuận.

Phân tích lợi thế

Chiến lược theo dõi xu hướng MACD có những ưu điểm sau:

  1. Nguồn tín hiệu chiến lược duy nhất rõ ràng, được tạo ra trực tiếp bởi chỉ số MACD, tránh nhiễu tín hiệu.
  2. Sử dụng các đặc điểm của MACD để đánh giá xu hướng thị trường.
  3. Theo dõi các biến động trong thời gian, theo dõi lợi nhuận.
  4. Các cơ quan quản lý rủi ro đã được thiết lập và có cơ chế ngăn chặn thiệt hại.

Phân tích rủi ro

Các chiến lược theo dõi xu hướng MACD cũng có những rủi ro sau:

  1. Chỉ số MACD dễ tạo ra tín hiệu giả, có thể dẫn đến thua lỗ khi hoạt động quá ngắn.
  2. Các điểm dừng lỗ được thiết lập không đúng cách có thể làm tăng tổn thất đơn lẻ.
  3. Theo dõi tỷ lệ lợi nhuận và điểm dừng lỗ là một sự cân bằng khó khăn, có nguy cơ theo dõi quá mức dẫn đến tổn thất.

Các biện pháp tối ưu hóa sau đây có thể được áp dụng đối với các rủi ro trên:

  1. Kết hợp với các chỉ số khác để lọc các tín hiệu giả.
  2. Động lực điều chỉnh điểm dừng
  3. Tối ưu hóa các tham số theo dõi tỷ lệ lợi nhuận và điểm dừng lỗ.

Hướng tối ưu hóa

Chiến lược theo dõi xu hướng MACD có thể được tối ưu hóa từ:

  1. Tối ưu hóa các tham số chỉ số MACD, giảm tỷ lệ tín hiệu giả. Có thể thử nghiệm các tham số MACD khác nhau.

  2. Các chỉ số khác như tăng số lượng giao dịch có thể được cài đặt điều kiện số lượng giao dịch tối thiểu

  3. Thiết lập cơ chế theo dõi động. Bạn có thể điều chỉnh điểm dừng theo tỷ lệ biến động trong thời gian thực.

  4. Tối ưu hóa logic xác định tín hiệu mở đầu. Có thể đặt các điều kiện kích hoạt tín hiệu nghiêm ngặt hơn.

  5. Kết hợp với mô hình học máy để lọc tín hiệu. Mô hình có thể được đào tạo để đánh giá độ tin cậy của tín hiệu.

Tóm tắt

Chiến lược theo dõi xu hướng MACD nói chung là một chiến lược định lượng trưởng thành hơn. Chiến lược này sử dụng chỉ số MACD để đánh giá xu hướng thị trường, kết hợp với rủi ro kiểm soát cơ chế dừng lỗ, có thể theo dõi xu hướng giá cổ phiếu một cách hiệu quả. Tuy nhiên, chỉ số MACD cũng có một số sai sót, dễ tạo ra tín hiệu giả.

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

//@version=5
strategy("MACD Cross Strategy", overlay=true)

// Get MACD values
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
var float entryLongPrice = na
var float entryShortPrice = na

var float highestLongProfit = 0
var float highestShortProfit = 0

var float highestMACD = 0
var float lowestMACD = 0
var bool haveOpenedLong = false
var bool haveOpenedShort = false

var float stoploss = 0.04 // To be adjust for different investment
var float minProfit = 0.05 // To be adjust for different investment

if macdLine > 0
    lowestMACD := 0
    highestMACD := math.max(highestMACD, macdLine)
    haveOpenedShort := false
else
    highestMACD := 0
    lowestMACD := math.min(lowestMACD, macdLine)
    haveOpenedLong := false

// Enter long position when MACD line crosses above the signal line
if ta.crossover(macdLine, signalLine) and macdLine < highestMACD and macdLine > 0 and haveOpenedLong == false
    strategy.entry("Long", strategy.long)
    strategy.exit("Exit Long", from_entry = "Long", stop=close*(1 - stoploss))
    entryLongPrice := close
    haveOpenedLong := true

if ta.crossunder(macdLine, signalLine) and macdLine > lowestMACD and macdLine < 0 and haveOpenedShort == false
    strategy.entry("Short", strategy.short)
    strategy.exit("Exit Short", from_entry = "Short", stop=close*(1 + stoploss))
    entryShortPrice := close
    haveOpenedShort := true

// log.info("entryLongPrice:{0}", entryLongPrice)
if strategy.position_size > 0
    profit = close - entryLongPrice
    log.info("profit:{0}", profit)
    if profit > 0
        highestLongProfit := math.max(highestLongProfit, profit)
        if profit / entryLongPrice > minProfit and highestLongProfit * 0.8 > profit
            strategy.close("Long")
            highestLongProfit := 0

if strategy.position_size < 0
    profit = entryShortPrice - close
    if profit > 0
        highestShortProfit := math.max(highestShortProfit, profit)
        log.info("highestShortProfit={0}, profit={1}", highestShortProfit, profit)
        if profit / entryShortPrice > minProfit and highestShortProfit * 0.8 > profit
            strategy.close("Short")
            highestShortProfit := 0