yutiansut / QUANTAXIS

QUANTAXIS 支持任务调度 分布式部署的 股票/期货/期权 数据/回测/模拟/交易/可视化/多账户 纯本地量化解决方案
https://yutiansut.github.io/QUANTAXIS/
MIT License
8.2k stars 2.96k forks source link

QUANTAXIS Windows10 非Docker版配置遇到的问题 #1411

Open esun6060996 opened 4 years ago

esun6060996 commented 4 years ago

QUANTAXIS Windows10 非Docker版配置遇到的问题

参考:QA回测-模拟配置流程说明文档(Window) #1335

1.安装环境

操作系统:windows10 python:anaconda,python3.6 x86 默认安装路径:d:\quant

2.安装过程中常见问题的处理

2.1. 在网络环境不是太稳定的情况下,临时使用清华源,pip安装中加入参数-i https://pypi.tuna.tsinghua.edu.cn/simple
2.2. 下载超时的处理方法:复制超时的包链接,用迅雷下载
    2.2.1. 如果下载的包的扩展名是.whl,下载完成后,运行:pip install xxx.whl
    2.2.2. 如果下载的包扩展名是.tar.gz的话,先解压后,进入解压后的目录,运行:python setup.py install
    2.2.3. 有些包用pip无法安装,如talib,可以直接到 https://www.lfd.uci.edu/~gohlke/pythonlibs/去找已经编译完成的包,要注意的是区分Python版本和windows版本
2.3. 安装QUANTAXIS前,需要安装mongodb
2.4. 不仅如此,git、visual studio code也应该安装

3.安装quantaxis


d:\quant>git clone https://github.com/quantaxis/quantaxis --depth 1
d:\quant>pip install -e .

命令行运行:
D:\quant\QUANTAXIS> quantaxis
查看版本
QUANTAXIS> version
QUANTAXIS>> 1.7.2
下载数据到时本地
QUANTAXIS> save X 

3.1.几个特殊包的安装

talib:
从这个网站去下载.whl文件然后安装:https://www.lfd.uci.edu/~gohlke/pythonlibs/

3.2.pyecharts只能使用0.5.11版本

d:\quant\quantaxis>pip uninstall pyecharts
d:\quant\quantaxis>pip install pyecharts==0.5.11

3.3.pytdx错误的处理

错误的原因是安装tusharer后会自动安装pytdx,但tusharer的pytdx与quantaxis版本不一致。
d:\quant\quantaxis>pip uninstall pytdx
d:\quant\quantaxis>pip install pytdx

3.4.更新quantaxis

d:\quant\quantaxis>git pull

4.安装quantaxis_webserver


D:\quant> git clone https://github.com/yutiansut/QUANTAXIS_WEBSERVER.git
D:\quant> cd QUANTAXIS_WEBSERVER
D:\quant\QUANTAXIS_WEBSERVER> pip install -e .

4.1 启动Web后台服务quantaxis_webserver


d:\quant>quantaxis_webserver --port=8010
或者:
d:\quant>quantaxis_webserver
如果出现以下错误:
OSError: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试。
说明8010端口被占用,查看端口被谁占用使用下列两条命令:
C:\Users\Administrator>netstat -ano|findstr 8010
TCP    0.0.0.0:8010           0.0.0.0:0              LISTENING       6344
TCP    [::]:8010              [::]:0                 LISTENING       6344
C:\Users\Administrator>tasklist |findstr 6344
com.docker.backend.exe        6344 Services                   0     11,608 K
一般是被Docker占用,停止就是了。

正常启动:
D:\quant\QUANTAXIS_WEBSERVER> quantaxis_webserver
========WELCOME QUANTAXIS_WEBSERVER============
QUANTAXIS VERSION: 1.7.2
QUANTAXIS WEBSERVER is Listening on: http://localhost:8010
请打开浏览器/使用JavaScript等来使用该后台, 并且不要关闭当前命令行窗口

后台服务启动后,用浏览器查看http://localhost:8010/,结果为:


{"status": 200, "message": "This is a welcome page for quantaxis backend", "github_page": "https://github.com/yutiansut/QUANTAXIS_WEBSERVER/blob/master/backendapi.md", "url": ["/", "/codelist", "/marketdata/future/code", "/marketdata/stock/day", "/marketdata/stock/min", "/marketdata/fetcher", "/marketdata/stock/block", "/marketdata/stock/price", "/marketdata/stock/code", "/user/signin", "/user/signup", "/user", "/portfolio", "/account", "/user/blocksetting", "/strategy/content", "/backtest/content", "/trade", "/tradeinfo", "/realtime", "/realtime/stock", "/realtime/future", "/realtime/price", "/simulate", "/monitor", "/risk", "/command/run", "/command/runws", "/command/runbacktest", "/command/jobmapper", "/command/filemapper", "/file"]}

浏览:http://localhost:8010/codelist,结果为

{"result": ["000001/\u5e73\u5b89\u94f6\u884c/stock_cn", "000002/\u4e07 \u79d1\uff21/stock_cn",...]} 

4.2 Web前端QACommunityV0.4

从群文件中下载QACommunityV0.4
web后台服务启动后直接浏览D:\quant\QACommunity\index.htm
QUANTAXIS VERSION: 1.7.2
QUANTAXIS WEBSERVER is Listening on: http://localhost:8010
请打开浏览器/使用JavaScript等来使用该后台, 并且不要关闭当前命令行窗口
QUANTAXIS>> 404 GET /favicon.ico (127.0.0.1) 20.00ms
QUANTAXIS>> Selecting the Best Server IP of TDX
USING DEFAULT STOCK IP
USING DEFAULT FUTURE IP
QUANTAXIS>> === The BEST SERVER ===
stock_ip 180.153.39.51 future_ip 119.97.185.5

5.安装quantaxis_pubsub

D:\quant> git clone https://github.com/QUANTAXIS/QAPUBSUB.git
D:\quant> cd QAPUBSUB
D:\quant\QAPUBSUB> pip install -e .

6. 安装quantaxis-randomprice

D:\quant> git clone https://github.com/yutiansut/QUANTAXIS_RandomPrice.git

7. 安装QUANTAXIS_RealtimeCollector

D:\quant> git clone https://github.com/yutiansut/QUANTAXIS_RealtimeCollector.git
D:\quant> cd QUANTAXIS_RealtimeCollector
D:\quant\QUANTAXIS_RealtimeCollector> pip install -e .

8. 安装QACTPBeeBroker

D:\quant> pip install QACTPBeeBroker -i https://pypi.tuna.tsinghua.edu.cn/simple

安装过程有报错: ERROR: ctpbee 0.31.2 has requirement flask>=1.1.1, but you'll have flask 1.0.2 which is incompatib 估计是我的机子上已经安装过flask,版本比较低。暂时忽略此错误

9. 安装QIFIAccount

D:\quant> git clone https://github.com/yutiansut/qifiaccount.git
D:\quant> cd qifiaccount
D:\quant\qifiaccount> pip install -e .

10.安装QASTRATEGY

D:\quant> git clone https://github.com/yutiansut/qastrategy.git
D:\quant> cd qastrategy
D:\quant\qastrategy> pip install -e .

11.搭建RabbitMQ环境(Windows)

(参考)[https://blog.csdn.net/hellozpc/article/details/81436980]

11.1.下载RabbitMQ:

https://www.rabbitmq.com/download.html

11.2.下载对应版本的Erlang

我下载的RabbitMQ是rabbitmq-server-3.8.2.exe,从这个网站(https://www.rabbitmq.com/which-erlang.html)查一下对应的Erlang版本是213-22.x 下载地址:https://www.erlang.org/downloads 我选择下载22.1版本。

11.3.先安装Erlang,再安装RabbitMQ

安装完成后在RabbitMQ命令行窗口中执行命令: rabbitmq-plugins enable rabbitmq_management

这样就启动了管理工具,可以试一下命令: 停止:net stop RabbitMQ 启动:net start RabbitMQ

11.4.在浏览器中输入地址查看:http://127.0.0.1:15672/

使用默认账号登录:guest/ guest

11.5.添加用户并对权限进一步设置,同样,RabbitMQ命令行窗口中执行命令:

rabbitmqctl add_user admin admin rabbitmqctl set_user_tags admin administrator rabbitmqctl set_permissions -p "/" admin '.' '.' '.*'

安装完成后,命令行启动QARC_Stock时,报错: raise self._closing_reason #pylint:disable=E0702 pika.exception.ChannelClosedByBroker:(403,"ACCESS_REFUSED" - access to exchange 'QARealtime_Market' in vhost '/' refused for user 'admin'")

进入RabbitMQ管理界面,localhost:15672,查看,用户admin已经添加,点击进入admin界面,点击下面的“Set permission”后解决问题。

现在命令行运行QARC_Stock有数据。 PS D:\quant> QARC_Stock 2020-01-25 14:33:26.416162 2020-01-25 14:33:27.425277 2020-01-25 14:33:28.434470 2020-01-25 14:33:29.438585 2020-01-25 14:33:30.447074

RabbitMQ中Exchange: stocktransaction有数据。

11. 安装QATrader

pip install QATRADER

问题四: 命令行启动:qatraderserver 没任何反映。

12. 安装QA_AtBroker

D:\quant> git clone https://github.com/QUANTAXIS/QA_AtBroker.git

首先复制 bin文件夹到 ~/.quantaxis 下 cd到 qa_ctp 目录 python setup.py install)

D:\quant\QA_AtBroker\qa_ctp> python setup.py install

13. 我的pip list

QACTPBeeBroker 1.3 qaenv 0.0.2 qarealtime-collector 0.0.9 d:\quant\quantaxis_realtimecollector QAStrategy 0.0.16 d:\quant\qastrategy QATRADER 1.4 qifiaccount 1.8 d:\quant\qifiaccount QtAwesome 0.4.4 qtconsole 4.3.1 QtPy 1.4.1 quantaxis 1.7.2 quantaxis-ctp 1.0 quantaxis-otgbroker 1.9.2 quantaxis-pubsub 1.7.1 d:\quant\qapubsub quantaxis-randomprice 1.1 d:\quant\quantaxis_randomprice quantaxis-run 1.9 d:\quant\quantaxis_run quantaxis-webserver 1.7.7 d:\quant\quantaxis_webserver queuelib 1.5.0 redis 3.3.8 requests 2.18.4 retrying 1.3.3 rope 0.10.7 rqalpha 3.4.2 rqrisk 0.0.11

14. 问题(我仅需要股票,不用期货)

QUANTAXIS VERSION: 1.7.2
QUANTAXIS WEBSERVER is Listening on: http://localhost:8010
请打开浏览器/使用JavaScript等来使用该后台, 并且不要关闭当前命令行窗口
QUANTAXIS>> 404 GET /favicon.ico (127.0.0.1) 20.00ms
QUANTAXIS>> Selecting the Best Server IP of TDX
USING DEFAULT STOCK IP
USING DEFAULT FUTURE IP
QUANTAXIS>> === The BEST SERVER ===
stock_ip 180.153.39.51 future_ip 119.97.185.5
## 您的系统信息(包括系统版本,系统架构(32/64),内存大小等等)

CPU E3 3210 V3 16G RAM


## 您的系统环境是什么?
QUANTAXIS VERSION: 1.7.2
QUANTAXIS WEBSERVER is Listening on: http://localhost:8010
请打开浏览器/使用JavaScript等来使用该后台, 并且不要关闭当前命令行窗口
QUANTAXIS>> 404 GET /favicon.ico (127.0.0.1) 20.00ms
QUANTAXIS>> Selecting the Best Server IP of TDX
USING DEFAULT STOCK IP
USING DEFAULT FUTURE IP
QUANTAXIS>> === The BEST SERVER ===
stock_ip 180.153.39.51 future_ip 119.97.185.5
## 感谢您的反馈 如有意见和建议,请在此说明:
## 您的联系方式(QQ/EMAIL)

504501998



THANKS
by yutiansut
2017.12
monner commented 4 years ago

如果只是研究想股票策略编写/回测/模拟,真的需要安装这么多包嘛?

yutiansut commented 4 years ago

如果只是研究想股票策略编写/回测/模拟,真的需要安装这么多包嘛?

这个看你自己啦 docker已经把这些都打包掉了

esun6060996 commented 4 years ago

启动 QACommunity客户端后一直显示“正在读取数据”,QUANTAXIS_WEBSERVER\QAWebServer\quotationhandles.py 249行报错,'DataFrame' object has no attribute 'to_numpy',原来是我的Pandas版本太低,从0.23.0,升级到0.24.0,问题解决。建议requirements.txt中的pandas版本调整成:pandas>=0.24.0,<0.25.0 error

esun6060996 commented 4 years ago

QUANTAXIS键盘精灵,输入股票代码没有相应的股票列出也搞定了,原来不需要直接浏览QACommunityV0.4中的index.htm,地址用localhost:81就OK了。