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

description

description

description

如图,查看类型时发现是一种叫sqlite的数据库,database.name和database.driver改名成mysql都没有效果,请问是为什么呢?

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

description

报错出现的位置如上

Member
avatar
加入于:
帖子: 4618
声望: 284

请问有安装vnpy_mysql吗?

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

xiaohe wrote:

请问有安装vnpy_mysql吗?
您好,有的,我是直接官网傻瓜式安装,site-packages里面也有完整的vnpy_mysql文件夹

Member
avatar
加入于:
帖子: 716
声望: 62

可以先使用图形界面启动,查看日志输出是否是使用mysql数据库,以及能否读取mysql数据库数据

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

喻天灏 wrote:

description

description

description

如图,查看类型时发现是一种叫sqlite的数据库,database.name和database.driver改名成mysql都没有效果,请问是为什么呢?

我也遇到了问题:使用jupyter lab向MySQL workbench导入CSV数据,结果发现MySQL workbench里vnpy schema下的Tables刷新不出来数据。报错和你一样。遂尝试直接用DataFrame.to_sql写入数据库,代码如下:

import pandas as pd


# 加载并用代码修改vn.py全局配置
from vnpy.trader.setting import SETTINGS

SETTINGS["database.timezone"] = "Asia/Shanghai"
SETTINGS["database.driver"] = "mysql"
SETTINGS["database.database"] = "vnpy"
SETTINGS["database.host"] = "localhost"
SETTINGS["database.port"] = 3306
SETTINGS["database.user"] = "root"
SETTINGS["database.password"] = "pfzsl123..."
#SETTINGS["database.authentication_source"] = ""


# 加载vn.py数据库组件
from vnpy.trader.database import get_database, DB_TZ, convert_tz
from vnpy.trader.object import BarData
from vnpy.trader.constant import Exchange, Interval

# 用CSV读取数据并写入数据库
from datetime import datetime
from csv import DictReader

# 准备构造检查语句、创建新的数据表
from sqlalchemy import create_engine

database_manager = get_database()

with open("rb_data.csv") as f:
    reader = DictReader(f)
    bars = []
    for row in reader:
        dt = datetime.strptime(row["datetime"], "%Y/%m/%d %H:%M")
        bar = BarData(
            symbol=row["symbol"],
            exchange=Exchange(row["exchange"]),
            datetime=convert_tz(dt),
            interval=Interval.MINUTE,
            open_price=float(row["open"]),
            high_price=float(row["high"]),
            low_price=float(row["low"]),
            close_price=float(row["close"]),
            volume=row["volume"],
            #open_interest=row["open_interest"],
            gateway_name="DB"
        )
        bars.append(bar)


engine = create_engine("mysql+pymysql://root:pfzsl123...@127.0.0.1:3306/vnpy")
data = pd.DataFrame.from_records(bar.__dict__ for bar in bars)
data.to_sql("dbbardata", engine)

运行发现数据成功导入

description

后面构造查询语句和创建新数据表的代码也正常运行

description

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

沪公网安备 31011502017034号

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