Vnstock Logo

Thị trường hàng hoá

Cập nhật lần cuối:

Thảo luận

Mục lục

Lớp CommodityPrice cung cấp dữ liệu giá hàng hóa (vàng, dầu, khí, sắt, nông sản, v.v.).

Khởi Tạo

Python
from vnstock_data import CommodityPrice

# Khởi tạo cơ bản
commodity = CommodityPrice()

# Khởi tạo với ngày bắt đầu/kết thúc mặc định
commodity = CommodityPrice(start="2024-01-01", end="2025-12-31")

# Hiển thị debug logs
commodity = CommodityPrice(show_log=True)

Tham Số Khởi Tạo

  • start (str, optional): Ngày bắt đầu mặc định (format: "YYYY-MM-DD")
  • end (str, optional): Ngày kết thúc mặc định (format: "YYYY-MM-DD")
  • length (str|int, optional): Khoảng thời gian mặc định lấy dữ liệu. Mặc định là 1Y (1 năm gần nhất tính từ ngày hnay). Xem chi tiết cấu trúc tại README.md.
  • show_log (bool, default=False): Bật log debug

Lưu ý: Chỉ SPL hỗ trợ Commodity.

Phương Thức

Vàng

Python
# Vàng Việt Nam (mua/bán) - 3 tháng gần nhất
df = commodity.gold_vn(length="3M")

# Vàng thế giới - 100 nến
df = commodity.gold_global(length="100b")

Trả về:

  • gold_vn(): DataFrame với cột buy, sell (float64)
  • gold_global(): DataFrame với cột open, high, low, close, volume

Ví dụ - Vàng VN (3 dòng gần nhất):

                 buy      sell
time                          
2025-11-28  152200.0  154200.0
2025-11-29  152900.0  154900.0
2025-12-02  152600.0  154600.0

Năng Lượng

Python
# Xăng/dầu Việt Nam - mặc định 1 năm
df = commodity.gas_vn()

# Dầu thô thế giới - 3 tháng
df = commodity.oil_crude(length="3M")

# Khí thiên nhiên - 30 ngày
df = commodity.gas_natural(length="30D")

Trả về:

  • gas_vn(): DataFrame với cột ron95, ron92, oil_do
  • oil_crude(): DataFrame với cột open, high, low, close, volume
  • gas_natural(): DataFrame với cột open, high, low, close, volume

Ví dụ - Dầu thô (3 dòng gần nhất):

             open   high    low  close    volume
time                                            
2025-11-27  58.58  59.64  58.27  58.55  139202.0
2025-12-01  58.96  59.97  58.83  59.32  211462.0
2025-12-02  59.52  59.67  59.33  59.46    6724.0

Kim Loại

Python
# Than cốc
df = commodity.coke()

# Thép D10 Việt Nam - 3 tháng
df = commodity.steel_d10(length="3M")

# Quặng sắt thế giới
df = commodity.iron_ore()

# Thép HRC thế giới
df = commodity.steel_hrc()

Trả về: DataFrame với cột open, high, low, close, volume (float64)

Ví dụ - Thép HRC (3 dòng gần nhất):

             open   high    low  close  volume
time                                          
2025-11-26  890.0  907.0  890.0  904.0    68.0
2025-11-27  908.0  908.0  904.0  908.0     1.0
2025-12-01  905.0  905.0  899.0  903.0    44.0

Nông Sản

Python
# Phân bón Urê (Mặc định 1Y)
df = commodity.fertilizer_ure()

# Đậu nành
df = commodity.soybean(length="3Y")

# Ngô
df = commodity.corn()

# Đường
df = commodity.sugar()

# Lợn (heo) miền Bắc Việt Nam
df = commodity.pork_north_vn(length="100b")

# Lợn (heo) Trung Quốc
df = commodity.pork_china()

Tham Số Chung Của Các Hàm:

  • start (str, optional): Ngày bắt đầu (format: "YYYY-MM-DD")
  • end (str, optional): Ngày kết thúc (format: "YYYY-MM-DD")
  • length (str|int, optional): Khoảng thời gian tương đối (VD: 30D, 3M, 1Y hoặc 100b). Xem Định dạng length.

Lưu ý: Với mỗi method, nếu các đối số khởi tạo này bỏ trống, cấu hình khởi tạo của chính class CommodityPrice (Mặc định 1Y) sẽ được áp dụng.

Trả về: DataFrame với cột OHLCV (open, high, low, close, volume - float64)

Ví dụ - Lợn miền Bắc VN (3 dòng gần nhất):

              close
time               
2025-11-16  48100.0
2025-11-23  52100.0
2025-11-30  54400.0

Ví Dụ

Python
from vnstock_data import CommodityPrice
import matplotlib.pyplot as plt

commodity = CommodityPrice()

# Lấy giá vàng 30 ngày qua
gold_vn = commodity.gold_vn(length="30D")
print("Giá vàng Việt Nam gần đây:")
print(f"Giá mua hiện tại: {gold_vn['buy'].iloc[-1]:,.0f} VND/chỉ")
print(f"Giá bán hiện tại: {gold_vn['sell'].iloc[-1]:,.0f} VND/chỉ")

# Lấy giá dầu 1 năm
oil = commodity.oil_crude()
print(f"\nGiá dầu thô gần đây:")
print(f"Giá close: {oil['close'].iloc[-1]:.2f} USD/barrel")

# Lấy giá thép 6 tháng
steel = commodity.steel_hrc(length="6M")
print(f"\nGiá thép HRC gần đây:")
print(f"Giá close: {steel['close'].iloc[-1]:,.0f} USD/tấn")

# Lấy giá lợn mốc 1 năm
pork = commodity.pork_north_vn()
print(f"\nGiá lợn Bắc Việt Nam gần đây:")
print(f"Giá close: {pork['close'].iloc[-1]:,.0f} VND/kg")

# Vẽ biểu đồ giá vàng
plt.figure(figsize=(12, 4))
plt.plot(gold_vn.index, gold_vn['close'], label='Vàng VN')
plt.title('Giá Vàng Việt Nam')
plt.xlabel('Thời gian')
plt.ylabel('Giá (VND)')
plt.legend()
plt.grid(True)
plt.show()

Phân Tích Ví Dụ

Python
from vnstock_data import CommodityPrice
import pandas as pd

commodity = CommodityPrice()

# Phân tích giá vàng
gold = commodity.gold_vn(start="2024-01-01", end="2025-12-31")

# Tính moving average
gold['MA30'] = gold['close'].rolling(30).mean()

# Tìm support/resistance
price_high = gold['close'].max()
price_low = gold['close'].min()
price_current = gold['close'].iloc[-1]

print(f"Giá vàng cao nhất: {price_high:,.0f} VND")
print(f"Giá vàng thấp nhất: {price_low:,.0f} VND")
print(f"Giá vàng hiện tại: {price_current:,.0f} VND")

# Tính % từ low
pct_from_low = (price_current - price_low) / (price_high - price_low) * 100
print(f"% từ low tới current: {pct_from_low:.1f}%")

# Phân tích dầu
oil = commodity.oil_crude(start="2024-01-01", end="2025-12-31")
oil_ma20 = oil['close'].rolling(20).mean()

print(f"\nGiá dầu thô:")
print(f"Giá hiện tại: ${oil['close'].iloc[-1]:.2f}")
print(f"MA20: ${oil_ma20.iloc[-1]:.2f}")

if oil['close'].iloc[-1] > oil_ma20.iloc[-1]:
    print("📈 Giá dầu trên đường MA20 (uptrend)")
else:
    print("📉 Giá dầu dưới đường MA20 (downtrend)")

Ứng Dụng

  • Phân tích ngành: Vàng ↑ → cổ phiếu vàng ↑
  • Lạm phát: Dầu/khí ↑ → lạm phát ↑
  • Nông sản: Giá lợn → ngành thức ăn chăn nuôi
  • Ngành công nghiệp: Giá thép → ngành xây dựng, cơ khí

Thảo luận

Đang tải bình luận...