Kết hợp với thư viện thế hệ 5
Mục lục
vnstock_chart không import vnstock, không xin cấp quyền, không cần khoá API. Nó chỉ nhận một DataFrame/Series đã có sẵn và vẽ. Mọi dữ liệu trong trang này do bạn tự truy xuất bằng các thư viện khác trước, rồi đưa vào Chart.
Giá từ vnstock
from vnstock import Market
from vnstock_chart import Chart
df = Market().equity("FPT").ohlcv(start="2024-01-01", end="2024-12-31")
fig, ax = Chart.candle(df, title="FPT — Nến ngày 2024", volume=True)
fig.savefig("fpt_candle.png", dpi=150, bbox_inches="tight")Cột time ở vnstock thế hệ 5 có múi giờ (+07:00); bỏ múi giờ trước khi vẽ để nhãn trục không lệch:
df = df.set_index(df["time"].dt.tz_localize(None))Chỉ báo kỹ thuật từ vnstock_quant
from vnstock_quant import Indicator
from vnstock_chart import Chart
ind = Indicator(df)
rsi = ind.rsi(length=14)
fig, ax = Chart.line(rsi, title="FPT — RSI(14)", ytick_format="{:.0f}")Vẽ nến kèm đường trung bình động chồng lên bằng overlays của Chart.candle — xem Các loại biểu đồ.
Kết quả backtest từ vnstock_bt
from vnstock_bt import run_backtest
from vnstock_chart import Chart
# -1 bán, 0 đứng ngoài, 1 mua — ví dụ minh hoạ, không phải chiến lược thật
sma20 = df["close"].rolling(20).mean().fillna(method="bfill")
signals = (df["close"] > sma20).map({True: 1, False: -1}).tolist()
result = run_backtest(data=df, signals=signals)
fig, (ax1, ax2) = Chart.equity_curve(result.equity_df()["equity"], title="Đường vốn & Drawdown")
fig.savefig("backtest_equity.png", dpi=150, bbox_inches="tight")Chart.returns_heatmap vẽ lợi suất theo tháng/năm từ cùng equity_df(); Chart.rrg so sánh động lượng nhiều mã nếu bạn backtest theo danh mục.
Thẻ tóm tắt nhanh
Chart.summary_card(ticker=, company_name=, current_price=, price_change=, price_change_pct=, metrics=, sparkline_data=, signal=) ghép giá, % thay đổi, vài chỉ số tóm tắt và một đường sparkline nhỏ thành một ảnh chia sẻ được ngay — tiện khi bạn đã tính xong các số đó từ Market() và vnstock_quant và chỉ cần dựng ảnh. Xem đủ tham số bằng help(Chart.summary_card).
Trợ lý AI
Nếu bạn dùng Claude, ChatGPT hay Antigravity để viết các đoạn trên, trợ lý AI đọc được docstring song ngữ của vnstock_chart trực tiếp (gọi help(Chart.candle)), và có thể kết hợp cả ba thư viện trong cùng một kịch bản như trên mà không cần bạn chỉ dẫn thêm. Xem thêm Vnstock MCP nếu bạn muốn trợ lý AI gọi trực tiếp vnstock/vnstock_quant trên máy mà không cần bạn tự viết đoạn lấy dữ liệu.