Khi Học Máy Cứu Tôi Khi Các Quy Tắc Tĩnh Thất Bại
Đây là điều không ai nói với bạn về giao dịch thuật toán: chiến lược tốt nhất thế giới trở nên vô giá trị khi chế độ thị trường thay đổi. Tôi đã học được điều này một cách đắt giá vào tháng 2 năm 2018 khi hệ thống hồi quy trung bình của tôi — có lợi nhuận suốt 3 năm liên tiếp — đã thua lỗ 23% trong 8 ngày trong đợt bùng nổ VIX.
Tại Two Sigma, chúng tôi có một câu nói: "Thị trường có trí nhớ, nhưng chúng cũng tâm thần phân liệt." Sau khi rời đi để tự giao dịch vốn của mình, tôi đã dành 18 tháng để xây dựng thứ mà sau này trở thành khung phát hiện chế độ của tôi. Không phải vì tôi muốn — mà vì tôi phải làm.
Cách tiếp cận truyền thống? Mã hóa cứng các chiến lược khác nhau cho các điều kiện thị trường khác nhau. Vấn đề? Vào thời điểm bạn nhận ra chế độ đã thay đổi, P&L của bạn đã chảy máu. Phát hiện chế độ thực sự xảy ra trước khi biến động, không phải sau đó.

Mô Hình Markov Ẩn Đã Thay Đổi Mọi Thứ
Tháng 3 năm 2020. Trong khi mọi người tranh luận liệu COVID có phải là "chỉ là cúm" hay không, mô hình phát hiện chế độ của tôi đã làm một điều thú vị — nó chuyển từ chế độ "xu hướng" sang "khủng hoảng" vào ngày 21 tháng 2, đầy đủ 10 ngày trước khi sự sụp đổ thực sự xảy ra. Không phải vì nó dự đoán đại dịch, mà vì cấu trúc vi mô thị trường đã la hét.
Đây là phiên bản đơn giản hóa của những gì đã cứu danh mục đầu tư của tôi:
def detect_regime(features):
# Features: tỷ lệ biến động, ma trận tương quan, mẫu hình khối lượng
regime_probabilities = hmm_model.predict_proba(features)
if regime_probabilities['crisis'] > 0.7:
return 'defensive'
elif regime_probabilities['trending'] > 0.6:
return 'momentum'
else:
return 'mean_reversion'
Phép màu không nằm ở mô hình — mà nằm ở các đặc trưng. Hầu hết các phát hiện chế độ thất bại vì mọi người đưa vào các đầu vào sai. Đường trung bình động? Vô dụng. RSI? Còn tệ hơn. Bạn cần các đặc trưng nắm bắt cấu trúc vi mô thị trường:
- Tỷ lệ biến động thực tế/ngụ ý trên nhiều khung thời gian
- Ma trận tương quan đa tài sản (khi trái phiếu và cổ phiếu di chuyển cùng nhau, các chế độ đang thay đổi)
- Tính bền vững của mất cân bằng dòng lệnh (áp lực định hướng kéo dài bao lâu)
- Phân cụm biến động trong ngày (sự sợ hãi xuất hiện trên nến 15 phút trước khi xuất hiện trên nến ngày)
Mô hình hiện tại của tôi sử dụng 47 đặc trưng, nhưng bốn đặc trưng này chiếm 71% độ chính xác phân loại chế độ.

Ba Chế Độ Thực Sự Quan Trọng
Hãy quên các bài báo học thuật nói về 7 chế độ thị trường khác nhau. Sau khi xử lý 8 năm dữ liệu tick trên futures, forex và crypto, chỉ có ba chế độ thực sự ảnh hưởng đến P&L của bạn:
1. Chế Độ Động Lượng (38% thời gian thị trường)
Đặc trưng bởi các chuyển động định hướng bền vững với các đợt điều chỉnh dưới mức Fibonacci 38,2%. Các mối tương quan vẫn tích cực, biến động mở rộng dần dần. Đây là lúc giao dịch theo xu hướng in tiền. Các thuật toán động lượng của tôi chạy với kích thước vị thế đầy đủ ở đây.
2. Chế Độ Hồi Quy Trung Bình (49% thời gian thị trường)
Miếng bánh mì và bơ cho hầu hết các nhà giao dịch thuật toán. Biến động co lại, phạm vi được giữ, các mối tương quan hồi quy trung bình. Nhưng đây là điểm mấu chốt — chế độ này có hai trạng thái phụ mà tôi gọi là "dao động lành mạnh" và "lò xo nén". Trạng thái sau báo trước các chuyển động dữ dội.
3. Chế Độ Khủng Hoảng (13% thời gian thị trường)
Tất cả các mối tương quan đều về 1 hoặc -1. Biến động bùng nổ. Thanh khoản biến mất. Các chiến lược truyền thống không chỉ hoạt động kém — chúng sụp đổ. Trong các chế độ khủng hoảng, tôi cắt giảm kích thước vị thế 75% và chỉ chuyển sang kinh doanh chênh lệch biến động.
Hiểu biết chính? Các chế độ tập trung lại. Khủng hoảng theo sau sự nén 73% thời gian. Động lượng theo sau khủng hoảng 67% thời gian. Trình tự này mang lại cho bạn lợi thế.
Xây Dựng Hệ Thống Phát Hiện Chế Độ Của Riêng Bạn
Hãy để tôi giúp bạn tiết kiệm 6 tháng thử và sai. Đây là khung hoạt động thực sự trong sản xuất:
class RegimeDetector:
def __init__(self, lookback=252, retrain_frequency=30):
self.features = ['vol_ratio', 'correlation_eigenvalue',
'flow_persistence', 'intraday_clustering']
self.model = HiddenMarkovModel(n_states=3)
self.scaler = RobustScaler() # Xử lý ngoại lệ tốt hơn
def calculate_features(self, data):
# Đây là nơi phép màu xảy ra
features = {}
# Chế độ biến động
features['vol_ratio'] = data['realized_vol'] / data['implied_vol']
# Cấu trúc tương quan
corr_matrix = calculate_rolling_correlation(data, window=21)
features['correlation_eigenvalue'] = np.max(np.linalg.eigvals(corr_matrix))
# Cấu trúc vi mô
features['flow_persistence'] = calculate_order_flow_autocorrelation(data)
return self.scaler.transform(features)
Các phần quan trọng mà hầu hết các hướng dẫn bỏ qua:
- Sử dụng RobustScaler, không phải StandardScaler. Dữ liệu thị trường có đuôi dày làm hỏng chuẩn hóa tiêu chuẩn.
- Huấn luyện lại hàng tháng, không phải hàng ngày. Các mô hình chế độ nhạy cảm với việc quá khớp nhiễu.
- Bắt đầu với tối đa 3 trạng thái. Nhiều trạng thái hơn = nhiều cách hơn để tự lừa dối bản thân với hiệu suất trong mẫu.

Cái Bẫy Quá Khớp Khiến Hầu Hết Các Nhà Giao Dịch ML Chết
Đây là nơi tôi sẽ làm phiền những người truyền giáo ML: hầu hết học máy trong giao dịch là khớp đường cong phức tạp. Tôi đã xây dựng các mô hình với độ chính xác trong mẫu 93% mà vẫn thua lỗ trong sản xuất. Tại sao? Chúng học nhiễu, không phải tín hiệu.
Mô hình phát hiện chế độ đầu tiên của tôi có hơn 200 đặc trưng và sử dụng một tập hợp phức tạp các mạng nơ-ron. Nó có thể "dự đoán" cuộc khủng hoảng năm 2008 một cách hoàn hảo. Trong backtesting. Trong giao dịch trực tiếp? Nó dao động giữa các chế độ mỗi ngày, tạo ra nhiều chi phí giao dịch hơn alpha.
Giải pháp không phải là ít ML hơn — mà là ML thông minh hơn:
- Kỹ thuật đặc trưng > độ phức tạp của mô hình. Một HMM đơn giản với các đặc trưng tuyệt vời đánh bại mạng nơ-ron với đầu vào rác.
- Xác thực walk-forward là không thể thương lượng. Huấn luyện trên 2019-2020, xác thực trên 2021, kiểm tra trên 2022. Nếu nó không tổng quát hóa qua các chu kỳ thị trường khác nhau, nó vô giá trị.
- Sự ổn định của chế độ quan trọng hơn độ chính xác. Tốt hơn là phát hiện chế độ muộn nhưng ở lại trong chúng hơn là dao động trên mỗi đỉnh biến động.
Mô hình hiện tại của tôi hy sinh 20% độ chính xác lý thuyết để có thêm 80% sự ổn định. Sự đánh đổi đó in tiền.
Kết Quả Giao Dịch Trực Tiếp: Tốt, Xấu và Xấu Xí
Hãy nói về những con số thực từ các chiến lược thích ứng chế độ của tôi trong 18 tháng qua:
Tốt: Trong đợt tăng biến động Kho bạc tháng 10 năm 2024, bộ phát hiện chế độ đã chuyển sang chế độ khủng hoảng sớm 2 ngày. Kết quả? +8,7% trong khi mua và nắm giữ mất 12%.
Xấu: Các tín hiệu sai trong "vùng dao động" mùa hè năm 2024 đã gây ra 7 lần chuyển đổi chế độ không cần thiết. Mỗi lần chuyển đổi tốn khoảng 0,3% chi phí giao dịch và trượt giá. Đó là -2,1% tổn thất chết.
Xấu Xí: Mô hình đã hoàn toàn bỏ lỡ sự sụp đổ nhanh chóng của crypto tháng 1 năm 2025. Tại sao? Cấu trúc vi mô crypto khác với thị trường truyền thống, và các đặc trưng của tôi được hiệu chỉnh trên dữ liệu futures. Mất 4,2% trước khi can thiệp thủ công. Bài học rút ra — phát hiện chế độ không phải là một kích cỡ phù hợp cho tất cả các lớp tài sản.
Hiệu suất tổng thể: +31,4% so với +19,2% cho các chiến lược tĩnh. Nhưng giá trị thực sự không phải là lợi nhuận thêm — mà là ngủ ngon hơn khi biết các thuật toán của tôi thích ứng khi thị trường trở nên điên loạn.
Tích Hợp Với Hệ Thống Giao Dịch Thực Tế
Lý thuyết là tốt. Thực hiện là thứ trả hóa đơn. Đây là cách phát hiện chế độ tích hợp với cơ sở hạ tầng giao dịch thực tế:
# Lớp quản lý rủi ro
position_size = base_size * regime_risk_multiplier[current_regime]
if current_regime == 'momentum':
active_strategies = ['trend_following', 'breakout']
disable_strategies(['mean_reversion', 'arbitrage'])
elif current_regime == 'mean_reversion':
active_strategies = ['range_trading', 'pairs']
disable_strategies(['trend_following'])
else: # crisis
active_strategies = ['volatility_arb']
reduce_all_positions(0.25)
Các chi tiết thực hiện quan trọng:
- Các chuyển đổi chế độ cần bộ đệm. Đừng chuyển đổi chiến lược khi có tín hiệu đầu tiên — yêu cầu 2-3 giai đoạn xác nhận liên tiếp.
- Điều chỉnh kích thước vị thế trước khi thay đổi chiến lược. Giảm rủi ro trước, đặt câu hỏi sau.
- Luôn duy trì một hàng rào "trung lập với chế độ". Của tôi là biến động dài hạn trong thời gian không chắc chắn.
Đối với các nhà giao dịch sử dụng các chỉ báo của FibAlgo, các tín hiệu đa khung thời gian thực sự bổ sung tốt cho phát hiện chế độ — chúng giúp xác nhận khi các khung thời gian ngắn hơn bắt đầu phù hợp với các thay đổi chế độ trước khi các biểu đồ ngày bắt kịp.

Các Chế Độ Thất Bại Phổ Biến và Cách Tránh Chúng
Hãy để tôi giúp bạn tránh những sai lầm đã khiến tôi mất sáu con số:
Chế Độ Thất Bại 1: Rò Rỉ Đặc Trưng
Sử dụng biến động ngụ ý để phát hiện chế độ biến động có vẻ thông minh cho đến khi bạn nhận ra IV đã định giá kỳ vọng chế độ. Bạn đang dự đoán quá khứ. Hãy gắn bó với các số liệu thực tế và cấu trúc vi mô.
Chế Độ Thất Bại 2: Dao Động Chuyển Đổi Chế Độ
Thị trường không chuyển đổi chế độ một cách sạch sẽ. Luôn có một giai đoạn chuyển tiếp lộn xộn. Giải pháp của tôi? Một "trạng thái chuyển tiếp" giữ vị thế ở mức tối thiểu cho đến khi chế độ mới ổn định.
Chế Độ Thất Bại 3: Hiệu Chỉnh Theo Tài Sản Cụ Thể
Một bộ phát hiện chế độ được huấn luyện trên futures S&P sẽ thất bại thảm hại trên forex. Mỗi lớp tài sản có cấu trúc vi mô độc đáo. Xây dựng các mô hình riêng biệt hoặc sử dụng học chuyển giao một cách cẩn thận.
Chế Độ Thất Bại 4: Bỏ Qua Các Sự Kiện Vĩ Mô
Không có mô hình ML nào dự đoán được Brexit hay việc phá giá đồng Franc Thụy Sĩ. Phát hiện chế độ giúp bạn phản ứng nhanh hơn, không dự đoán thiên nga đen. Luôn duy trì các bộ ngắt mạch cho các sự kiện "không thể".
Tương Lai của Giao Dịch Thích Ứng
Sau 8 năm xây dựng và phá vỡ các hệ thống phát hiện chế độ, đây là quan điểm trái chiều của tôi: tương lai không phải là các mô hình phức tạp hơn — mà là các mô hình đơn giản hơn thích ứng nhanh hơn.
Thị trường đang trở nên hiệu quả hơn ở cấp độ tần số cao nhưng phụ thuộc nhiều hơn vào chế độ ở cấp độ ngày/tuần. Can thiệp của ngân hàng trung ương, bầy đàn thuật toán, sự thống trị của dòng chảy thụ động — những điều này tạo ra các chế độ riêng biệt mà các hệ thống thích ứng đơn giản có thể khai thác.
Dự án tiếp theo của tôi? Kết hợp phát hiện chế độ với phân tích trọng số thanh khoản để dự đoán các chuyển đổi chế độ trước khi chúng biểu hiện đầy đủ. Kết quả ban đầu cho thấy thời gian dẫn 4-6 giờ cho các thay đổi lớn.
Lợi thế vào năm 2026 không phải là có mô hình tốt nhất — mà là có một mô hình thừa nhận khi nó sai và thích ứng. Các chiến lược tĩnh đã chết. Nếu bạn không thể mã hóa hành vi thích ứng, bạn đang giao dịch với các công cụ của ngày hôm qua trong thị trường của ngày mai.
Các bước tiếp theo của bạn
Hãy bắt đầu đơn giản. Quên mạng nơ-ron đi và tập trung vào những kiến thức cơ bản về chế độ thị trường:
- Tính tỷ lệ biến động thực tế/ngụ ý trong 20 ngày trượt cho công cụ giao dịch chính của bạn
- Vẽ biểu đồ chuyển đổi chế độ khi tỷ lệ này vượt qua đường trung bình động 90 ngày
- Kiểm tra ngược lại xem chiến lược hiện tại của bạn hoạt động như thế nào trong từng chế độ
- Thực hiện điều chỉnh quy mô vị thế dựa trên chế độ (chưa thay đổi chiến lược)
- Chỉ sau khi bước này hoạt động hiệu quả, hãy thêm các tính năng và mô hình phức tạp hơn
Hãy nhớ: phát hiện chế độ là một công cụ, không phải là một chiến lược. Nó cho bạn biết nên chạy chiến lược nào vào lúc nào. Lợi nhuận đến từ việc có các chiến lược tốt cho từng chế độ và kỷ luật để chuyển đổi giữa chúng một cách có hệ thống.
Thị trường sẽ ngày càng trở nên kỳ lạ hơn. Hệ thống giao dịch của bạn tốt hơn hết là sẵn sàng thích nghi, nếu không bạn sẽ gia nhập "nghĩa địa" của những chiến lược xuất sắc từng hiệu quả cho đến khi chúng không còn hiệu quả nữa. Tại Two Sigma, chúng tôi có một câu nói khác: "Thị trường không quan tâm đến lợi nhuận của bạn." Nhưng với khả năng phát hiện chế độ phù hợp, ít nhất bạn sẽ thấy chiếc xe tải lao tới trước khi nó đâm vào bạn.


