# Bảng Giá - Prices

> Giá hiện tại của một hay nhiều mã, top tăng giảm.

## Một mã

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

const q = await vn.stock("FPT").price();
console.log(q.price, q.ref, q.ceiling, q.floor, q.changePct);
```

Trả về một [Quote](/docs/data/PriceBoardItem): giá khớp, tham chiếu, trần, sàn, cao, thấp, giá trung bình, khối lượng và giá trị luỹ kế, khối lượng khớp gần nhất, khối ngoại mua bán, ba bước giá mua bán. Mọi giá tính bằng đồng. Trước lệnh khớp đầu tiên của phiên, `price` là 0 và `change`, `changePct` là 0.

## Nhiều mã trong một request

```ts
const list = await vn.prices(["FPT", "VCB", "HPG"]);
const vn30 = await vn.prices({ group: "VN30" });      // VN30, VN100, HNX30...
const hose = await vn.prices({ exchange: "HOSE" });   // cả sàn
```

Gộp nhiều mã vào một lời gọi `vn.prices` nhanh hơn và ít bị giới hạn tần suất hơn gọi `price()` từng mã.

## Chỉ số

```ts
const vni = await vn.index("VNINDEX").price(); // mức điểm hiện tại so với phiên trước
```

## Top tăng, giảm

```ts
const { gainers, losers } = await vn.topMovers({ limit: 10 });
console.log(gainers.map((m) => [m.symbol, m.exchange, m.price1DayAgo]));
```

Xem [TopMover](/docs/data/TopStock).

## Hiển thị kiểu bảng điện

Bảng điện in giá theo nghìn đồng (`57.50`). Chia cho 1000 ở bước hiển thị, đừng đổi dữ liệu gốc:

```ts
const board = (dong: number) => (dong / 1000).toFixed(2);
console.log(board(q.price)); // "57.50"
```
