Chiến lược MACD Phân tích Động lực

Tác giả:ChaoZhang, Ngày: 2023-10-20 17:12:31
Tags:

img

Tổng quan

Chiến lược MACD Momentum Breakdown chủ yếu sử dụng sự kết hợp của chỉ số MACD và chỉ số Momentum để tạo ra các tín hiệu giao dịch, thuộc về một chiến lược theo xu hướng. Chiến lược này đầu tiên tính EMA nhanh và EMA chậm, sau đó tính giá trị MACD và tính thêm đường tín hiệu của MACD. Đồng thời, nó tính giá trị động lực của giá. Khi giá trị động lực vượt qua mức không cùng với chênh lệch MACD, nó tạo ra tín hiệu mua. Khi giá trị động lực vượt qua mức không cùng với chênh lệch MACD, nó tạo ra tín hiệu bán. Đây là một cơ chế xác nhận kép để tạo ra tín hiệu giao dịch.

Chiến lược logic

Chiến lược này chủ yếu dựa trên sự kết hợp của các chỉ số MACD và Momentum.

Chỉ số MACD là một chỉ số theo xu hướng, bao gồm EMA nhanh, EMA chậm và biểu đồ MACD. EMA nhanh thường có một tham số 12 ngày, và EMA chậm có một tham số 26 ngày.

EMA nhanh = EMA ((giá đóng cửa, 12)

EMA chậm = EMA (giá đóng cửa, 26)

MACD = EMA nhanh - EMA chậm

Đường tín hiệu = EMA ((MACD, 9)

Khi EMA nhanh vượt qua trên EMA chậm, điều đó có nghĩa là xu hướng tăng ngắn hạn mạnh hơn xu hướng dài hạn, đó là tín hiệu mua. Khi EMA nhanh vượt qua dưới EMA chậm, điều đó có nghĩa là xu hướng giảm dài hạn mạnh hơn xu hướng ngắn hạn, đó là tín hiệu bán.

Chỉ số Momentum phản ánh tốc độ chuyển động giá, và công thức tính toán của nó là:

Momentum = Giá đóng ngày hôm nay - Giá đóng N ngày trước

Khi giá đóng cửa ngày hôm nay tăng trên giá đóng cửa N ngày trước, giá trị động lực là dương tính, cho thấy xu hướng tăng. Khi giá đóng cửa ngày hôm nay giảm xuống dưới giá đóng cửa N ngày trước, giá trị động lực là âm, cho thấy xu hướng giảm.

Chiến lược này kết hợp chỉ số MACD với chỉ số Động lực. Các tiêu chí để tạo tín hiệu giao dịch là: khi sự khác biệt giữa chênh lệch MACD và chênh lệch động lực vượt qua mức không, nó tạo ra tín hiệu mua, tạo thành một đường chéo trên không. Khi sự khác biệt vượt qua dưới mức không, nó tạo ra tín hiệu bán, tạo ra đường chéo dưới không. Đây là một cơ chế xác nhận kép để sản xuất tín hiệu giao dịch, có thể lọc ra một số tín hiệu sai và đạt được xu hướng theo.

Phân tích lợi thế

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

  1. Sự kết hợp của các chỉ số MACD và Momentum đạt được xu hướng theo, tránh giao dịch không hiệu quả khi giá tài sản chỉ dao động mà không có hướng rõ ràng.

  2. Dựa trên cơ chế xác nhận kép, nó có thể lọc ra một số tiếng ồn và tránh nhiễu từ tín hiệu giả.

  3. Các thông số MACD có thể điều chỉnh, có thể được tối ưu hóa cho các sản phẩm và chu kỳ giao dịch khác nhau, làm cho nó rất thích nghi.

  4. Nó áp dụng cả cơ chế giao dịch mua và bán để nắm bắt xu hướng theo cả hai hướng.

  5. Chiến lược dễ hiểu với ít thông số hơn, phù hợp cho người mới bắt đầu học.

Phân tích rủi ro

Chiến lược này cũng có một số rủi ro:

  1. Cả MACD và Momentum đều thuộc về các chỉ số theo xu hướng. Chúng có thể tạo ra giao dịch không hiệu quả hơn khi thị trường thấy biến động dữ dội hoặc thiếu xu hướng rõ ràng.

  2. Mặc dù sự kết hợp hai chỉ số có thể lọc ra các tín hiệu sai, nhưng nó cũng có thể bỏ lỡ một số cơ hội giao dịch.

  3. Khi xu hướng chu kỳ chính đảo ngược, chỉ số MACD có thể chậm lại, dẫn đến thua lỗ giao dịch.

  4. Tần suất giao dịch có thể cao, đòi hỏi phải chú ý đến quản lý vốn và kiểm soát hoa hồng.

  5. Các thông số không chính xác có thể dẫn đến độ nhạy quá cao hoặc chậm trễ.

Hướng dẫn tối ưu hóa

Chiến lược có thể được tối ưu hóa trong các khía cạnh sau:

  1. Tối ưu hóa các thông số MACD để tìm kết hợp thông số tốt nhất cho các sản phẩm và chu kỳ giao dịch khác nhau.

  2. Tối ưu hóa tham số thời gian của chỉ số Momentum để cân bằng độ nhạy và lọc tiếng ồn.

  3. Thêm các cơ chế dừng lỗ để kiểm soát lỗ tối đa cho mỗi giao dịch.

  4. Thêm các mô-đun quản lý vị trí để mở rộng quy mô giao dịch theo xu hướng.

  5. Thêm các bộ lọc như chỉ số ATR để tránh giao dịch sai trong thị trường hỗn loạn.

  6. Kết hợp các chỉ số khác như Bollinger Bands và RSI để tạo ra các tín hiệu giao dịch đa xác nhận.

  7. Thêm các vòng tối ưu hóa cho lặp lại và tối ưu hóa tham số liên tục.

Tóm lại

Chiến lược MACD Momentum Breakdown thực hiện giao dịch theo xu hướng bằng cách sử dụng điểm mạnh của chỉ số MACD và Momentum. Cơ chế xác nhận kép của nó có thể lọc hiệu quả tiếng ồn thị trường và tránh giao dịch không hiệu quả. Chiến lược này tương đối đơn giản và dễ hiểu, đặc biệt phù hợp với người mới bắt đầu.


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

//@version=4
strategy(title="MACD MOMENTUM TEST", shorttitle="MACD MOM TEST")

// Getting inputs
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
len = input(title="Momentum", type=input.integer, defval=10)
src1 = input(title="Source MACD", type=input.source, defval=close)
src2 = input(title="Source MOMENTUM", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 14)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)

// Plot colors
col_grow_above = #0c8e61
col_grow_below = #ffcdd2
col_fall_above = #b2dfdb
col_fall_below = #d42f28
col_macd = #ffffff
col_signal = #d42f28
col_mom = #fbc02d

// Calculating
fast_ma = sma_source ? sma(src1, fast_length) : ema(src1, fast_length)
slow_ma = sma_source ? sma(src1, slow_length) : ema(src1, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
mom = src2 - src2[len]


ma(s,l) => ema(s,l)
sema = ma( src1, fast_length )
lema = ma( src1, slow_length )
i1 = sema + mom + ma( src1 - sema, fast_length )
i2 = lema + mom + ma( src1 - lema, slow_length )
macdl = i1 - i2
macd1 =sema - lema

delta = mom - macd1

// Strategy
    // Backtest
FromYear  = input(defval = 2001, title = "From Year", minval = 2009)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2009)
ToMonth   = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 31, title = "To Day", minval = 1, maxval = 31)

    // Function exampel
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false // create function "within window of time"

if (crossover(delta, 0))
    strategy.entry("Buy", true, when=window(), comment="Buy")

if (crossunder(delta, 0))
    strategy.close_all(when=window())

// Plot
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)
plot(hist, title="Histogram", style=plot.style_histogram, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 )
plot(macd, title="MACD", color=col_macd, transp=0)
plot(signal, title="Signal", color=col_signal, transp=0)
plot(mom, color=col_mom, title="Mom")






Thêm nữa