
Chiến lược định lượng “Hệ thống giao dịch truyền cảm hứng POMDP kết hợp nhiều chỉ số” là một phương pháp giao dịch dựa trên phân tích kỹ thuật và một phần của quá trình ra quyết định Markov có thể quan sát được. Chiến lược này kết hợp một cách khéo léo các chỉ số tương đối mạnh và yếu ngẫu nhiên (Stochastic RSI), chỉ số dòng tiền (MFI), Bollinger Bands (Bollinger Bands) và chỉ số phân tán kết thúc đường trung bình di chuyển (MACD) để tạo ra tín hiệu mua và bán.
Nguyên tắc cốt lõi của chiến lược này dựa trên ý tưởng của quá trình quyết định Markov có thể quan sát được một phần (POMDP), coi thị trường là một hệ thống có thể nhìn thấy một phần trạng thái của thị trường. Các chỉ số kỹ thuật quan trọng sau đây được sử dụng để quan sát trạng thái thị trường:
Bollinger Bands: Sử dụng trung bình di chuyển đơn giản 20 chu kỳ làm đường trung bình, chênh lệch chuẩn nhân là 2.0, tạo ra đường di chuyển lên xuống, được sử dụng để xác định khoảng dao động của giá.
Chỉ số RSI Stochastic: Kết hợp các lợi thế của RSI và các chỉ số ngẫu nhiên, thiết lập chiều dài 14 chu kỳ và các tham số mịn 3 chu kỳ để nhận diện tình trạng quá mua quá bán. Khi giá trị K thấp hơn 30 được coi là quá bán, cao hơn 70 được coi là quá mua.
Chỉ số dòng tiền (MFI)MFI dưới 40 được coi là tín hiệu bán quá mức và trên 60 là tín hiệu mua quá mức.
Chỉ số MACD: Sử dụng thiết lập tham số 12/26/9, mối quan hệ giữa đường MACD và đường tín hiệu được sử dụng để xác định hướng xu hướng.
Quy tắc quyết định của chiến lược là:
Chiến lược này cũng thực hiện cơ chế rút ra tự động dựa trên thời gian, thiết lập tự động thanh toán sau 5 chu kỳ nắm giữ, cơ chế này kiểm soát hiệu quả rủi ro thời gian nắm giữ.
Ghi nhận tín hiệu đa chiềuBằng cách kết hợp nhiều chỉ số kỹ thuật (Stochastic RSI, MFI, MACD), chiến lược có thể nhìn vào tình trạng thị trường từ nhiều góc độ khác nhau, giảm nguy cơ tín hiệu sai lệch mà chỉ số đơn lẻ có thể mang lại.
Tính thích ứng của khuôn khổ POMDPViệc đưa ra tư tưởng POMDP cho phép các chiến lược đưa ra các quyết định tương đối tối ưu trong điều kiện không chắc chắn và có thể quan sát được một phần, phù hợp hơn với môi trường thị trường thực tế.
Kiểm soát rủi ro rõ ràng: Bằng cách thiết lập chu kỳ thoát cố định ((5 chu kỳ), chiến lược này thực hiện kiểm soát rủi ro theo chiều thời gian, tránh sự gia tăng tổn thất do biến động bất lợi lâu dài.
Sự bổ sung của các chỉ số kỹ thuậtStochastic RSI chủ yếu phản ánh động lực giá, MFI kết hợp thông tin về giá cả và khối lượng giao dịch, MACD nắm bắt sự thay đổi xu hướng, và Brinch Band xác định phạm vi biến động. Các chỉ số này bổ sung cho nhau để tăng độ tin cậy của tín hiệu.
Tính bền vững của code implementationChiến lược sử dụng math.sum thay vì ta.sum để tính MFI, sửa lỗi tính toán có thể xảy ra và tăng cường tính ổn định của chiến lược.
Tự động hóa khả năng thực hiệnThiết lập Pine Script dựa trên TradingView cho phép các chiến lược tự động tạo và thực hiện tín hiệu giao dịch, giảm thiểu sự can thiệp của con người và ảnh hưởng của cảm xúc.
Giới hạn của việc mua quá mứcChiến lược sử dụng các ngưỡng mua bán cố định (Stochastic RSI 30⁄70 và MFI 40⁄60), trong các môi trường thị trường khác nhau và các sản phẩm khác nhau, các ngưỡng cố định này có thể không phải lúc nào cũng tối ưu và có thể dẫn đến giảm chất lượng tín hiệu.
Thời gian là một thanh kiếm hai lưỡi để thoát khỏi cơ chếCác cơ chế rút ra trong 5 chu kỳ cố định, mặc dù kiểm soát rủi ro, nhưng cũng có thể rút ra khỏi xu hướng thuận lợi sớm, hạn chế lợi nhuận tiềm năng.
Rủi ro dư thừa đa chỉ số: Mặc dù nhiều chỉ số cung cấp xác nhận đa chiều, nhưng có thể có một số liên quan và dư thừa giữa các chỉ số, trong một số điều kiện thị trường có thể dẫn đến sai lệch cường độ tín hiệu.
Thị trường xu hướng không thích ứngChiến lược này chủ yếu dựa trên các tín hiệu mua bán quá mức và đảo ngược, có thể tạo ra quá nhiều tín hiệu sai trong thị trường có xu hướng mạnh, dẫn đến giao dịch thường xuyên và chi phí không cần thiết.
Tùy thuộc tối ưu hóa tham sốHiệu quả của chiến lược phụ thuộc rất nhiều vào thiết lập các tham số chỉ số, điều kiện thị trường khác nhau có thể yêu cầu các kết hợp tham số khác nhau, làm tăng sự phức tạp trong việc duy trì và điều chỉnh chiến lược.
Thiếu cơ chế thích ứng biến độngChiến lược không có cơ chế tự điều chỉnh cho sự thay đổi của thị trường, có thể tạo ra nhiều tín hiệu giả hơn trong môi trường biến động cao.
Cơ chế điều chỉnh tham số độngGiới thiệu cơ chế tự điều chỉnh tham số dựa trên tình trạng thị trường, chẳng hạn như điều chỉnh chênh lệch chuẩn của dải Bryn dựa trên biến động hoặc điều chỉnh ngưỡng mua quá mức theo cường độ của xu hướng thị trường, cải thiện khả năng thích ứng của chiến lược trong các môi trường thị trường khác nhau.
Cơ chế dừng lỗ hoàn hảoNgoài cơ chế thoát theo chiều thời gian, thêm cơ chế dừng lỗ dựa trên biến động giá, chẳng hạn như thiết lập điểm dừng lỗ dựa trên ATR, nâng cao tính toàn diện của quản lý rủi ro.
Bộ lọc môi trường thị trườngThêm mô-đun nhận diện môi trường thị trường, chẳng hạn như chỉ số cường độ xu hướng hoặc chỉ số biến động, giảm hoặc tạm dừng giao dịch trong môi trường thị trường không phù hợp với chiến lược, tránh quá nhiều giao dịch trong điều kiện bất lợi.
Hệ thống đánh giá chất lượng tín hiệu: Phát triển cơ chế đánh giá chất lượng tín hiệu, đánh giá tín hiệu dựa trên các yếu tố như mức độ thống nhất của nhiều chỉ số, môi trường thị trường, thành công của tín hiệu lịch sử, chỉ thực hiện tín hiệu chất lượng cao, nâng cao hiệu quả của chiến lược.
Tăng cường học máyPhương pháp POMDP kết hợp với các phương pháp học máy để tối ưu hóa chiến lược ra quyết định thông qua đào tạo dữ liệu lịch sử, cho phép hệ thống học hỏi và cải thiện từ các giao dịch trong quá khứ.
Tối ưu hóa chiến lược quản lý tài chínhGhi chú: giới thiệu cơ chế quản lý vị trí động, điều chỉnh quy mô giao dịch theo cường độ tín hiệu, tình trạng thị trường và rủi ro tài khoản, để quản lý tiền một cách khoa học hơn.
“Hệ thống giao dịch truyền cảm hứng POMDP kết hợp nhiều chỉ số” là một chiến lược giao dịch định lượng kết hợp nhiều chỉ số kỹ thuật và khung quyết định POMDP. Chiến lược này giải quyết phần nào vấn đề về khả năng quan sát thị trường thông qua các chỉ số như Stochastic RSI, MFI, MACD và Brin, cung cấp xác nhận tín hiệu đa chiều cho quyết định giao dịch.
Ưu điểm chính của chiến lược là khả năng quan sát thị trường từ nhiều góc độ và cơ chế kiểm soát rủi ro rõ ràng, nhưng đồng thời cũng phải đối mặt với thách thức của sự phụ thuộc tối ưu hóa tham số và sự thích ứng không đầy đủ với một số môi trường thị trường. Bằng cách đưa ra các hướng tối ưu hóa như điều chỉnh tham số động, hoàn thiện các cơ chế dừng lỗ và thêm các bộ lọc môi trường thị trường, chiến lược này có tiềm năng nâng cao sự ổn định và thích ứng hơn nữa.
Nhìn chung, đây là một hệ thống giao dịch định lượng được thiết kế hợp lý, logic rõ ràng, đặc biệt phù hợp với các nhà giao dịch có khả năng dự đoán thị trường nhưng muốn kiểm soát rủi ro. Bằng cách tiếp tục tối ưu hóa và thích ứng với các môi trường thị trường khác nhau, chiến lược này có thể trở thành một công cụ hiệu quả trong hộp công cụ của các nhà giao dịch.
/*backtest
start: 2024-07-22 00:00:00
end: 2025-07-20 08:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT","balance":2000000}]
*/
//@version=6
strategy("Debit Spread POMDP‑Inspired Strategy", overlay=true, margin_long=100, margin_short=100)
// ——— Constants
const int K_OVERSOLD = 30
const int K_OVERBOUGHT = 70
const int MFI_OVERSOLD = 40
const int MFI_OVERBOUGHT = 60
const int EXIT_BARS = 5
// ——— User inputs
stochLength = input.int(14, "Stochastic RSI length")
stochSmooth = input.int(3, "Stochastic smoothing")
mfiLength = input.int(14, "MFI length")
bbLength = input.int(20, "Bollinger length")
bbStdDev = input.float(2.0, "Bollinger std dev")
macdFast = input.int(12, "MACD fast length")
macdSlow = input.int(26, "MACD slow length")
macdSignal = input.int(9, "MACD signal length")
// ——— Bar index tracking for exits
var int callEntryBar = na
var int putEntryBar = na
// ——— Bollinger Bands
basis = ta.sma(close, bbLength)
upper = basis + bbStdDev * ta.stdev(close, bbLength)
lower = basis - bbStdDev * ta.stdev(close, bbLength)
// ——— Stochastic RSI
rsi = ta.rsi(close, stochLength)
k = ta.sma(ta.stoch(rsi, rsi, rsi, stochLength), stochSmooth)
d = ta.sma(k, stochSmooth)
// ——— Manual MFI calculation (FIXED: using math.sum)
tp = (high + low + close) / 3.0
rawMF = tp * volume
posFlow = (tp > tp[1] ? rawMF : 0.0)
negFlow = (tp < tp[1] ? rawMF : 0.0)
posMF = math.sum(posFlow, mfiLength) // FIXED: math.sum instead of ta.sum
negMF = math.sum(negFlow, mfiLength) // FIXED: math.sum instead of ta.sum
moneyRatio = negMF != 0 ? posMF / negMF : 0.0
mfi = negMF != 0 ? 100 - 100 / (1 + moneyRatio) : 0.0
// ——— Manual MACD calculation
fastMA = ta.ema(close, macdFast)
slowMA = ta.ema(close, macdSlow)
macdLine = fastMA - slowMA
signalLine = ta.ema(macdLine, macdSignal)
// ——— POMDP‑inspired decision rules
bullCondition = ((k < K_OVERSOLD) or (mfi < MFI_OVERSOLD)) and (macdLine > signalLine)
bearCondition = ((k > K_OVERBOUGHT) or (mfi > MFI_OVERBOUGHT)) and (macdLine < signalLine)
if bullCondition
strategy.entry("CallDebit", strategy.long)
callEntryBar := bar_index // Track entry bar
if bearCondition
strategy.entry("PutDebit", strategy.short)
putEntryBar := bar_index // Track entry bar
// FIXED: Manual time-based exits using bar_index
if not na(callEntryBar) and bar_index >= callEntryBar + EXIT_BARS
strategy.close("CallDebit")
callEntryBar := na
if not na(putEntryBar) and bar_index >= putEntryBar + EXIT_BARS
strategy.close("PutDebit")
putEntryBar := na
// ——— Plots
plot(basis, color=color.gray, linewidth=1, title="BB Basis")
plot(upper, color=color.orange, linewidth=1, title="BB Upper")
plot(lower, color=color.orange, linewidth=1, title="BB Lower")
plot(k, title="%K", color=color.blue)
plot(d, title="%D", color=color.purple)
plot(mfi, title="MFI", color=color.green)
plot(macdLine - signalLine, title="MACD Histogram", color=color.red, style=plot.style_columns)