# 读取csv文件
df = pd.read_csv("SZSE.399005_d.csv")
# 获取数据长度
count = df.shape[0]
# 创建结构体缓存
BUFFER = WTSBarStruct * count
buffer = BUFFER()
# 填充数据
for index, row in df.iterrows():
curbar = buffer[index]
curbar.date = strToDate(row["date"])
curbar.open = float(row["open"])
curbar.high = float(row["high"])
curbar.low = float(row["low"])
curbar.close = float(row["close"])
curbar.vol = int(row["volume"])
curbar.money = int(row["turnover"])
# csv->dsb
dtHelper = WtDataHelper()
dtHelper.store_bars(barFile="SZSE.399005_d.dsb", firstBar=buffer, count=count, period="d")
# dsb->csv
dtHelper.dump_bars(binFolder="./", csvFolder="dsb_csv")
注意事项:
store_bars
周期参数只能是 "m1", "m5"或"d"curbar
对应 WTSBarStruct
字段, 右边对应csv文件列名(每个数据类型查看 WTSBarStruct
)from wtpy.WtCoreDefs import WTSBarStruct, WTSTickStruct, PriceQueueType
df = pd.read_csv("EURUSD_t.csv")
count = df.shape[0]
BUFFER = WTSTickStruct * count
buffer = BUFFER()
for index, row in df.iterrows():
curbar = buffer[index]
curbar.exchg = bytes(row["exchg"], encoding="utf-8")
curbar.code = bytes(row["code"], encoding="utf-8")
curbar.price = float(row["price"])
curbar.open = float(row["open"])
curbar.high = float(row["high"])
curbar.low = float(row["low"])
curbar.settle_price = float(row["settle_price"])
curbar.trading_date = int(row["trading_date"])
curbar.action_date = int(row["action_date"])
curbar.action_time = int(row["action_time"])
curbar.bid_prices = (PriceQueueType)(row["bid"])
curbar.ask_prices = (PriceQueueType)(row["ask"])
dtHelper = WtDataHelper()
dtHelper.store_ticks(tickFile="EURUSD_t.dsb", firstTick=buffer, count=count)
dtHelper.dump_ticks(binFolder="./", csvFolder="dsb_csv")
填充方式和逻辑与bar相同, 注意事项, 底层默认数据精度3位小数, 如果你的品种数据精度大于3, 那也只保留3位