Tự động lấy dữ liệu và phân tích một symbol bằng VPA đa khung thời gian trong repository trading-vpa. Hỗ trợ crypto Binance và cổ phiếu Việt Nam. Dùng khi người dùng yêu cầu xem, phân tích, refresh, hoặc tìm cơ hội giao dịch.
Resources
8Install
npx skillscat add thuong31415/trading-vpa Install via the SkillsCat registry.
Trading VPA Orchestrator
Đây là entrypoint duy nhất cho phân tích. File này chỉ điều phối runtime; luật
VPA/Wyckoff/action chi tiết thuộc engine, renderer và validator.
Detect Market Type
- Crypto: symbol kết thúc bằng USDT/USDC/BTC, tên coin phổ biến, hoặc prompt
có "coin", "crypto", "binance". Dùng Crypto Workflow. - Cổ phiếu Việt Nam: mã 3 chữ cái HOSE/HNX/UPCOM hoặc prompt có "cổ phiếu",
"chứng khoán", "cp", "HOSE". Dùng VN Stock Workflow. - Nếu không rõ market type, hỏi người dùng.
Crypto Defaults
symbol: mặc địnhBTCUSDT; chuẩn hóaBTCthànhBTCUSDT.market: mặc địnhspot; hỗ trợspotvàfutures.trigger interval: mặc định1d; hỗ trợ15m,1h,4h,1d.profile: mặc địnhdefault; chỉ dùngspot_swingkhi người dùng yêu cầu
spot swing/thăm dò rõ ràng.- Mapping mặc định:
15m: structure4h, manage5m.1h: structure1d, manage15m.4h: structure1d, manage1h.1d: structure1w, manage4h.
Crypto Workflow
Gọi Unified Orchestrator. Script tự reuse run hoàn chỉnh/còn fresh hoặc
chạy pipeline mới, rồi trả vềchat_response.mdđã validate:python scripts/unified_crypto_flow.py {SYMBOL} --market {market}Với trigger cụ thể:
python scripts/unified_crypto_flow.py {SYMBOL} --market {market} --interval 4hVới spot swing/thăm dò khi người dùng yêu cầu:
python scripts/unified_crypto_flow.py {SYMBOL} --market spot --interval 4h --profile spot_swingOrchestrator output là JSON. Lấy trường
chat_responsenếustatus == "success"và gửi nguyên văn cho người dùng. Trường này được
sinh bởiscripts/render_chat.pyvà đã qua validator; đây là nguồn
user-facing duy nhất.Không tự suy luận câu trả lời từ
decision-context.json,analysis.md,decision-context.summary.md, journal, log, hoặc artifact trung gian khác.
Các file đó chỉ dùng để debug khi pipeline fail.Nếu
status != "success", không phân tích dữ liệu cũ và không dựng chat thủ
công. Báo lỗi ngắn gọn; thiếu field bắt buộc là bug của pipeline, cần sửa extractor/renderer/validator, hoặc orchestrator nếu lỗi nằm ở điều phối, rồi chạy lại.Continuity, Decision contract, Learning loop — tất cả đều được engine
Python xử lý tự động bên trong Orchestrator. LLM không cần can thiệp.Xử lý lỗi cụ thể:
FileNotFoundErrorkhi chạy script: kiểm tra lại đường dẫn scripttimeout: Binance API có thể chậm, thử lại sau 30svalidation_passed: false: đọc log để biết field nào thiếu, sửa pipeline- Subprocess error: kiểm tra Python version và dependencies đã cài đủ
Sector Scanner
Khi người dùng hỏi về tổng quan thị trường, check market, scan nhiều coin,
top coin, bảng xếp hạng sector, hoặc muốn biết coin nào đáng chú ý (prompt
có "check market", "sector", "scan", "top coin", "thị trường", "tổng quan",
"bảng xếp hạng", "coin nào"), route sang scripts/sector_scan.py:
python scripts/sector_scan.pyTrả nguyên văn output của script. Không chạy unified_crypto_flow.py riêng lẻ
cho từng coin — script đã tự xử lý song song 23 coin đại diện theo sector.
Output gồm:
- Bảng xếp hạng HOT/WATCH/WAIT/DEAD theo composite score 0-18
- Cột Action: [Mua], [Probe], [P6], [Sớm], [Nhỏ], [Đứng ngoài]
- Bias: Long / Short / Neutral
- Spring reclaim: xác nhận (đã hồi phục trên đáy spring)
- Sector hot nhất / lạnh nhất + Top pick
VN Stock Workflow
symbol: mã 3 chữ cái, ví dụMBB,FPT,HPG.trigger interval: mặc định1D; hỗ trợ1D(khuyên dùng),1W.Luôn multi-timeframe: khi chạy
--trigger 1Dsẽ tự động fetch thêm1W
làm structure TF (context xu hướng lớn). Hai role: structure + trigger,
không có manage TF (Entrade API giới hạn khung).Với
--trigger 1W: structure dùng lại1W(cùng TF) vì Entrade không có1M.Chạy full pipeline (khuyên dùng):
python scripts/vn_stock_unified_flow.py {SYMBOL} python scripts/vn_stock_unified_flow.py {SYMBOL} --trigger 1D- Output: chat response đã validate + artifacts trong
runs/vn/{symbol}/{trigger}/
- Output: chat response đã validate + artifacts trong
Chạy ingestion + decision engine (không render):
python scripts/vn_stock_daily_flow.py {SYMBOL} --trigger 1D python scripts/vn_stock_daily_flow.py {SYMBOL} --trigger 1D --structure 1W --json-outputLegacy single-TF (chỉ trigger, không structure — không khuyến khích):
python scripts/vn_stock_harness.py {SYMBOL} --interval {interval} --limit 200 python scripts/vn_stock_harness.py {SYMBOL} --interval 1D --limit 200 --writeĐọc summary/output do script sinh ra. Nếu summary thiếu field bắt buộc, sửa
extractor thay vì đọc raw runtime.Volume reliability của VN stock là cao vì volume matching tập trung trên sàn.
Position And Portfolio Commands
Khi người dùng báo lệnh spot đã khớp hoặc hỏi vị thế/danh mục, không chạy phân
tích thị trường và không sửa JSON thủ công. Route sang CLI deterministic.
Position Commands
Dùng scripts/position_cli.py cho lệnh mua/bán đã thực thi và xem vị thế:
mua {amount}u {symbol} giá {price} khung {timeframe}mua thêm {amount}u {symbol} giá {price} khung {timeframe}bán {amount}u {symbol} giá {price} khung {timeframe}bán hết {symbol} giá {price} khung {timeframe}xem vị thếxem vị thế {symbol}
Chạy:
python scripts/position_cli.py "{USER_TEXT}"Trả nguyên văn output của script. Không tự cập nhậtjournal/open-positions.json.
Portfolio Commands
Dùng scripts/portfolio_cli.py cho câu hỏi phân bổ danh mục hoặc cấu hình vốn:
xem tổng danh mụcportfolio hiện tại{symbol} đang chiếm bao nhiêu %{symbol} còn được mua thêm bao nhiêuvị thế {symbol} hiện tại thế nàoset danh mục spot {amount}u
Chạy:
python scripts/portfolio_cli.py "{USER_TEXT}"Trả nguyên văn output của script.
Safety
- BẮT BUỘC dùng summary-first và validator/finalizer.
- Không phân tích dữ liệu cũ nếu pipeline thất bại.
- Không sửa source, cache hoặc input snapshot trong lúc phân tích.
- Không ghi action, setup grade, risk, invalidation hoặc chat verdict vượt engine
contract. - Nếu validator/finalizer reject, sửa pipeline output hoặc renderer; không mở rộng
prompt runtime.