Dual SuperTrend với Chiến lược giao dịch kết hợp MACD

Tác giả:ChaoZhang, Ngày: 2023-09-26 17:45:03
Tags:

Tổng quan

Chiến lược giao dịch kết hợp SuperTrend kép với MACD kết hợp hai chỉ số theo xu hướng (SuperTrend 1 và SuperTrend 2) với bộ dao động động (MACD) để cung cấp một cách tiếp cận có hệ thống để giao dịch mà không cần ra quyết định tùy ý.

Những lợi thế chính của chiến lược này:

  • Chứng minh SuperTrend kép - Sử dụng hai chỉ số SuperTrend với các khoảng thời gian và yếu tố ATR khác nhau để xác nhận hướng xu hướng giảm thiểu các tín hiệu sai.

  • Xác nhận động lượng - Biểu đồ MACD hoạt động như một bộ lọc động lượng để xác nhận các mục nhập và xuất phát.

  • Mục tiêu Quy tắc vào và ra - Chiến lược tạo ra các tín hiệu mua và bán rõ ràng dựa trên sự kết hợp của xu hướng và động lực.

  • Quản lý giao dịch tự động - Các cài đặt tích hợp cho hoa hồng, trượt và vốn ban đầu tự động hóa quá trình thực hiện giao dịch.

  • Khả năng tùy chỉnh - Tất cả các tham số có thể dễ dàng được tùy chỉnh để phù hợp với nhu cầu giao dịch cụ thể và điều kiện thị trường thay đổi.

Làm thế nào nó hoạt động

Chiến lược hoạt động theo một bộ quy tắc được xác định, tập trung chủ yếu vào hướng xu hướng được xác nhận bởi Dual SuperTrend và động lực được chỉ ra bởi biểu đồ MACD.

Quy tắc nhập cảnh

  • Long Entry: Cả SuperTrends tăng và biểu đồ MACD trên 0.

  • Short Entry: Cả hai siêu xu hướng giảm và biểu đồ MACD dưới 0.

Các quy tắc xuất cảnh

  • Exit Long: Hoặc SuperTrend chuyển hướng giảm hoặc biểu đồ MACD giảm xuống dưới 0.

  • Exit Short: Hoặc SuperTrend trở nên tăng hoặc biểu đồ MACD tăng trên không.

Quản lý thương mại

  • Tỷ lệ hoa hồng cố định và cài đặt trượt.

  • Quản lý rủi ro tự động để ngăn ngừa phơi nhiễm quá mức.

Hướng giao dịch

Chiến lược cho phép giao dịch trên cả thị trường tăng và giảm. Người dùng có thể chọn hướng (dài, ngắn hoặc cả hai) phù hợp với thị trường của họ.

Sử dụng

  • Tốt nhất áp dụng trong các khung thời gian mà xu hướng là rõ ràng.

  • Người dùng có thể tùy chỉnh các thông số SuperTrend và MACD.

Cài đặt mặc định

  • SuperTrend 1 Thời gian ATR: 10

  • SuperTrend 1 Factor: 3.0

  • SuperTrend 2 Thời gian ATR: 20

  • SuperTrend 2 Factor: 5.0

  • MACD Fast Length: 12

  • MACD Slow Length: 26

  • Đơn giản hóa tín hiệu MACD: 9

  • Ủy ban: 0,1%

  • Trượt: 1 điểm

  • Định hướng: Cả hai

Các tham số mặc định cung cấp một cách tiếp cận cân bằng nhưng có thể được tùy chỉnh.

Ưu điểm

Những lợi thế chính của chiến lược này:

  1. Xác minh xu hướng kép giảm thiểu tín hiệu sai

Sử dụng hai chỉ số SuperTrend làm giảm đáng kể các tín hiệu sai so với các chiến lược chỉ số duy nhất.

  1. Bộ lọc động lực MACD cải thiện độ chính xác

Biểu đồ MACD lọc ra các tín hiệu giao dịch ít lý tưởng hơn, cải thiện độ chính xác đầu vào.

  1. Kiểm soát rút tiền hiệu quả

Sự kết hợp của các chỉ số xu hướng kép cho phép thoát nhanh khi xu hướng thay đổi, giúp kiểm soát giảm.

  1. Mức độ tự động cao, không cần sự quyết đoán

Các quy tắc nhập cảnh và xuất cảnh được xác định rõ ràng loại bỏ các giải thích chủ quan và lỗi của con người.

  1. Có thể tùy chỉnh cao để áp dụng rộng hơn

Các tham số có thể điều chỉnh làm cho chiến lược này mạnh mẽ cho các công cụ và ưu tiên giao dịch khác nhau.

Rủi ro và tối ưu hóa

Các rủi ro tiềm ẩn bao gồm:

  1. Khó khăn trong chuyển đổi xu hướng năng động

Sự đảo ngược xu hướng thường xuyên có thể là một thách thức cho thiết lập chỉ số xu hướng kép.

  1. Kiểm soát rút vốn hạn chế trong các xu hướng mạnh

Stop loss có thể chậm lại trong các động thái xu hướng mạnh mẽ, dẫn đến giảm lớn hơn.

  1. Không thể phản ứng với các sự kiện đột ngột

Nó không thể nhanh chóng thích nghi với các sự kiện thiên nga đen, làm tăng nguy cơ rút lui.

Cơ hội tối ưu hóa:

  1. Các thông số điều chỉnh tinh tế cho các nhạc cụ khác nhau.

  2. Thêm các cơ chế dừng lỗ như dừng lại để kiểm soát thêm rút tiền.

  3. Bao gồm các chỉ số khác để xác định các sự kiện đột ngột và giảm rút tiền.

Kết luận

Tóm lại, chiến lược kết hợp Dual SuperTrend và MACD kết hợp các điểm mạnh của việc theo dõi xu hướng và phân tích động lực. Với các quy tắc rõ ràng và mức độ tự động hóa cao, nó có thể lọc hiệu quả tiếng ồn và cung cấp tiện ích thực tế mạnh mẽ. Nhưng cần phải giải quyết kiểm soát giảm và tối ưu hóa tham số. Nhìn chung, đây là một trong những ví dụ tốt nhất về một chiến lược giao dịch xu hướng có hệ thống.


/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-25 00:00:00
period: 30m
basePeriod: 15m
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/
// © PresentTrading

//@version=5
// Define the strategy settings
// strategy("Dual-Supertrend with MACD - Strategy [presentTrading]", overlay=true, precision=3, default_qty_type=strategy.cash, 
//  commission_value= 0.1, commission_type=strategy.commission.percent, slippage= 1, 
//   currency=currency.USD, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, initial_capital= 10000)

// Trading Direction Dropdown
tradeDirection = input.string("both", "Trading Direction", options=["long", "short", "both"])

// MACD Inputs
fast_length = input(12, "Fast Length")
slow_length = input(26, "Slow Length")
signal_length = input(9, "Signal Smoothing")
sma_source = input.string("EMA", "Oscillator MA Type", options=["SMA", "EMA"])
sma_signal = input.string("EMA", "Signal Line MA Type", options=["SMA", "EMA"])


// MACD Calculation
fast_ma = sma_source == "SMA" ? ta.sma(close, fast_length) : ta.ema(close, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(close, slow_length) : ta.ema(close, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal

// Input Parameters for Supertrend 1
atrPeriod1 = input(10, "ATR Length for Supertrend 1")
factor1 = input.float(3.0, "Factor for Supertrend 1", step=0.01)

// Supertrend Calculation for 1
[supertrend1, direction1] = ta.supertrend(factor1, atrPeriod1)

// Input Parameters for Supertrend 2
atrPeriod2 = input(20, "ATR Length for Supertrend 2")
factor2 = input.float(5.0, "Factor for Supertrend 2", step=0.01)

// Supertrend Calculation for 2
[supertrend2, direction2] = ta.supertrend(factor2, atrPeriod2)

// Combined Conditions
isBullish = direction1 < 0 and direction2 < 0 and hist > 0
isBearish = direction1 > 0 and direction2 > 0 and hist < 0
exitLong = direction1 > 0 or direction2 > 0 or hist < 0
exitShort = direction1 < 0 or direction2 < 0 or hist > 0

// Strategy Entry and Exit based on Trading Direction
if (tradeDirection == "both" or tradeDirection == "long")
    strategy.entry("Buy", strategy.long, when=isBullish)
    strategy.close("Buy", when=exitLong)

if (tradeDirection == "both" or tradeDirection == "short")
    strategy.entry("Sell", strategy.short, when=isBearish)
    strategy.close("Sell", when=exitShort)

bodyMiddle1 = plot((open + close) / 2, display=display.none)
upTrend1 = plot(direction1 < 0 ? supertrend1 : na, "Up Trend", color = color.green, style=plot.style_linebr)
downTrend1 = plot(direction1 < 0? na : supertrend1, "Down Trend", color = color.red, style=plot.style_linebr)

fill(bodyMiddle1, upTrend1, color.new(color.green, 90), fillgaps=false)
fill(bodyMiddle1, downTrend1, color.new(color.red, 90), fillgaps=false)

bodyMiddle2 = plot((open + close) / 2, display=display.none)
upTrend2 = plot(direction2 < 0 ? supertrend2 : na, "Up Trend", color = color.green, style=plot.style_linebr)
downTrend2 = plot(direction2 < 0? na : supertrend2, "Down Trend", color = color.red, style=plot.style_linebr)

fill(bodyMiddle2, upTrend2, color.new(color.green, 90), fillgaps=false)
fill(bodyMiddle2, downTrend2, color.new(color.red, 90), fillgaps=false)

Thêm nữa