Vnstock Logo

Nghiên cứu Tái lập và Đa nguồn

Mở rộngvnstock_mcp v0.4.0

Mục lục

Khả năng kiểm chứng và tái lập

Trong quá trình nghiên cứu dữ liệu, khả năng lưu lại các bước thực thi và chạy lại kết quả giúp bạn dễ dàng kiểm chứng lại các giả định phân tích mà không cần lặp lại toàn bộ các câu lệnh thủ công với Trợ lý AI.



Tổng quan

vnstock-mcp được thiết kế linh hoạt, cho phép bạn tiếp nhận dữ liệu từ nguồn khác bạn có quyền dùng (một MCP khác, tệp CSV/JSON trên máy), đối chiếu tính nhất quán của dữ liệu và chạy các thuật toán định lượng của vnstock_quant.


Quy trình làm việc đa nguồn (Multi-MCP Workflow)

Sơ đồ dưới đây minh họa luồng tương tác khi bạn kết hợp Trợ lý AI với nhiều MCP cùng lúc:

MD
┌────────────────────────────────────────────────────────┐
│     Trợ lý AI (Claude Code / Antigravity / Claude)     │
└───────┬────────────────────────┬───────────────────────┘
        │ 1. Lấy nến             │ 2. Lấy nến
        ▼                        ▼
┌───────────────┐        ┌───────────────┐
│  Nguồn khác   │        │  Vnstock MCP  │
└───────┬───────┘        └───────┬───────┘
        │                        │
        │ Bảng nến ngoài         │ Bảng nến Vnstock (call_id: "c1")
        ▼                        ▼
┌────────────────────────────────────────────────────────┐
│             Vnstock Research Harness (Rust)            │
│  • research_save   : Lưu bảng nến ngoài vào workspace │
│  • research_compare: Đối chiếu chéo sai lệch giá       │
│  • quant_ta_basic  : Tính SMA/RSI trên dữ liệu ngoài   │
│  • research_journal: Sinh Python Script tái lập quy trình│
└────────────────────────────────────────────────────────┘

Kịch bản 1: Nạp và Lưu Dữ Liệu Từ MCP Khác

Bạn có thể yêu cầu Trợ lý AI lấy dữ liệu từ một MCP khác và chuyển vào không gian làm việc của Vnstock:

Prompt mẫu cho Trợ lý AI:

"Hãy lấy lịch sử nến 30 ngày gần nhất của mã FPT từ tệp fpt.csv (dữ liệu tôi có quyền dùng), rồi lưu vào bộ nhớ nghiên cứu với tên bảng là 'fpt_external_daily' nhé."

Khi nhận được lệnh, Trợ lý AI sẽ gọi công cụ research_save:

JSON
{
  "name": "fpt_external_daily",
  "data": "[{\"time\": \"2026-10-01\", \"close\": 102.0}, ...]",
  "format": "json",
  "source": "external"
}

Bảng dữ liệu này sẽ được lưu trữ trong thư mục ~/vnstock_research/tables/ trên máy tính của bạn và sẵn sàng cho các phép tính định lượng tiếp theo.


Kịch bản 2: Đối Chiếu Chéo Phát Hiện Sai Lệch Dữ Liệu

Khi nghiên cứu đầu tư, việc có hai nguồn dữ liệu khác nhau cho cùng một cổ phiếu là tình huống có thể xảy ra (do phương pháp tính giá điều chỉnh, thời điểm chốt phiên hoặc nguồn cấp).

Bạn có thể yêu cầu Trợ lý AI đối chiếu trực tiếp:

Prompt mẫu cho Trợ lý AI:

"Hãy đối chiếu dữ liệu nến FPT của Vnstock với bảng 'fpt_external_daily' mà ta vừa lưu, so khớp theo cột ngày xem có điểm nào lệch giá đóng cửa không."

Trợ lý AI sẽ gọi công cụ research_compare:

JSON
{
  "table_a": "fpt_vnstock",
  "table_b": "fpt_external_daily",
  "join_column": "time"
}
Xem kết quả đối chiếu mẫu trả về cho AI
JSON
{
  "call_id": "c3",
  "code": "research_compare",
  "result": {
    "table_a": "fpt_vnstock",
    "table_b": "fpt_external_daily",
    "total_a": 30,
    "total_b": 30,
    "matched_keys": 30,
    "mismatch_count": 1,
    "discrepancies": [
      {
        "time": "2026-10-05",
        "diffs": {
          "close": { "a": 105.5, "b": 105.0 }
        }
      }
    ]
  }
}

Trợ lý AI sẽ đọc kết quả này và thông báo ngày có sự chênh lệch giá để bạn nắm được thông tin.


Kịch bản 3: Chạy Thuật Toán Quant Trên Dữ Liệu Ngoài

Bạn có thể tận dụng dữ liệu sẵn có từ công ty chứng khoán hoặc nguồn cá nhân để đưa vào phân tích định lượng với các thuật toán của vnstock_quant:

Prompt mẫu cho Trợ lý AI:

"Hãy tính đường trung bình động SMA 20 ngày và chỉ báo RSI 14 ngày cho bảng nến 'fpt_external_daily'."

Trợ lý AI sẽ gọi quant_ta_basic (hoặc quant_compute):

JSON
{
  "indicator": "sma",
  "data": "fpt_external_daily",
  "length": 20
}

Lõi tính toán sẽ nạp bảng fpt_external_daily từ bộ nhớ nghiên cứu, áp dụng công thức tính toán và trả về bảng kết quả kèm mã tham chiếu mới (call_id: "c4").


Kịch bản 4: Tự Động Sinh Mã Nguồn Python Tái Lập (Reproducible Script)

Sau khi phân tích và kiểm thử các chỉ báo, bạn có thể xuất quy trình vừa làm thành một script Python độc lập để chạy lại định kỳ:

Prompt mẫu cho Trợ lý AI:

"Toàn bộ phân tích vừa rồi rất tốt. Hãy xuất cho tôi một file Python độc lập tái lập quy trình này để tôi có thể tự chạy lại."

Trợ lý AI sẽ gọi công cụ:

JSON
{
  "method": "script"
}
Xem đoạn mã Python độc lập được sinh ra tự động
Python
"""
REPRODUCIBLE RESEARCH SCRIPT
Auto-generated by vnstock-mcp workspace ledger.
Session: 20261011_225515
Created: 2026-10-11T15:55:15Z
"""

from vnstock import Market
import vnstock_quant as vq
import pandas as pd

def main():
    print("[1/3] Executing Market().equity('FPT').ohlcv(length='3M')...")
    c1 = Market().equity("FPT").ohlcv(length="3M")

    print("[2/3] Executing vq.ta.compute(c1, 'sma', length=20)...")
    c2 = vq.ta.compute(c1, "sma", length=20)

    print("[3/3] Executing vq.ta.compute(c1, 'rsi', length=14)...")
    c3 = vq.ta.compute(c1, "rsi", length=14)

    # Tổng hợp bảng dữ liệu cuối cùng
    result_df = pd.concat([c1, c2, c3], axis=1)
    print("Ket qua nghien cuu:")
    print(result_df.tail())

if __name__ == "__main__":
    main()

Mã nguồn Python sinh ra lưu lại các bước phân tích chính bằng các thư viện chuẩn, giúp bạn dễ dàng chạy lại hoặc đưa vào quy trình tự động hoá cá nhân.