Chiến lược giao dịch dựa trên các chỉ báo ADX và MACD


Ngày tạo: 2023-12-13 15:45:24 sửa đổi lần cuối: 2023-12-13 15:45:24
sao chép: 3 Số nhấp chuột: 1244
1
tập trung vào
1621
Người theo dõi

Chiến lược giao dịch dựa trên các chỉ báo ADX và MACD

Tổng quan

Chiến lược này được gọi là chiến lược theo dõi xu hướng dựa trên chỉ số ADX và MACD, sử dụng chỉ số xu hướng trung bình ((ADX) để xác định hướng và cường độ của xu hướng và kết hợp với tín hiệu đa điểm của chỉ số tập trung trung trung trung bình di động ((MACD) để thực hiện giao dịch theo xu hướng. Chiến lược này sẽ thiết lập vị trí đa điểm hoặc trống khi ADX cho thấy có xu hướng mạnh và MACD phát đi tín hiệu giao dịch.

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

Chiến lược này đánh giá hướng và cường độ của xu hướng thị trường bằng cách tính ADX và đường cong + DI, -DI. Khi đường cong + DI đi qua đường cong -DI, đó là thị trường đa đầu, và khi đường cong + DI đi qua đường cong -DI, đó là thị trường đầu không.

Cụ thể, các tín hiệu giao dịch của chiến lược này có logic như sau:

Tín hiệu đa đầu: khi đường chênh lệch của +DI> -DI và MACD đi qua đường tín hiệu từ dưới lên Tín hiệu đầu trống: khi -DI> +DI và đường chênh lệch của MACD đi từ trên xuống đường tín hiệu

Theo logic này, chiến lược này có thể nắm bắt thời gian đầu vào tốt hơn trong một xu hướng mạnh mẽ.

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

Ưu điểm lớn nhất của chiến lược này là nó xem xét cả hai yếu tố là định hướng và chọn thời gian vào, cho phép các nhà giao dịch tìm thấy điểm vào tốt hơn khi thị trường có xu hướng mạnh mẽ, điều này làm tăng đáng kể sự ổn định và lợi nhuận của hệ thống.

Ngoài ra, chiến lược này cũng giới thiệu logic dừng lỗ. Chiến lược này sẽ chủ động dừng lỗ khi lỗ lỗ vượt quá giá dừng lỗ mà người dùng đã xác định. Điều này cũng là điểm nổi bật của chiến lược.

Rủi ro chiến lược

Mặc dù chiến lược này có một số ưu điểm, nhưng cũng có một số rủi ro cần lưu ý:

  1. Các tín hiệu giao dịch bao gồm ADX và MACD có thể bị mất hiệu lực hoặc tạo ra tín hiệu sai trong một số tình huống thị trường, dẫn đến tổn thất không cần thiết;

  2. Giá dừng lỗ được xác định bởi người dùng có thể bị phá vỡ, gây ra tổn thất lớn hơn dự kiến;

  3. Trong thị trường đảo ngược, chiến lược có thể tạo ra quá nhiều giao dịch không hiệu quả và chi phí giao dịch.

Để giảm thiểu những rủi ro này, khuyến nghị tối ưu hóa các thiết lập tham số của ADX và MACD và thực hiện các chiến lược quản lý tiền nghiêm ngặt, đồng thời điều chỉnh logic dừng lỗ để phù hợp với các tình huống thị trường khác nhau.

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

Chiến lược này có thể được tối ưu hóa:

  1. Có thể giới thiệu nhiều chỉ số hơn để tạo ra tín hiệu giao dịch mạnh hơn, ví dụ như giới hạn giao dịch kết hợp với chỉ số biến động;

  2. Các tham số của ADX và MACD có thể được tự động tối ưu hóa thông qua các phương pháp học máy;

  3. Có thể thiết lập một cơ chế dừng lỗ thích ứng để giá dừng lỗ theo dõi động thái biến động của thị trường.

Bằng cách này, chúng tôi hy vọng sẽ tăng thêm sự ổn định và lợi nhuận của chiến lược này.

Tóm tắt

Nhìn chung, chiến lược theo dõi xu hướng dựa trên chỉ số ADX và MACD, với các lợi thế như đánh giá hướng xu hướng, tìm thời gian nhập cảnh tốt nhất và thiết lập logic dừng lỗ, là một hệ thống giao dịch đáng xem xét. Với các tham số được tối ưu hóa và kiểm soát rủi ro, chiến lược này có thể thu được lợi nhuận đầu tư tốt.

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

//@version=5
strategy("TUE ADX/MACD Confluence V1.0", overlay=true)

showsignals = input(true, title="Show BUY/SELL Signals")
showcandlecolors = input(true, title="Show Candle Colors")
length = input(14, title="ADX Length")
smoothing = input(10, title="ADX Smoothing")
macdsource = input(close, title="MACD Source")
macdfast = input(12, title="MACD Fast Length")
macdslow = input(26, title="MACD Slow Length")
macdsignal = input(9, title="MACD Signal Length")
colorup = input(color.green, title="Up Candle Color")
colordown = input(color.red, title="Down Candle Color")

/////////////////////////////////////////////////////////////////////////////////////////////// ADX AND MACD CALC
[diplus, diminus, adx] = ta.dmi(length, smoothing)

[macdline, signalline, histline] = ta.macd(macdsource, macdfast, macdslow, macdsignal)

//////////////////////////////////////////////////////////////////////////////////////////////TRADE CALC

longcheck = diplus > diminus and macdline > signalline
shortcheck = diminus > diplus and signalline > macdline

int trade = 0

//Open from nothing

if trade == 0 and longcheck
    trade := 1

else if trade == 0 and shortcheck
    trade := -1
    
//Reversal

else if trade == 1 and shortcheck
    trade := -1
    
else if trade == -1 and longcheck
    trade := 1
    
//Keep status quo until crossover

else
    trade := trade[1]

//////////////////////////////////////////////////////////////////////////////////////////////PLOT 

colors = longcheck ? colorup : shortcheck ? colordown : color.white

plotcandle(open, high, low, close, color = showcandlecolors ? colors : na)

plotshape(trade[1] != 1 and trade == 1 and showsignals, style=shape.labelup, text='BUY', textcolor=color.white, color=color.green, size=size.small, location=location.belowbar)
plotshape(trade[1] != -1 and trade == -1 and showsignals, style=shape.labeldown, text='SELL', textcolor=color.white, color=color.red, size=size.small, location=location.abovebar)

///////////////////////////////////////////////////////////////////////////////////////////// ALERTS

// Add Stop Loss
stopLossPrice = input(100, title="Stop Loss Price")

if trade == 1
    strategy.entry("Long", strategy.long)

if trade == -1
    strategy.entry("Short", strategy.short)

if trade == 1 and close < close[1] - stopLossPrice
    strategy.close("LongExit")

if trade == -1 and close > close[1] + stopLossPrice
    strategy.close("ShortExit")