VeighNa量化社区
你的开源社区量化交易平台 | vn.py | vnpy
Member
avatar
加入于:
帖子: 14
声望: 0

import pandas as pd
import numpy as np# 加载数据
file_path = './hc2505_SHFE_tick_96.csv'
f_d = pd.read_csv(file_path, encoding='GBK')
f_d = pd.DataFrame(f_d)
f_d['last_price_diff'] = f_d['last_price'].diff()
f_d['volume_diff'] = f_d['volume'].diff()

原来有个模型建立的DataFrame是通过读取下载好的SCV格式的tick数据建造的。现在需要接入实盘训练一下。上文 中的 pd.DataFrame怎样写能实现:通过 调用load_tick或者load_bar函数接收实盘中的hc2505合约中的tick数据,从而在实盘中建立pd.DataFrame?我使用的是taos数据库。

Member
avatar
加入于:
帖子: 14
声望: 0

datetime datetime_nano last_price high_price low_price average volume turnover open_interest bid_price_1 bid_volume_1 ask_price_1 ask_volume_1 bid_price_2 bid_volume_2 ask_price_2 ask_volume_2 bid_price_3 bid_volume_3 ask_price_3 ask_volume_3 bid_price_4 bid_volume_4 ask_price_4 ask_volume_4 bid_price_5 bid_volume_5 ask_price_5 ask_volume_5
00:01.5 1663030801500000000 3863 3870 3845 3853.6 3677 141698030 680234 3862 38 3864 25 3861 25 3867 16 3860 22 3868 8 3859 5 3870 82 3858 5 3871 4
00:02.0 1663030802000000000 3866 3870 3845 3855.7 4505 173698370 680293 3867 2 3869 31 3866 26 3870 60 3865 10 3871 7 3864 11 3872 82 3863 59 3873 10
00:02.5 1663030802500000000 3867 3870 3845 3856.5 4962 191360720 680278 3865 9 3867 53 3864 9 3868 72 3863 1 3869 23 3862 19 3870 26 3860 32 3871 8

这是原来下载好的CSV数据示例。

Super Moderator
avatar
加入于:
帖子: 89
声望: 8
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)
© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】