【VeightNa】V3.0 配置MYSQL数据库


吃瓜

今天在知乎上看到vnpy.cn和vnpy.com两个网站博主之间曾经还有一些过节,搬起我的小板凳,吃瓜!
链接
在这里插入图片描述
链接
在这里插入图片描述

我倒是不关心他们之间到底有什么瓜葛,只要我能学习到知识就够了。

看到量化林有篇文章写的还是有点道理的,建议读者们读一读——不推荐采用数据库,而是通过csv文件直接进行读写
在这里插入图片描述

那么为什么我还选择去配置MYSQL呢?原因还是在于目前VeightNa的数据采集,数据存储,策略,回测整个框架比较完善,有对接币圈交易所,使用起来会更方便一些,对于入门量化,做中长线策略来说,速度倒不是我现在追求的目标,所以暂时就先用VeightNa来做量化。

最后吐槽一下,前两天安装github上一个开源项目:Freqtrade,倒腾了两天去学习了docker配置了windows、centos环境,被代理给整吐了,最后还是放弃了这个项目…

瞎逼逼结束,正文开始~~


一、安装VeightNa

本文是在windows环境中安装
Ancona+python3.9

官网给了安装文档,照着上面配置就可以了
https://www.vnpy.com/docs/cn/windows_install.html

能成功运行下面这个文件说明配置成功.值得说明的是,VeightNa在3.0版本中移除掉了很多包,需要自己手动下载,比如:vnpy_cta,vnpy_ctastrategy…vnpy.okex
在这里插入图片描述
run.py文件

from vnpy.event import EventEngine
from vnpy.trader.engine import MainEngine
from vnpy.trader.ui import MainWindow, create_qapp

from vnpy_ctp import CtpGateway
from vnpy_ctastrategy import CtaStrategyApp
from vnpy_ctabacktester import CtaBacktesterApp
from vnpy_datamanager import DataManagerApp
from vnpy_okex import OkexGateway

def main():
    """Start VeighNa Trader"""
    qapp = create_qapp()

    event_engine = EventEngine()
    main_engine = MainEngine(event_engine)
    main_engine.add_gateway(OkexGateway)
    main_engine.add_gateway(CtpGateway)
    main_engine.add_app(CtaStrategyApp)
    main_engine.add_app(CtaBacktesterApp)
    main_engine.add_app(DataManagerApp)

    main_window = MainWindow(main_engine, event_engine)
    main_window.showMaximized()

    qapp.exec()


if __name__ == "__main__":
    main()

我们这边需要下载比特币的数据到数据库中,由于国内禁止交易数字货币,所以在3.0版本中移除掉了vnpy_okex,不过我们依然开源用pip下载

pip install vnpy_okex

下载完成后,我们需要手动修改okx的API地址,之前是okex.com,现在是okx.com
在这里插入图片描述
我们还需要修改vnpy/trader/constant.py
添加OKEX=‘OKX’
原因还是因为:vnpy.com把vnpy.cn给告了,理由是后者违反国家规定——交易数字货币,所以嘛,VeightNa就不支持数字货币交易了,我们这边又把它给加上了。(咳咳,我不建议大家炒币啊,教学也只是以学习为目的。)
在这里插入图片描述

所有准备工作完成后,连接交易所
在这里插入图片描述
这里还有个小坑,手动设置代理会报错
在这里插入图片描述
在这里插入图片描述
在网上查找了相关资料,写了个测试代码,加入proxy后会报clientConnectorError错误。

import aiohttp
import asyncio

async def main():
    aiohttp.TCPConnector(verify_ssl=False)
    async with aiohttp.ClientSession() as session:
        async with session.get('https://python.org', proxy='http://127.0.0.1:12307') as response:
            print("Status:", response.status)
            print("Content-type:", response.headers['content-type'])

            html = await response.text()
            print("Body:", html[:15], "...")


loop = asyncio.get_event_loop()
loop.run_until_complete(main())

解决办法:

import aiohttp
import asyncio

asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())  # 加上这一行,解决使用代理请求 https会报错问题

async def main():
    aiohttp.TCPConnector(verify_ssl=False)
    async with aiohttp.ClientSession() as session:
        async with session.get('https://python.org', proxy='http://127.0.0.1:12307') as response:
            print("Status:", response.status)
            print("Content-type:", response.headers['content-type'])

            html = await response.text()
            print("Body:", html[:15], "...")


loop = asyncio.get_event_loop()
loop.run_until_complete(main())

发现不再报错。python异步编程目前还没有学习,这边留一个坑,后面填。

对应到工程目录,找到site-packages里面的aiohttp/connector.py,加上这一行代码asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
在这里插入图片描述
问题解决。

二、安装MYSQL

官方给了相应的安装文档https://www.vnpy.com/docs/cn/database.html

但是官方安装了mysql图形界面,我们不需要那么麻烦,请通过这篇博文配置, 这边跳过安装步骤。
在这里插入图片描述
创建vnpy数据库

 create database vnpy;

到这一步后,跟着官方文档配置VeightNa与数据库连接
在这里插入图片描述
启动run.py前还需要下载好vnpy_mysql包

pip install vnpy_mysql -i https://pypi.douban.com/simple

启动run.py
系统——连接,选择数据管理——下载数据
在这里插入图片描述
可以发现文件夹里面多了一个vnpy
在这里插入图片描述
通过mysql查询也能得到数据
在这里插入图片描述

大功告成!坑还是挺多的…python异步编程挺有意思的,后面我们专门拿出一节来介绍一下!还有mysql和mongodb还有nosql,主流数据库——关系型、非关系、时序,我们也拿出一节来专门介绍下。期待您的订阅,麻烦还是点个赞哈,您的支持就是我更新的动力!

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,以下是在 Eclipse 中配置 MySQL 数据库的步骤: 1. 下载 MySQL Connector J 在 MySQL 官网中下载 MySQL Connector J 驱动,可以在 https://dev.mysql.com/downloads/connector/j/ 上下载最新的版本。 2. 将 Connector J 添加到 Eclipse 项目中 在 Eclipse 的项目中,右键单击项目,选择“Build Path”->“Configure Build Path”,在弹出的窗口中选择“Libraries”,然后单击“Add External JARs”按钮。选择刚刚下载的 MySQL Connector J 驱动程序(mysql-connector-java-x.xx.xx.jar),然后单击“Open”按钮。 3. 创建一个数据库连接 在 Eclipse 中,打开“Database Development”视图,然后单击“New Connection”按钮。在弹出的窗口中,选择 MySQL 数据库,然后单击“Next”按钮。 4. 输入数据库连接信息 在弹出的窗口中,输入以下数据库连接信息: - Connection Name:连接的名称,例如“MySQL Connection”。 - Username:连接 MySQL 数据库时使用的用户名。 - Password:连接 MySQL 数据库时使用的密码。 - URL:连接 MySQL 数据库的 URL,例如“jdbc:mysql://localhost:3306/test”。 然后单击“Test Connection”按钮,确保连接成功。 5. 连接到数据库 在“Database Development”视图中,选择刚刚创建的连接,然后单击“Connect”按钮。在成功连接到数据库后,可以查看数据库的表和数据。 希望这些步骤可以帮助你在 Eclipse 中成功配置 MySQL 数据库

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m 宽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值