
Chiến lược này được gọi là chiến lược giao dịch kết hợp chỉ số động lực với chỉ số SuperTrend. Ý tưởng chính của chiến lược này là kết hợp chỉ số động lực với chỉ số SuperTrend, sử dụng lợi thế của hai chỉ số để thực hiện các mục nhập và thoát chính xác hơn.
Cụ thể, chỉ số động lực được sử dụng để xác định sự gia tăng hoặc giảm tốc độ của chuyển động giá, để xác định sự thay đổi của xu hướng. SuperTrend được sử dụng để xác định liệu giá có phá vỡ kênh tăng hoặc giảm, để xác định sự thay đổi của xu hướng. Sự kết hợp của cả hai có thể nắm bắt chính xác hơn các điểm biến của xu hướng.
Tính giá trị động lượng ngày N và tính động lượng ngày 1 của giá trị động lượng. Khi động lượng ngày N > 0 và động lượng ngày 1 > 0, cho dấu hiệu nhiều; Khi động lượng ngày N < 0 và động lượng ngày 1 < 0, cho dấu hiệu trống.
Tính giá trị ATR của giá và vẽ đường dẫn lên và đường dẫn xuống dựa trên ATR. Làm tín hiệu đa khi giá vượt qua đường dẫn lên từ bên dưới và tín hiệu tắt khi giá vượt qua đường dẫn xuống từ phía trên.
Các tín hiệu đa động lực của chỉ số động lực và các tín hiệu đa động lực của SuperTrend hoạt động song song, đồng thời xảy ra tín hiệu đa nhập cuối cùng; tín hiệu giảm giá của chỉ số động lực và tín hiệu giảm giá của SuperTrend hoạt động song song, đồng thời xảy ra tín hiệu giảm giá cuối cùng.
Sử dụng chỉ số động lực để đánh giá sự tăng tốc hoặc giảm tốc của biến động giá, để nắm bắt các điểm biến động xu hướng.
Sử dụng chỉ số SuperTrend để xác định các kênh phá vỡ giá và bắt điểm phá vỡ.
Hai chỉ số này xác thực lẫn nhau, giúp giảm các tín hiệu giả và tăng độ chính xác của Entries.
Exit logic kết hợp với hai chỉ số, có thể thực hiện theo dõi xu hướng thoát ra và tránh thoát sớm.
Thiết lập tham số chỉ số động lượng N ngày không đúng có thể dẫn đến điểm chuyển hướng bị mất.
Các tham số SuperTrend được đặt không chính xác, đường dẫn được vẽ không chính xác và có thể tạo ra tín hiệu giả.
Hai chỉ số này xác nhận lẫn nhau và có thể đã bỏ lỡ một số cơ hội.
Cần điều chỉnh các tham số để tìm cặp tham số tối ưu, khai thác tối đa tiềm năng chiến lược.
Các giải pháp tương ứng:
Sử dụng phương pháp phân tích bước đi để tìm các tham số tối ưu.
Thêm mô-đun tối ưu hóa tham số, tối ưu hóa tham số trong thời gian thực.
Điều chỉnh logic kết hợp của hai chỉ số, xem xét tổng hợp.
Thêm mô-đun tối ưu hóa tự điều chỉnh tham số để tham số có thể điều chỉnh theo môi trường thị trường trong thời gian thực
Thêm mô hình học máy để hỗ trợ đánh giá độ chính xác của tín hiệu chỉ số
Mở rộng thêm các chỉ số, tạo ra các bộ chỉ số, sử dụng cơ chế bỏ phiếu để tạo ra tín hiệu Entry
Sử dụng mô hình học sâu để thay thế các chỉ số truyền thống để đánh giá thời gian nhập cảnh và xuất cảnh bằng phương pháp điều khiển dữ liệu
Chiến lược này tích hợp các lợi thế của chỉ số động lực và chỉ số SuperTrend, tăng độ chính xác của Entry thông qua xác minh kép và sử dụng chỉ số để đánh giá thời gian Exit. Compared với chỉ số sử dụng đơn lẻ, có thể giảm tín hiệu sai và có tỷ lệ thắng cao hơn.
/*backtest
start: 2022-12-20 00:00:00
end: 2023-12-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Momentum + SuperTrend Strategy", overlay=true)
// Momentum Strategy
length = input(12)
price = close
momentum(seria, length) =>
mom = seria - seria[length]
mom
mom0 = momentum(price, length)
mom1 = momentum(mom0, 1)
momLongCondition = mom0 > 0 and mom1 > 0
momShortCondition = mom0 < 0 and mom1 < 0
// SuperTrend Strategy
Periods = input(10)
Multiplier = input(3.0)
changeATR = input(true)
src = input(hl2)
atr2 = sma(tr, Periods)
atr = changeATR ? atr(Periods) : atr2
up = src - (Multiplier * atr)
up1 = nz(up[1], up)
up := close[1] > up1 ? max(up, up1) : up
dn = src + (Multiplier * atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
buySignal = trend == 1 and trend[1] == -1
sellSignal = trend == -1 and trend[1] == 1
// Combined Entry Conditions
longCondition = momLongCondition and buySignal
shortCondition = momShortCondition and sellSignal
// Strategy Entries
if (longCondition)
strategy.entry("MomLE", strategy.long, stop=high+syminfo.mintick, comment="MomLE")
else
strategy.cancel("MomLE")
if (shortCondition)
strategy.entry("MomSE", strategy.short, stop=low-syminfo.mintick, comment="MomSE")
else
strategy.cancel("MomSE")
// Plot SuperTrend on the chart
upPlot = plot(trend == 1 ? up : na, title="SuperTrend Up", color=color.green, linewidth=2)
dnPlot = plot(trend == -1 ? dn : na, title="SuperTrend Down", color=color.red, linewidth=2)
// Highlight the SuperTrend region
fill(upPlot, dnPlot, color = trend == 1 ? color.new(color.green, 90) : color.new(color.red, 90), title="SuperTrend Highlight")
// Plot SuperTrend Buy/Sell signals on the chart
plotshape(series=buySignal, title="SuperTrend Buy Signal", color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=sellSignal, title="SuperTrend Sell Signal", color=color.red, style=shape.triangledown, size=size.small)
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © naveen1119