Phân tích Kỹ thuật, Quét Tín Hiệu
& Backtest Chiến Lược bằng AI

141 chỉ báo kỹ thuật, quét tín hiệu trên 1.700 mã, phát hiện mẫu hình giá và nến Nhật, backtest long-only đến 15 năm với mô phỏng T+2.5 VN, tối ưu tham số với train/test split 70/30.

⏱ Đọc 14 phút    🔴 Nâng cao    🔧 Yêu cầu: FinLens Premium

9 công cụ Signals — bức tranh toàn cảnh

signals_list_indicators

Danh mục 141 chỉ báo: 9 native + 132 TA-Lib. Tra tên, tham số và nhóm chỉ báo.

signals_indicator_values

Giá trị THỰC của chỉ báo cho 1 mã — N phiên gần nhất, giá điều chỉnh.

signals_screen

Quét tín hiệu 1.700 mã theo rule kỹ thuật + bộ lọc cơ bản (ROE, P/E…) + bộ lọc sức mạnh tương đối RS.

signals_detect_patterns

Phát hiện ~15 mẫu hình giá (2 đỉnh, vai-đầu-vai, tam giác…) trên 1 mã.

signals_candle_patterns

Quét 61 mẫu nến Nhật TA-Lib, tên tiếng Việt + hướng bullish/bearish.

signals_market_structure

Xu hướng + hỗ trợ/kháng cự từ pivot, đỉnh/đáy 52 tuần, % khoảng cách.

signals_event_study

Thống kê 5/10/20 phiên sau mỗi tín hiệu: win rate, lợi nhuận trung bình.

signals_backtest

Backtest long-only, 1–15 năm, Sharpe/Sortino/max DD, so buy-hold.

signals_optimize

Grid search ≤200 tổ hợp, train/test 70/30, cảnh báo overfit.

Đọc giá trị chỉ báo thực — đừng để AI đoán

Thay vì để AI ước tính RSI hay MACD từ kiến thức chung, dùng signals_indicator_values để lấy giá trị tính toán thực tế trên giá điều chỉnh với đủ warmup period:

💬 Đọc nhiều chỉ báo cùng lúc
"Cho tôi giá trị RSI(14), MACD(12,26,9) và MFI(14) của HPG hiện tại — và 10 phiên gần nhất để thấy xu hướng"
→ signals_indicator_values, N=10 — giá trị thực tính trên adjusted close, đủ warmup
💬 Chỉ báo khối lượng
"OBV của FPT đang tăng hay giảm trong 20 phiên qua? Có xác nhận xu hướng giá không?"
→ indicator_values OBV + so sánh với price action

Quét tín hiệu trên toàn thị trường

Công cụ signals_screen quét toàn bộ 1.700 mã theo rule bạn định nghĩa — có thể kết hợp điều kiện kỹ thuật với bộ lọc cơ bản:

💬 Quét cơ bản
"Tìm tất cả cổ phiếu HOSE có RSI < 30 trong 3 phiên gần nhất và giá cắt lên MA20 — danh sách mã và chỉ báo kèm theo"
→ screen: exchange=HOSE, rules=[RSI<30, price_cross_up_MA20], days=3
💬 Kết hợp điều kiện cơ bản
"Quét mã có RSI vượt 50 từ bên dưới trong 5 phiên qua, lọc thêm ROE > 15% và P/E < 20 và thanh khoản > 10 tỷ/ngày — mã nào phù hợp nhất?"
→ screen kỹ thuật + bộ lọc cơ bản đồng thời — tín hiệu kỹ thuật trên nền tảng tốt
💬 Tìm mã theo ngành
"Trong ngành ngân hàng, mã nào đang có MACD golden cross trong 5 phiên gần nhất và volume tăng bất thường?"
→ screen lọc sector + MACD cross + volume spike
💪
Lọc thêm theo Sức mạnh tương đối (RS)

signals_screen có 4 bộ lọc RS: min_rs_rating (RS của mã), min_rs_vs_industry (leader trong ngành), min_industry_rs (breadth ngành) và min_sector_rs (momentum ngành) — kết quả trả kèm cả 4 giá trị. Ghép chúng để chỉ giữ mã mạnh trong ngành đang trend. Xem đầy đủ ở Bài 15 · Sức mạnh ngành (RS).

💬 Quét kèm bộ lọc RS
"Tìm mã có RSI cắt lên 50 trong 5 phiên qua, RS của mã ≥ 80 và là leader trong ngành (RS nội bộ ngành ≥ 75), thanh khoản > 10 tỷ/ngày"
→ screen: rule RSI + min_rs_rating=80 + min_rs_vs_industry=75 + min_avg_value_bil=10

Phát hiện mẫu hình giá

Công cụ signals_detect_patterns nhận dạng ~15 mẫu hình đặt tên sẵn (hoặc mẫu tùy ý bạn định nghĩa), trả về ngày xuất hiện, độ khớp 0–1 và cờ "đang hình thành":

💬 Tìm mẫu hình
"HPG có đang hình thành mẫu hình 2 đáy (double bottom) không? Quét thêm các mẫu hình tích cực khác nếu có"
→ detect_patterns: HPG, mẫu "double_bottom" + tất cả mẫu bullish
💬 Mẫu hình vai đầu vai
"Kiểm tra xem VIC có mẫu hình vai-đầu-vai (head and shoulders) đang hình thành không — ngưỡng breakdown là đâu?"
→ detect_patterns "head_and_shoulders" — trả ngưỡng neckline + khoảng cách % tới breakdown

Mẫu nến Nhật — tín hiệu đảo chiều ngắn hạn

Công cụ signals_candle_patterns quét cả 61 mẫu nến TA-Lib, trả tên tiếng Việt + hướng bullish/bearish:

💬 Quét mẫu nến
"VNM tuần này xuất hiện mẫu nến gì đáng chú ý? Có tín hiệu đảo chiều không?"
→ candle_patterns: VNM, days=5 — danh sách mẫu có tín hiệu + tên tiếng Việt
💬 Mẫu nến cụ thể
"FPT có xuất hiện mẫu Búa (Hammer) hoặc Nhấn chìm tăng (Bullish Engulfing) trong 10 phiên qua không?"
→ lọc theo mẫu cụ thể + hướng bullish

Cấu trúc giá — Hỗ trợ & Kháng cự

💬 Hỗ trợ & kháng cự
"Xu hướng hiện tại của HPG thế nào? Các mức hỗ trợ và kháng cự gần nhất ở đâu? Đang cách giá hiện tại bao nhiêu %?"
→ market_structure: trend từ pivot, S/R levels kèm khoảng cách %, đỉnh/đáy 52 tuần
💬 Xác nhận breakout
"FPT vừa phá vỡ kháng cự. Cấu trúc giá xác nhận breakout không? Mức kháng cự tiếp theo ở đâu?"
→ market_structure — pivot points, % cách mức S/R tiếp theo, xu hướng trending/ranging

Thống kê sau tín hiệu — win rate thực tế

Công cụ signals_event_study tổng hợp mỗi lần tín hiệu xuất hiện trong lịch sử — 5, 10, 20 phiên sau giá thay đổi thế nào, so với baseline mua ngẫu nhiên:

💬 Win rate sau tín hiệu
"Mỗi khi RSI của HPG chạm dưới 30 rồi vượt lên lại, 20 phiên sau giá thường tăng bao nhiêu %? Win rate là bao nhiêu? So với mua ngẫu nhiên?"
→ event_study: mỗi event = RSI cross up 30, thống kê return 5/10/20 phiên + win rate + baseline

Backtest chiến lược — mô phỏng T+2.5 VN

ℹ️
Mô phỏng T+2.5 đặc thù thị trường Việt Nam

Tham số t_plus=2 mô phỏng quy tắc thanh toán T+2.5 VN — tín hiệu bán chỉ thực hiện được sau khi cổ phiếu đủ ngày nắm giữ. Backtest sẽ thực tế hơn nhiều so với bỏ qua yếu tố này.

💬 Backtest đơn giản
"Backtest chiến lược MA20/50 cross trên HPG trong 5 năm — so với mua-hold HPG, Sharpe và max drawdown là bao nhiêu?"
→ backtest: HPG, rule=MA20 cross MA50, 5 năm, so buy-hold, kèm danh sách lệnh
💬 Backtest nhiều mã
"Backtest RSI(14) < 30 → mua, > 70 → bán trên HPG, FPT và VNM trong 3 năm qua với t_plus=2 — mã nào chiến lược này hoạt động tốt nhất?"
→ backtest 3 mã cùng rule, t_plus=2 mô phỏng T+2.5, so sánh Sharpe/Sortino/drawdown

Tối ưu tham số — tránh overfit

⚠️
Cảnh báo overfit tự động

FinLens tự động chia dữ liệu train/test 70/30 và cảnh báo khi Sharpe in-sample cao nhưng out-of-sample thấp — dấu hiệu overfit rõ ràng. Luôn kiểm tra OOS metrics trước khi dùng tham số tối ưu.

💬 Tối ưu MA window
"Tối ưu tham số MA short (5–30) × MA long (20–80) cho chiến lược cross trên FPT 3 năm — chia train/test 70/30, top 5 tổ hợp tốt nhất và cảnh báo overfit"
→ optimize: grid search ≤200 combo, IS/OOS Sharpe side-by-side, best_spec để dùng ngay trong backtest
💬 Tối ưu RSI + MA kết hợp
"Tối ưu chiến lược RSI(window 7–21) × MA(window 10–50) trên VCB trong 5 năm — tham số nào cho Sharpe OOS cao nhất?"
→ optimize 2 tham số đồng thời, lấy best_spec OOS-first (không phải IS-first)