Chiến lược giao dịch giao dịch chéo trung bình động ngày MACD 200

Tác giả:ChaoZhang, Ngày: 2024-01-03 11:50:56
Tags:

img

Tổng quan

Chiến lược giao dịch này là một chiến lược định lượng dựa trên hoạt động chéo trung bình động 200 ngày của chỉ số MACD. Nó kết hợp hai chức năng của chỉ số MACD để đánh giá tín hiệu mua và bán thị trường và trung bình động 200 ngày để đánh giá xu hướng thị trường, nhằm phát hiện thời gian nhập và xuất chính xác hơn.

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

Có hai điểm chính của chiến lược này:

  1. Các đường chéo đường MACD nhanh và chậm tạo ra tín hiệu mua và bán. Khi đường nhanh vượt qua đường chậm lên, một tín hiệu mua được tạo ra. Khi đường nhanh vượt qua đường chậm xuống, một tín hiệu bán được tạo ra.

  2. Trung bình di chuyển 200 ngày đánh giá xu hướng thị trường tổng thể. Giá trên trung bình di chuyển 200 ngày cho thấy thị trường tăng, và dưới đây cho thấy thị trường giảm. Các tín hiệu mua chỉ được hành động trong thị trường tăng, và các tín hiệu bán chỉ trong thị trường giảm.

Theo hai điểm này, các quy tắc giao dịch cụ thể của chiến lược này là:

Khi đường nhanh MACD phá vỡ đường chậm MACD lên, biểu đồ âm, và giá trên trung bình động 200 ngày, một giao dịch mua được thực hiện. Khi đường nhanh MACD phá vỡ xuống qua đường chậm, biểu đồ dương, và giá dưới trung bình động 200 ngày, một giao dịch bán được thực hiện.

Phân tích lợi thế

  1. Sự xác nhận kép cải thiện sự ổn định và tỷ lệ thành công của chiến lược. MACD đánh giá các tín hiệu mua và bán, và đường trung bình động 200 ngày đánh giá xu hướng thị trường. Sự xác nhận kép có thể lọc ra một số tín hiệu giao dịch với sự không chắc chắn lớn hơn.

  2. Trong một thị trường có xu hướng mạnh mẽ, chiến lược này có thể mang lại lợi nhuận tương đối cao. Đặc biệt là trong thị trường tăng giá, nó có thể nhanh chóng nắm bắt các cơ hội tăng giá.

  3. Chỉ số MACD cũng tương đối nhạy cảm với việc thoát khỏi giai đoạn củng cố. Khi giá kết thúc một giai đoạn củng cố dài và bước vào giai đoạn xu hướng, chiến lược này có thể nhanh chóng nắm bắt hướng xu hướng mới.

Phân tích rủi ro

  1. Chiến lược này khá nhạy cảm với các thiết lập tham số.

  2. Gần các điểm chuyển hướng, tín hiệu MACD có xu hướng tạo ra nhiều lỗi hơn.

  3. Khi giá đang trong một giai đoạn củng cố dài, chiến lược này không thể xác định một hướng xu hướng rõ ràng, dẫn đến biến động tăng trong lợi nhuận / lỗ và thời gian rút dài hơn.

Tối ưu hóa

  1. Các kết hợp tham số khác nhau có thể được thử nghiệm để tìm các tham số MACD tạo ra các tín hiệu chính xác hơn.

  2. Xem xét thêm xác nhận từ các chỉ số kỹ thuật khác như RSI và KD để tạo ra sự đồng thuận của nhiều chỉ số, do đó làm tăng độ tin cậy của chiến lược.

  3. Thiết lập điểm dừng lỗ để kiểm soát giảm tối đa. Ngay lập tức dừng lỗ khi giá đảo ngược đáng kể, có thể ngăn chặn hiệu quả sự gia tăng tổn thất.

Kết luận

Chiến lược giao dịch chuyển động trung bình 200 ngày của MACD kết hợp hai chức năng đánh giá xu hướng và đánh giá tín hiệu giao dịch, có thể cải thiện hiệu quả xác suất lợi nhuận. Đây là một chiến lược giao dịch định lượng tương đối mạnh mẽ và đáng tin cậy.


/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-02 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © x11joe

//@version=4
//This strategy is based on a youtube strategy that suggested I do this...so I did!

strategy(title="MacD 200 Day Moving Average Signal Crossover Strategy", overlay=false, precision=2,commission_value=0.26, initial_capital=10000, currency=currency.USD, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Getting inputs
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
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 = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00

// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal

moving_avg_length = input(title="Moving Average Length", type=input.integer, defval=200)
moving_avg = sma(close,moving_avg_length)

moving_avg_normalized = close - moving_avg
plot(moving_avg_normalized, title="Moving Average Normalized", style=plot.style_line, color=color.orange,linewidth=3)

plot(hist, title="Histogram", style=plot.style_columns, 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)

if(macd>signal and macd<0 and close>moving_avg)
    strategy.entry("buy",strategy.long)

if(close<moving_avg and macd<signal and macd>0)
    strategy.entry("sell",strategy.short)

Thêm nữa