# Lịch Sử Giá - History

> Nến từ 1 phút tới 1 tháng, range và khoảng ngày, gộp khung trong thư viện.

```ts
import { vn } from "vnstock-js";

const daily = await vn.stock("FPT").history("6mo");
const range = await vn.stock("FPT").history({ from: "2025-01-01", to: "2025-12-31" });
const weekly = await vn.stock("FPT").history({ from: "2025-01-01", interval: "1w" });
const intraday = await vn.stock("FPT").history({ from: "2026-10-20", interval: "15m" });
const index = await vn.index("VNINDEX").history("1y"); // điểm
```

Trả về mảng [Bar](/docs/data/ChartData), cũ trước mới sau.

## Range

| Range | Ý nghĩa |
|---|---|
| `1d`, `5d` | 1 hoặc 5 phiên gần nhất |
| `1mo`, `3mo`, `6mo` | 1, 3, 6 tháng |
| `ytd` | Từ đầu năm |
| `1y`, `2y`, `5y` | 1, 2, 5 năm |
| `max` | Toàn bộ lịch sử |

Hoặc `{ from, to }` dạng `YYYY-MM-DD`; bỏ `to` là tới hôm nay. `6m` không hợp lệ (dễ nhầm với 6 phút), dùng `6mo`.

## Khung nến

| Interval | Nguồn |
|---|---|
| `1m`, `1h`, `1d` | Nến gốc từ VCI |
| `5m`, `15m`, `30m` | Gộp từ nến 1m |
| `1w`, `1mo` | Gộp từ nến ngày |

Khung 30m bám đồng hồ: ô 09:00 chứa nến 09:15 tới 09:29. Dữ liệu 1 phút chỉ có trong độ sâu VCI lưu (khoảng từ đầu 2025); range dài hơn sẽ trả phần đang có thay vì báo lỗi.

## Giá trị giao dịch của nến

- Nến ngày, tuần, tháng: `value` là giá trị giao dịch của riêng nến đó, bằng đồng.
- Nến trong phiên (1m tới 1h): `value` là giá trị **luỹ kế** từ đầu phiên tới nến đó.

## Thời gian

`time` theo giờ Việt Nam: `"2026-10-20"` cho nến ngày, `"2026-10-20T09:15:00+07:00"` cho nến trong phiên.

## Dùng với chỉ báo

```ts
import { sma, rsi } from "vnstock-js/indicators";

const bars = await vn.stock("FPT").history("1y");
const sma20 = sma(bars, { period: 20 });
const rsi14 = rsi(bars);
```
