VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 8
声望: 1

1.利用通达信软件“盘后数据下载” 下载需要品种1分钟历史数据
description

  1. 导出数据,选择“高级导出”功能
    description
  2. 选择1分钟数据导出,添加品种名称,点击导出数据
    description
    4.导出成功后自动弹出历史数据文件夹
    description
    5.删除文件中的无用抬头和弗结尾文字,修改标题行,用","号隔开, 样板数据如下图
    description

6.执行入库的python代码

import csv
from datetime import datetime, timedelta
from pytz import timezone

from vnpy.trader.constant import Exchange, Interval
from vnpy.trader.database import BaseDatabase, get_database
from vnpy.trader.object import BarData

封装函数

def load_tdx_csv_to_mongodb(file_path: str, exchange: str, symbol:str, interval:str):

with open(file_path, "rt") as f:
    buf = [line.replace("\0", "") for line in f]

reader = csv.DictReader(buf, delimiter=",")

bars = []
start = None
count = 0
tz = timezone("Asia/Shanghai")

for item in reader:
    tt1=item["时间"]

    ln=len(tt1)
    tt2=tt1[0:2]
    tt3=tt1[2:4]
    tt1=tt2+":"+tt3

    dt = datetime.strptime(item["日期"] +' '+ tt1, '%Y-%m-%d %H:%M')
    # minute - 1;
    dt = dt + timedelta(minutes=-1)
    # time > 15:00, day - 1
    if dt.hour > 15:
        dt = dt + timedelta(days=-1)
    dt = tz.localize(dt)

    bar = BarData(
        symbol=symbol,
        exchange=exchange,
        interval=interval,
        datetime=dt,

        open_price=float(item["开盘"]),
        high_price=float(item["最高"]),
        low_price=float(item["最低"]),
        close_price=float(item["收盘"]),
        volume=float(item["成交量"]),
        turnover=float(item["持仓量"]),
        open_interest=float(item["结算价"]),

        gateway_name="sqlite",
    )
    bars.append(bar)

    # do some statistics
    count += 1
    if not start:
        start = bar.datetime
end = bar.datetime
print(f'{datetime.now()} Insert Bar start: {count} from {start} - {end}')

# insert into database
database: BaseDatabase = get_database()
database.save_bar_data(bars)
print(f'{datetime.now()} Insert Bar complete: {count} from {start} - {end}')

if name == "main":

# tdx csv表头:date,time,open,high,low,close,volume,open_interest,turnover
load_tdx_csv_to_mongodb("c:\\zd_kyzq\\T0002\\export\\30#RB2310.txt", Exchange.SHFE, 'rb2310', Interval.MINUTE)
Member
avatar
加入于:
帖子: 7
声望: 0

谢谢,收藏备用!

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

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