Biểu đồ dải Nadaraya-Watson Chiến lược dừng lỗ động xác nhận nhiều lần

ADX DI RSI MAE
Ngày tạo: 2024-05-24 17:58:47 sửa đổi lần cuối: 2024-05-24 17:58:47
sao chép: 0 Số nhấp chuột: 1065
1
tập trung vào
1617
Người theo dõi

Biểu đồ dải Nadaraya-Watson Chiến lược dừng lỗ động xác nhận nhiều lần

Tổng quan

Chiến lược này sử dụng biểu đồ băng tần Nadaraya-Watson để xử lý giá bằng phẳng và tính toán lên và xuống dựa trên giá sau khi được làm bằng phẳng. Sau đó, sử dụng các chỉ số ADX và DI để đánh giá cường độ và hướng của xu hướng, RSI để xác nhận động lực xu hướng, đồng thời xác định điểm đột phá tiềm năng bằng cách phá vỡ giá lên và xuống đường. Cuối cùng kết hợp nhiều tín hiệu như xu hướng, đột phá và động lực để thực hiện giao dịch và sử dụng dừng động để quản lý rủi ro.

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

  1. Sử dụng biểu đồ băng tần Nadler-Watson để làm mượt giá, tính theo đường ray trên và dưới.
  2. Sử dụng chỉ số ADX và DI để đánh giá cường độ và hướng của xu hướng. Khi ADX lớn hơn giá trị giảm và + DI lớn hơn -DI, xu hướng tăng được biểu thị, ngược lại là xu hướng giảm.
  3. Xác định liệu giá có phá vỡ đường dẫn trên hoặc đường dẫn dưới của biểu đồ hình dải, tương ứng với việc phá vỡ lên và phá vỡ xuống tiềm năng.
  4. Sử dụng chỉ số RSI để xác định động lực xu hướng. Khi RSI lớn hơn 70 là động lực tăng và nhỏ hơn 30 là động lực giảm.
  5. Giao dịch được thực hiện bằng cách kết hợp nhiều tín hiệu như xu hướng, điểm đột phá và động lực:
    • Tạo thêm vị trí khi có xu hướng tăng mạnh, đột phá lên và tăng động lực.
    • Khi có xu hướng giảm mạnh, phá vỡ xuống và giảm động lực, mở kho trống.
  6. Sử dụng dừng động để quản lý rủi ro, giá dừng được tính dựa trên giá cao nhất / thấp nhất và giá đóng cửa.
  7. Ghi dấu các đường xu hướng, điểm đột phá và tín hiệu động lực trên biểu đồ để hiển thị trực quan các tín hiệu chiến lược.

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

  1. Đồ họa băng tần của Nadaraya-Watson có thể làm mịn dữ liệu giá một cách hiệu quả, giảm nhiễu tiếng ồn.
  2. Cơ chế xác nhận tín hiệu đa dạng giúp tăng độ tin cậy tín hiệu, và các tín hiệu xu hướng, đột phá và động lực bổ sung cho nhau để xác nhận cơ hội giao dịch.
  3. Quản lý lỗ hổng động có thể thích ứng tốt hơn với biến động thị trường, giảm rủi ro. Giá dừng lỗ được tính dựa trên giá cao nhất / thấp nhất và giá đóng cửa, có thể điều chỉnh theo thị trường.
  4. Các đường xu hướng, điểm đột phá và tín hiệu động lực được đánh dấu trực quan trên biểu đồ, giúp người dùng quan sát và đọc các tín hiệu chiến lược.

Rủi ro chiến lược

  1. Trong một thị trường bất ổn hoặc trong một thời kỳ chuyển hướng, các tín hiệu phá vỡ thường xuyên có thể dẫn đến giao dịch quá mức và thua lỗ.
  2. Hạn chế động lực có thể không dừng lại kịp thời khi xu hướng đảo ngược, dẫn đến việc rút lui tăng lên.
  3. Các tham số chiến lược như băng thông của bản đồ băng tần Nadaraya-Watson, giá trị ADX cần được tối ưu hóa cho các thị trường và tiêu chuẩn khác nhau. Việc đặt tham số không đúng cách có thể ảnh hưởng đến hiệu quả của chiến lược.

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

  1. Việc giới thiệu nhiều chỉ số đánh giá xu hướng hiệu quả hơn, chẳng hạn như MACD, hệ thống đồng bằng, v.v., giúp cải thiện độ chính xác và ổn định của đánh giá xu hướng.
  2. Tối ưu hóa các phương pháp tính toán lỗ hổng động, như xem xét các chỉ số liên quan đến tỷ lệ biến động như ATR, SAR, để làm cho lỗ hổng trở nên linh hoạt và hiệu quả hơn.
  3. Cài đặt các tổ hợp tham số khác nhau cho các đặc điểm thị trường khác nhau, chẳng hạn như xu hướng, biến động, để cải thiện khả năng thích ứng của chiến lược.
  4. Tham gia vào mô-đun quản lý vị trí, điều chỉnh vị trí động theo xu hướng thị trường, biến động và các yếu tố khác, kiểm soát rủi ro.

Tóm tắt

Chiến lược này xây dựng một hệ thống giao dịch hoàn thiện hơn bằng cách làm mịn giá bằng biểu đồ băng tần Nadaraya-Watson, kết hợp các chỉ số xu hướng như ADX, DI và chỉ số động lực RSI, và các tín hiệu đa dạng như điểm phá giá. Quản lý dừng động có thể thích ứng với sự thay đổi của thị trường và kiểm soát rủi ro. Tuy nhiên, trong ứng dụng thực tế, vẫn cần chú ý đến việc tối ưu hóa phán đoán xu hướng, dừng động và cài đặt tham số để cải thiện sự ổn định và lợi nhuận của chiến lược.

Mã nguồn chiến lược
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-18 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Nadaraya-Watson Envelope with Multi-Confirmation and Dynamic Stop-Loss", overlay=true)

// Input parameters
h = input.float(7.2, "Bandwidth", minval=0)
mult = input.float(2.1, minval=0)
src = input(close, "Source")

// ADX and DI Input Parameters
adxLength = input.int(14, "ADX Length")
adxThreshold = input.float(25, "ADX Threshold")
adxSmoothing = input.int(14, "ADX Smoothing")

// Calculate ADX and DI
[dmiPlus, dmiMinus, adx] = ta.dmi(adxLength, adxSmoothing)
strongTrendUp = dmiPlus > dmiMinus and adx > adxThreshold
strongTrendDown = dmiMinus > dmiPlus and adx > adxThreshold

// Nadaraya-Watson Envelope Calculation
gauss(x, h) =>
    math.exp(-(math.pow(x, 2) / (h * h * 2)))

coefs = array.new_float(0)
den = 0.0

for i = 0 to 100
    w = gauss(i, h)
    array.push(coefs, w)

den := array.sum(coefs)

out = 0.0
for i = 0 to 100
    out += src[i] * array.get(coefs, i)
out /= den
mae = ta.sma(math.abs(src - out), 100) * mult

upper = ta.sma(out + mae, 10)
lower = ta.sma(out - mae, 10)

// Confirmations
breakoutUp = ta.crossover(src, upper)
breakoutDown = ta.crossunder(src, lower)

// Original RSI period and thresholds
rsiPeriod = input.int(14, "RSI Period")
rsi = ta.rsi(src, rsiPeriod)
momentumUp = rsi > 70 and adx > adxThreshold
momentumDown = rsi < 30 and adx > adxThreshold

// // Plot ADX-based Trend Confirmation Lines
// if (strongTrendUp)
//     line.new(bar_index, low, bar_index + 1, low, color=color.new(color.blue, 50), width=2, style=line.style_dashed)

// if (strongTrendDown)
//     line.new(bar_index, high, bar_index + 1, high, color=color.new(color.red, 50), width=2, style=line.style_dashed)

// Plot Breakout Confirmation Dots
plotshape(series=breakoutUp, style=shape.circle, location=location.abovebar, color=color.blue, size=size.tiny, title="Breakout Up")
plotshape(series=breakoutDown, style=shape.circle, location=location.belowbar, color=color.orange, size=size.tiny, title="Breakout Down")

// Plot Momentum Confirmation Arrows
plotshape(series=momentumUp, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.tiny, title="Momentum Up")
plotshape(series=momentumDown, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.tiny, title="Momentum Down")

// Strategy Entry and Exit
var float stopLossLevel = na
var float highestPrice = na

potentialBuy = strongTrendUp and breakoutUp
potentialSell = strongTrendDown and breakoutDown
momentumConfirmUp = potentialBuy and momentumUp
momentumConfirmDown = potentialSell and momentumDown

if (momentumConfirmUp)
    strategy.entry("Buy", strategy.long)
    stopLossLevel := close * 0.90
    highestPrice := close

if (momentumConfirmDown)
    strategy.entry("Sell", strategy.short)
    stopLossLevel := close * 1.10
    highestPrice := close

if (strategy.position_size > 0)
    highestPrice := math.max(highestPrice, close)
    stopLossLevel := math.max(highestPrice * 0.85, close * 0.90)

if (strategy.position_size < 0)
    highestPrice := math.min(highestPrice, close)
    stopLossLevel := math.min(highestPrice * 1.15, close * 1.10)

// Close position if stop loss is hit
if (strategy.position_size > 0 and close < stopLossLevel)
    strategy.close("Buy")

if (strategy.position_size < 0 and close > stopLossLevel)
    strategy.close("Sell")