用Python的交易员 wrote:
这里显示为0,则说明你的数据库里没有数据,注意检查symbol(代码)和vt_symbol(本地代码),不要搞错了
{
"_id" : "5dfe24a23f5c2aaad41ab101",
"close_price" : "3720.0",
"vt_symbol" : "rb2001.SHFE",
"datetime" : "2019-12-20T21:01:00.000Z",
"exchange" : "SHFE",
"gatewayName" : "rb2001.SHFE",
"high_price" : "3721.0",
"interval" : "1m",
"low_price" : "3719.0",
"open_Interest" : "0",
"open_interest" : "0",
"open_price" : "3719.0",
"rawData" : "rb2001.SHFE",
"symbol" : "rb2001",
"time" : "rb2001.SHFE",
"volume" : "2520",
"date" : null
}
{
"_id" : "5dfe24a23f5c2aaad41ab103",
"close_price" : "3724.0",
"vt_symbol" : "rb2001.SHFE",
"datetime" : "2019-12-20T21:02:00.000Z",
"exchange" : "SHFE",
"gatewayName" : "rb2001.SHFE",
"high_price" : "3724.0",
"interval" : "1m",
"low_price" : "3720.0",
"open_Interest" : "0",
"open_interest" : "0",
"open_price" : "3720.0",
"rawData" : "rb2001.SHFE",
"symbol" : "rb2001",
"time" : "rb2001.SHFE",
"volume" : "1888",
"date" : null
}
{
"_id" : "5dfe24a23f5c2aaad41ab105",
"close_price" : "3724.0",
"vt_symbol" : "rb2001.SHFE",
"datetime" : "2019-12-20T21:03:00.000Z",
"exchange" : "SHFE",
"gatewayName" : "rb2001.SHFE",
"high_price" : "3725.0",
"interval" : "1m",
"low_price" : "3723.0",
"open_Interest" : "0",
"open_interest" : "0",
"open_price" : "3724.0",
"rawData" : "rb2001.SHFE",
"symbol" : "rb2001",
"time" : "rb2001.SHFE",
"volume" : "720",
"date" : null
}
{
"_id" : "5dfe24a23f5c2aaad41ab107",
"close_price" : "3724.0",
"vt_symbol" : "rb2001.SHFE",
"datetime" : "2019-12-20T21:04:00.000Z",
"exchange" : "SHFE",
"gatewayName" : "rb2001.SHFE",
"high_price" : "3725.0",
"interval" : "1m",
"low_price" : "3722.0",
"open_Interest" : "0",
"open_interest" : "0",
"open_price" : "3724.0",
"rawData" : "rb2001.SHFE",
"symbol" : "rb2001",
"time" : "rb2001.SHFE",
"volume" : "562",
"date" : null
}
{
"_id" : "5dfe24a23f5c2aaad41ab109",
"close_price" : "3722.0",
"vt_symbol" : "rb2001.SHFE",
"datetime" : "2019-12-20T21:05:00.000Z",
"exchange" : "SHFE",
"gatewayName" : "rb2001.SHFE",
"high_price" : "3724.0",
"interval" : "1m",
"low_price" : "3722.0",
"open_Interest" : "0",
"open_interest" : "0",
"open_price" : "3724.0",
"rawData" : "rb2001.SHFE",
"symbol" : "rb2001",
"time" : "rb2001.SHFE",
"volume" : "328",
"date" : null
}
{
"_id" : "5dfe24a23f5c2aaad41ab10b",
"close_price" : "3722.0",
"vt_symbol" : "rb2001.SHFE",
"datetime" : "2019-12-20T21:06:00.000Z",
"exchange" : "SHFE",
"gatewayName" : "rb2001.SHFE",
"high_price" : "3724.0",
"interval" : "1m",
"low_price" : "3721.0",
"open_Interest" : "0",
"open_interest" : "0",
"open_price" : "3723.0",
"rawData" : "rb2001.SHFE",
"symbol" : "rb2001",
"time" : "rb2001.SHFE",
"volume" : "1340",
"date" : null
}
{
"_id" : "5dfe24a23f5c2aaad41ab10d",
"close_price" : "3725.0",
"vt_symbol" : "rb2001.SHFE",
"datetime" : "2019-12-20T21:07:00.000Z",
"exchange" : "SHFE",
"gatewayName" : "rb2001.SHFE",
"high_price" : "3725.0",
"interval" : "1m",
"low_price" : "3722.0",
"open_Interest" : "0",
"open_interest" : "0",
"open_price" : "3722.0",
"rawData" : "rb2001.SHFE",
"symbol" : "rb2001",
"time" : "rb2001.SHFE",
"volume" : "364",
"date" : null
}
{
"_id" : "5dfe24a23f5c2aaad41ab10f",
"close_price" : "3725.0",
"vt_symbol" : "rb2001.SHFE",
"datetime" : "2019-12-20T21:08:00.000Z",
"exchange" : "SHFE",
"gatewayName" : "rb2001.SHFE",
"high_price" : "3725.0",
"interval" : "1m",
"low_price" : "3723.0",
"open_Interest" : "0",
"open_interest" : "0",
"open_price" : "3725.0",
"rawData" : "rb2001.SHFE",
"symbol" : "rb2001",
"time" : "rb2001.SHFE",
"volume" : "224",
"date" : null
}
{
"_id" : "5dfe24a23f5c2aaad41ab111",
"close_price" : "3723.0",
"vt_symbol" : "rb2001.SHFE",
"datetime" : "2019-12-20T21:09:00.000Z",
"exchange" : "SHFE",
"gatewayName" : "rb2001.SHFE",
"high_price" : "3725.0",
"interval" : "1m",
"low_price" : "3723.0",
"open_Interest" : "0",
"open_interest" : "0",
"open_price" : "3724.0",
"rawData" : "rb2001.SHFE",
"symbol" : "rb2001",
"time" : "rb2001.SHFE",
"volume" : "54",
"date" : null
}
上面是几条mongodb的数据 哪里有不对???
用Python的交易员 wrote:
在cmd中,运行install.bat文件即可,没有任何报错输出,就说明正常安装了。
陈总,现在手动安装最容易出现readtimeout 应该是被墙
怎么查看回测的数据有没加载成功?就像vnpy1中那样,显示加载的数据时间范围和时间数目多少
而不是就只能看到加载了百分之多少
用Python的交易员 wrote:
下载,是从RQDATA的数据服务下载到本地数据库,你本地已有的情况下就不用重复下载了
mongodb的数据是自己从其他数据源获取的数据, 这部分获取和上传数据的代码是自己参照vnpy1中的 rqdata数据服务写的
意思是直接回测是吗?
换了几个策略回测,成交记录均为0,
19:19:45 开始加载历史数据
19:19:45 加载进度: [3%]
19:19:45 加载进度: [5%]
19:19:45 加载进度: [8%]
19:19:45 加载进度:# [11%]
19:19:45 加载进度:# [14%]
19:19:45 加载进度:# [16%]
19:19:45 加载进度:# [19%]
19:19:45 加载进度:## [22%]
19:19:45 加载进度:## [25%]
19:19:45 加载进度:## [27%]
19:19:45 加载进度:### [30%]
19:19:45 加载进度:### [33%]
19:19:45 加载进度:### [36%]
19:19:45 加载进度:### [38%]
19:19:45 加载进度:#### [41%]
19:19:45 加载进度:#### [44%]
19:19:45 加载进度:#### [47%]
19:19:45 加载进度:#### [49%]
19:19:45 加载进度:##### [52%]
19:19:45 加载进度:##### [55%]
19:19:45 加载进度:##### [58%]
19:19:45 加载进度:###### [60%]
19:19:45 加载进度:###### [63%]
19:19:45 加载进度:###### [66%]
19:19:45 加载进度:###### [68%]
19:19:45 加载进度:####### [71%]
19:19:45 加载进度:####### [74%]
19:19:45 加载进度:####### [77%]
19:19:45 加载进度:####### [79%]
19:19:45 加载进度:######## [82%]
19:19:45 加载进度:######## [85%]
19:19:45 加载进度:######## [88%]
19:19:45 加载进度:######### [90%]
19:19:45 加载进度:######### [93%]
19:19:45 加载进度:######### [96%]
19:19:45 加载进度:######### [99%]
19:19:45 加载进度:########## [100%]
19:19:45 历史数据加载完成,数据量:0
19:19:45 策略初始化完成
19:19:45 开始回放历史数据
19:19:45 历史数据回放结束
19:19:45 开始计算逐日盯市盈亏
19:19:45 成交记录为空,无法计算
19:19:45 开始计算策略统计指标
同样的数据和策略,在vnpy1中回测是有成交记录的 vnpy2中就没了
10:10:08 rb2001.SHFE-1m开始下载历史数据
10:10:08 数据下载失败,无法获取rb2001.SHFE的历史数据
mongodb数据库中是有rb2001表
e:\EMQuantAPI_Python\python3\EmQuantAPI.py in Init(cls)
496 cls.InitSucceed = True
497 cls.apiDllPath = UtilAccess.GetLibraryPath()
--> 498 cls.quantLib = CDLL(cls.apiDllPath)
499 cls.AsynDataFunc = cls.Type_AsynDataFunc(cls.__HandleAsynData)
500
d:\Anaconda3\lib\ctypes__init.py in init__(self, name, mode, handle, use_errno, use_last_error)
354
355 if handle is None:
--> 356 self._handle = _dlopen(self._name, mode)
357 else:
358 self._handle = handle
OSError: [WinError 126] 找不到指定的模块。
这是vnpy设置数据库为mongodb,下载数据时出现的错误:
Traceback (most recent call last):
File "d:\Anaconda3\lib\site-packages\vnpy\app\cta_backtester\engine.py", line 384, in run_downloading
database_manager.save_bar_data(data)
File "d:\Anaconda3\lib\site-packages\vnpy\trader\database\database_mongo.py", line 308, in save_bar_data
DbBarData.objects(
File "d:\Anaconda3\lib\site-packages\mongoengine\queryset\manager.py", line 37, in get
queryset = queryset_class(owner, owner._get_collection())
File "d:\Anaconda3\lib\site-packages\mongoengine\document.py", line 207, in _get_collection
db.client.is_primary:
File "d:\Anaconda3\lib\site-packages\pymongo\mongo_client.py", line 1005, in is_primary
return self._server_property('is_writable')
File "d:\Anaconda3\lib\site-packages\pymongo\mongo_client.py", line 830, in _server_property
writable_server_selector)
File "d:\Anaconda3\lib\site-packages\pymongo\topology.py", line 235, in select_server
address))
File "d:\Anaconda3\lib\site-packages\pymongo\topology.py", line 193, in select_servers
selector, server_timeout, address)
File "d:\Anaconda3\lib\site-packages\pymongo\topology.py", line 209, in _select_servers_loop
self._error_message(selector))
pymongo.errors.ServerSelectionTimeoutError: localhost:27017: [WinError 10061] 由于目标计算机积极拒绝,无法连接。
Exception in thread Thread-88:
Traceback (most recent call last):
File "d:\Anaconda3\lib\threading.py", line 917, in _bootstrap_inner
self.run()
File "d:\Anaconda3\lib\threading.py", line 865, in run
self._target(*self._args, **self._kwargs)
File "d:\Anaconda3\lib\site-packages\vnpy\app\cta_backtester\engine.py", line 172, in run_backtesting
engine.run_backtesting()
File "d:\Anaconda3\lib\site-packages\vnpy\app\cta_strategy\backtesting.py", line 293, in run_backtesting
func(data)
File "d:\Anaconda3\lib\site-packages\vnpy\app\cta_strategy\backtesting.py", line 721, in new_bar
self.cross_stop_order()
File "d:\Anaconda3\lib\site-packages\vnpy\app\cta_strategy\backtesting.py", line 888, in cross_stop_order
self.active_stop_orders.pop(stop_order.stop_orderid)
KeyError: 'STOP.32735
Connection failed.
SERVER [localhost:27017] (Type: UNKNOWN)
|_/ Connection error (MongoSocketOpenException): Exception opening socket
|__/ Socket error: Connection refused: connect
Details:
Timed out after 5000 ms while waiting to connect. Client view of cluster state is {type=UNKNOWN, servers=[{address=localhost:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketOpenException: Exception opening socket}, caused by {java.net.ConnectException: Connection refused: connect}}]
用Python的交易员 wrote:
用Anaconda手动安装需要更多经验,如果初学者我们不建议浪费时间自己折腾
用Anaconda3_2018_12的版本安装 没有激活不成功的问题除夕
双击安装vnpy时需要科学上网 算是安装流程走完
但是有些库出现错误没有安装成功 原因都是time out,最后是缺少什么就pip install安装 现在算是手动安装成功 用了几天还没出现问题
str_pythin wrote:
用Python的交易员 wrote:
如果用的VNStudio,那么直接删掉C:\vnstudio目录就行,其他环境也可以类似处理
安装Anaconda3后 python3有如下warning 根据https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#activating-an-environment这个 cmd输入python 还是这个问题
Python 3.7.4 (default, Aug 9 2019, 18:34:13) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32Warning:
This Python interpreter is in a conda environment, but the environment has
not been activated. Libraries may fail to load. To activate this environment
please see https://conda.io/activation安装vnpy2时,导致python版本问题不对 安装不成功——rqdatac安装不成功(makers python version don't match the environment)
上传不了图
用Python的交易员 wrote:
如果用的VNStudio,那么直接删掉C:\vnstudio目录就行,其他环境也可以类似处理
安装Anaconda3后 python3有如下warning 根据https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#activating-an-environment这个 cmd输入python 还是这个问题
Python 3.7.4 (default, Aug 9 2019, 18:34:13) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32
Warning:
This Python interpreter is in a conda environment, but the environment has
not been activated. Libraries may fail to load. To activate this environment
please see https://conda.io/activation
安装vnpy2时,导致python版本问题不对 安装不成功——rqdatac安装不成功(makers python version don't match the environment)
见标题
彻底删除后 在重新安装
str_pythin wrote:
C:\Users\Administrator\Downloads\vnpy208\examples\vn_trader> python run.py
Traceback (most recent call last):
File "run.py", line 36, in <module>
from vnpy.app.cta_strategy import CtaStrategyApp
File "C:\Miniconda3\lib\site-packages\vnpy\app\cta_strategy__init.py", line 9, in <module>
from .engine import CtaEngine
File "C:\Miniconda3\lib\site-packages\vnpy\app\cta_strategy\engine.py", line 39, in <module>
from vnpy.trader.database import database_manager
File "C:\Miniconda3\lib\site-packages\vnpy\trader\database\init__.py", line 12, in <module>
database_manager: "BaseDatabaseManager" = init(settings=settings)
File "C:\Miniconda3\lib\site-packages\vnpy\trader\database\initialize.py", line 8, in init
return init_nosql(driver=driver, settings=settings)
File "C:\Miniconda3\lib\site-packages\vnpy\trader\database\initialize.py", line 23, in init_nosql
_database_manager = init(driver, settings=settings)
File "C:\Miniconda3\lib\site-packages\vnpy\trader\database\database_mongo.py", line 31, in init
authentication_source=authentication_source,
File "C:\Miniconda3\lib\site-packages\mongoengine\connection.py", line 376, in connect
register_connection(alias, db, kwargs)
File "C:\Miniconda3\lib\site-packages\mongoengine\connection.py", line 193, in register_connection kwargs)
File "C:\Miniconda3\lib\site-packages\mongoengine\connection.py", line 86, in _get_connection_settings
_check_db_name(conn_settings['name'])
File "C:\Miniconda3\lib\site-packages\mongoengine\connection.py", line 44, in _check_db_name
_check_name(name)
File "C:\Miniconda3\lib\site-packages\pymongo\database.py", line 52, in _check_name
"character %r" % invalid_char)
pymongo.errors.InvalidName: database names cannot contain the character '.'
PS C:\Users\Administrator\Downloads\vnpy208\examples\vn_trader>
删除.vntrader文件夹解决
C:\Users\Administrator\Downloads\vnpy208\examples\vn_trader> python run.py
Traceback (most recent call last):
File "run.py", line 36, in <module>
from vnpy.app.cta_strategy import CtaStrategyApp
File "C:\Miniconda3\lib\site-packages\vnpy\app\cta_strategy__init.py", line 9, in <module>
from .engine import CtaEngine
File "C:\Miniconda3\lib\site-packages\vnpy\app\cta_strategy\engine.py", line 39, in <module>
from vnpy.trader.database import database_manager
File "C:\Miniconda3\lib\site-packages\vnpy\trader\database\init__.py", line 12, in <module>
database_manager: "BaseDatabaseManager" = init(settings=settings)
File "C:\Miniconda3\lib\site-packages\vnpy\trader\database\initialize.py", line 8, in init
return init_nosql(driver=driver, settings=settings)
File "C:\Miniconda3\lib\site-packages\vnpy\trader\database\initialize.py", line 23, in init_nosql
_database_manager = init(driver, settings=settings)
File "C:\Miniconda3\lib\site-packages\vnpy\trader\database\database_mongo.py", line 31, in init
authentication_source=authentication_source,
File "C:\Miniconda3\lib\site-packages\mongoengine\connection.py", line 376, in connect
register_connection(alias, db, kwargs)
File "C:\Miniconda3\lib\site-packages\mongoengine\connection.py", line 193, in register_connection
kwargs)
File "C:\Miniconda3\lib\site-packages\mongoengine\connection.py", line 86, in _get_connection_settings
_check_db_name(conn_settings['name'])
File "C:\Miniconda3\lib\site-packages\mongoengine\connection.py", line 44, in _check_db_name
_check_name(name)
File "C:\Miniconda3\lib\site-packages\pymongo\database.py", line 52, in _check_name
"character %r" % invalid_char)
pymongo.errors.InvalidName: database names cannot contain the character '.'
PS C:\Users\Administrator\Downloads\vnpy208\examples\vn_trader>