Dữ liệu d
- 🇻🇳 Tiếng Việt
- 🇬🇧 English
- 🇰🇷 한국어
- 🇨🇳 中文
d là dữ liệu nến mà plot, signals, alerts, series, filter nhận ở đối số đầu tiên: nến của mã và khung đang xem trên biểu đồ. Mọi trường là chuỗi (trừ khi ghi khác). Đổi mã / khung trên biểu đồ là script tính lại trên dữ liệu mới.
| Nhóm | Trên biểu đồ |
|---|---|
| Giá, khối lượng, khung lớn, khung nhỏ, lịch phiên, thông tin mã | Có |
| Mã khác: d.symbol, d.bench | Có — biểu đồ tự nạp nến của mã đó |
| Dòng tiền chủ động: d.flow, d.footprint | Có, Chuyên nghiệp |
| BCTC, vĩ mô, khối ngoại, định giá… (Quant) | Không — có khi Lọc bằng script trên rổ có tên và trong Quant AI Studio |
Giá, khối lượng, thời gian
| Trường | Nghĩa | Đơn vị |
|---|---|---|
d.open, d.high, d.low, d.close | Giá mở cửa, cao nhất, thấp nhất, đóng cửa của nến (nến đang chạy: close = giá khớp gần nhất) | nghìn đồng (chỉ số: điểm) |
d.volume | Khối lượng khớp của nến | cổ phiếu (hợp đồng) |
d.hl2 | (cao + thấp) / 2 | giá |
d.hlc3 | (cao + thấp + đóng) / 3 — giá điển hình | giá |
d.ohlc4 | (mở + cao + thấp + đóng) / 4 | giá |
d.time | Mốc mở nến, mili-giây UTC | ms |
d.index | Số thứ tự nến: 0 = nến đầu của dữ liệu đã nạp (kể cả đoạn khởi động). Giá trị tuyệt đối phụ thuộc lượng lịch sử đã nạp — chỉ dùng hiệu hai chỉ số | nến |
d.value | Giá trị giao dịch ước tính = close × volume × 1000 | đồng |
d.ret | Lợi nhuận nến = close ÷ close nến trước − 1 | tỷ lệ |
d.tradable | 1 nếu nến có khớp lệnh (volume > 0), 0 nếu không | — |
d.source(tên)
d.source(ten) → chuỗi — lấy chuỗi theo tên: "open", "high", "low", "close", "volume", "hl2", "hlc3", "ohlc4". Tên khác báo lỗi d.source: nguồn "…" không có (open, high, low, close, volume, hl2, hlc3, ohlc4). Dùng với tham số chọn nguồn: d.source(p.src).
d.const(số)
d.const(x) → chuỗi — chuỗi hằng x ở mọi nến. Cần khi muốn vẽ một số bằng line (line(d.const(p.muc))), hoặc bắt đầu một phép từ một số: d.const(100).div(d.close) (100 ÷ giá), d.const(5).where(dieuKien) (5 khi đúng, NaN khi sai).
Khung lớn hơn: d.tf
d.tf(khung, { forming? = false }) → Bars — nến của cùng mã ở khung lớn hơn, gióng về từng nến của biểu đồ. Kết quả có đủ trường như d (.open, .close, .volume, .hl2, .time…) và dùng được với ta.*.
| Khung hợp lệ | "1", "5", "15", "30", "60", "240" (phút); "1D", "1W", "1M", "3M", "12M" |
| Điều kiện | Lớn hơn và là bội số của khung đang tính. Nhỏ hơn: lỗi tf-lower d.tf("60") nhỏ hơn khung đang tính 1D — chưa hỗ trợ (khung nhỏ hơn dùng d.ltf); không là bội số: lỗi tf-misaligned |
| Cùng khung | d.tf(d.resolution) trả lại chính d |
forming: false (mặc định) | Chỉ nến khung lớn đã đóng: giá trị hiện từ nến nhỏ cuối cùng của nến lớn đó, giữ nguyên tới nến lớn kế tiếp đóng. Không vẽ lại |
forming: true | Nến khung lớn đang hình thành, gộp từ các nến nhỏ đã có (đỉnh / đáy / đóng tính tới nến hiện tại) |
Mốc đóng theo lịch phiên: nến 60 phút neo theo đoạn giao dịch, nến ngày đóng lúc ATC, nến tuần đóng ở phiên cuối tuần.
Khung nhỏ hơn: d.ltf
d.ltf(khung) → LowerBars — nến khung nh ỏ hơn (vd. 1 phút) nằm trong từng nến của biểu đồ, như request.security_lower_tf của Pine. Chuỗi của nó tính theo từng nến nhỏ (ta.ema(m.close, 30) là EMA 30 nến phút); về nến của biểu đồ bằng phép gộp:
| Phép | Nghĩa |
|---|---|
m.sum(x) m.mean(x) m.max(x) m.min(x) m.std(x) | Tổng / trung bình / lớn nhất / nhỏ nhất / độ lệch chuẩn các nến nhỏ của nến (bỏ NaN) |
m.first(x) m.last(x) m.at(x, k) | Nến nhỏ đầu / cuối / thứ k (0 = đầu, −1 = cuối) |
m.count(x?) | Số nến nhỏ (có giá trị) của nến |
Dùng thẳng m.close | Giá trị ở nến nhỏ cuối của nến |
indicator({
name: "Khối lượng mua mạnh trong phiên",
plot: (d) => {
const m = d.ltf("1");
const upVol = m.sum(m.volume.where(m.close.gt(m.open), 0));
return { "KL nến phút tăng (%)": columns(upVol.div(m.sum(m.volume)).mul(100)) };
},
});
Trong onBar: khai báo chuỗi khung nhỏ trong series rồi đọc mảng bằng ctx.ltf(tên). Khung đang tính phải là bội số của khung nhỏ; tối đa 2 khung nhỏ mỗi script, một nến ≤ 20.000 nến nhỏ. Terminal nạp tối đa khoảng 150.000 nến nhỏ mỗi khung (với 1 phút ≈ 555 phiên gần nhất): nến cũ hơn không có nến nhỏ — phép gộp ra NaN, count ra 0.
Lịch phiên: d.session
| Chuỗi | Giá trị |
|---|---|
d.session.first | 1 ở nến đầu tiên của mỗi phiên giao dịch, 0 ở nến khác |
d.session.last | 1 ở nến cuối của phiên (biết khi nến đó đóng). Hiện đúng trên nến ngày và nến 60 phút; trên khung 1–30 phút chưa nhận nến ATC — muốn bắt cuối phiên dùng d.session.minute.gte(14 * 60 + 30) |
d.session.minute | Phút trong ngày theo giờ của sàn (UTC+7): 9:15 → 555, 13:00 → 780, 14:45 → 885 |
d.session.weekday | 0 = Chủ nhật, 1 = thứ Hai … 6 = thứ Bảy |
d.session.day | Số ngày kể từ 01/01/1970 theo giờ của sàn |
Trên nến ngày, first và last luôn là 1, minute không mang nghĩa giờ khớp lệnh — các chuỗi này dành cho biểu đồ trong ngày.
Thông tin mã và khung
| Thuộc tính | Kiểu | Nghĩa |
|---|---|---|
d.info | đối tượng | { symbol, exchange?, type?, … } của mã đang tính |
d.info.symbol | chữ | Mã: "FPT", "VNINDEX", "VN30F1M" |
d.resolution | chữ | Khung: "1D", "1W", "15", "60"… |
d.mode | chữ | "symbol" trên biểu đồ ("universe" trong Quant AI Studio) |
d.symbols | mảng chữ | ["FPT"] — một phần tử trên biểu đồ |
d.unit | số | Số đồng trên một đơn vị giá: 1000 (giá nghìn đồng) |
Đây là giá trị thường (không phải chuỗi): dùng với JavaScript (d.resolution === "1D", ${d.info.symbol}).