Chiến lược dừng lỗ động đa chỉ báo dựa trên xác nhận xu hướng

SMA MACD ADX Swing Low
Ngày tạo: 2025-02-20 11:19:58 sửa đổi lần cuối: 2025-02-20 11:19:58
sao chép: 2 Số nhấp chuột: 323
2
tập trung vào
319
Người theo dõi

Chiến lược dừng lỗ động đa chỉ báo dựa trên xác nhận xu hướng Chiến lược dừng lỗ động đa chỉ báo dựa trên xác nhận xu hướng

Tổng quan

Đây là một chiến lược theo dõi xu hướng kết hợp nhiều chỉ số kỹ thuật, chủ yếu là sự phối hợp hợp của ba chỉ số thông qua SMA, MACD và ADX, được giao dịch ở cấp độ vòng tròn. Chiến lược này sử dụng cơ chế dừng lỗ động để tối ưu hóa quản lý rủi ro và kiểm soát vị trí chính xác hơn bằng cách xác định điểm thấp swing.

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

Lập luận cốt lõi của chiến lược này dựa trên cơ chế xác minh ba lần:

  1. Xác định hướng xu hướng tổng thể thông qua SMA ((30), giá trên đường trung bình đại diện cho xu hướng tăng
  2. Sử dụng MACD ((9,18,9) để nắm bắt động lực giá, yêu cầu đường MACD ở trên đường tín hiệu và là giá trị dương
  3. Sử dụng ADX ((14) để xác nhận cường độ của xu hướng, ADX lớn hơn 25 cho thấy xu hướng đầy đủ
  4. Tạo thêm tiền khi đáp ứng ba điều kiện trên
  5. Thiết lập dừng động bằng cách xác định điểm thấp thứ hai và thanh toán khi giá giảm xuống SMA

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

  1. Xác thực chéo đa chỉ số, giảm đáng kể ảnh hưởng của tín hiệu giả
  2. Sử dụng giao dịch ở cấp độ vòng tròn để tránh nhiễu động trong ngày
  3. Cơ chế dừng động, tự điều chỉnh điểm dừng bằng cách di chuyển điểm thấp
  4. ADX lọc yếu, nâng cao chất lượng giao dịch
  5. Quản lý rủi ro toàn diện, bao gồm cả sự bảo vệ hai mặt đối với sự đảo ngược xu hướng và dừng lỗ

Rủi ro chiến lược

  1. Nhiều chỉ số có thể gây ra sự chậm trễ trong tín hiệu và mất cơ hội trong quá trình nhanh chóng
  2. Hoạt động ở cấp đường viền có thể bị rút lui nhiều hơn
  3. Xác định điểm thấp dao động có thể không ổn định trong biến động mạnh
  4. Cần thời gian để tích lũy đủ dữ liệu giá
  5. Có thể tạo ra các tín hiệu sai lệch thường xuyên trong thị trường chấn động

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

  1. Có thể xem xét giới thiệu các tham số chỉ số thích ứng, điều chỉnh theo biến động của thị trường
  2. Tăng xác thực chỉ số giao dịch, tăng tín hiệu đáng tin cậy
  3. Phát triển thuật toán nhận dạng Swing Low thông minh hơn
  4. Thêm phân loại môi trường thị trường, sử dụng các tham số khác nhau cho các trạng thái thị trường khác nhau
  5. Tối ưu hóa logic dừng lỗ, xem xét giới thiệu dừng lỗ di động

Tóm tắt

Chiến lược này xây dựng một hệ thống theo dõi xu hướng vững chắc thông qua sự phối hợp của nhiều chỉ số kỹ thuật. Cơ chế dừng động cung cấp kiểm soát rủi ro tốt, phù hợp để theo dõi xu hướng trung và dài hạn. Ưu điểm chính của chiến lược là tín hiệu đáng tin cậy cao, quản lý rủi ro hoàn hảo, nhưng đồng thời cũng phải đối mặt với các thách thức như tín hiệu chậm trễ.

Mã nguồn chiến lược
/*backtest
start: 2024-02-20 00:00:00
end: 2024-03-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("Invest SMA|MACD|ADX Long Weekly Strategy (BtTL)", overlay=true)

// SMA Inputs
smaLength = input.int(30, title="SMA Länge")
// MACD Inputs
macdFastLength = input.int(9, title="MACD schnelle Periode")
macdSlowLength = input.int(18, title="MACD langsame Perside")
macdSignalLength = input.int(9, title="MACD Signal Smoothing")
//ADX Inputs
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Länge")

// SMA-Berechnung
smaValue = ta.sma(close, smaLength)
isAboveSMA = close > smaValue
isBelowSMA = close < smaValue

// MACD-Berechnung
[macdLine, signalLine, _] = ta.macd(close, macdFastLength, macdSlowLength, macdSignalLength)
isMACDBuy = macdLine > signalLine and macdLine > 0

// Swing-Low Berechnung (5-Kerzen)
isSwingLow = low[2] > low[1] and low[3] > low[1] and low[1] < low and low[1] < low[4]
var float lastSwingLow = na
var float secondLastSwingLow = na

// Wenn ein neuer Swing-Low gefunden wird
if (isSwingLow[1])
    secondLastSwingLow := lastSwingLow
    lastSwingLow := low[1]

//ADX ermitteln
[pDI,mDI,ADX] = ta.dmi(dilen, adxlen)
IsInTrend = ADX > 25

// Einstiegskondition mit MACD und SMA
longCondition = isAboveSMA and isMACDBuy and IsInTrend
if (longCondition)
    strategy.entry("Long", strategy.long)

// Ausstiegskondition am vorletzten Swing-Low
if (isBelowSMA and na(secondLastSwingLow) == false)
    strategy.exit("Exit", from_entry="Long", stop=secondLastSwingLow)

// Reset bei Position schließen
if(strategy.position_size <= 0)
    secondLastSwingLow := na
    lastSwingLow := na

// Plots
plot(smaValue, title="SMA 30", color=#063eda, linewidth=2)
plot(na(lastSwingLow) ? na : lastSwingLow, title="Last Swing Low", color=#ffb13b, linewidth=1, style=plot.style_circles)
plot(na(secondLastSwingLow) ? na : secondLastSwingLow, title="Second Last Swing Low", color=color.red, linewidth=1, style=plot.style_circles)