from datetime import datetime
from vnpy.trader.database import get_database
from vnpy.trader.constant import Exchange # 导入Exchange枚举
import pandas as pd
# 1. 获取数据库实例
database = get_database()
# 2. 加载Tick数据
# 合约 hc2505 的存续时间是2025年,时间范围从2025年1月1日到2025年12月31日
symbol = "hc2505"
exchange = Exchange.SHFE # 使用Exchange枚举值
start = datetime(2025, 1, 1)
end = datetime(2025, 12, 31)
# 调用load_tick_data加载数据
tick_data = database.load_tick_data(symbol=symbol, exchange=exchange, start=start, end=end)
# 3. 将TickData列表转换为DataFrame
# 使用一个循环一次性提取所有字段
data = {
"datetime": [],
"last_price": [],
"volume": [],
"open_interest": [],
"bid_price_1": [],
"bid_volume_1": [],
"ask_price_1": [],
"ask_volume_1": [],
# 可以根据需要添加更多字段
}
for tick in tick_data:
data["datetime"].append(tick.datetime)
data["last_price"].append(tick.last_price)
data["volume"].append(tick.volume)
data["open_interest"].append(tick.open_interest)
data["bid_price_1"].append(tick.bid_price_1)
data["bid_volume_1"].append(tick.bid_volume_1)
data["ask_price_1"].append(tick.ask_price_1)
data["ask_volume_1"].append(tick.ask_volume_1)
# 将提取的数据转换为DataFrame
df = pd.DataFrame(data)
# 打印DataFrame
print(df)
基于RAG技术开发的VeighNa AI助手,你的个人专属 Desk Quant