vn.py量化社区
By Traders, For Traders.
Member
加入于:
帖子: 18
声望: 0

搞了一天总算不报错了,但是运行load_datab并没有读到数据。
完全是按照example运行的。

这是代码

#

engine = BacktestingEngine()
engine.set_parameters(
vt_symbol="IF88.CFFEX",
interval="1m",
start=datetime(2019, 1, 1),
end=datetime(2019, 4, 30),
rate=0.3/10000,
slippage=0.2,
size=300,
pricetick=0.2,
capital=1_000_000,
)
engine.add_strategy(AtrRsiStrategy, {})
engine.load_data()
engine.run_backtesting()
df = engine.calculate_result()
engine.calculate_statistics()
engine.show_chart()

下面是Log:

#

2019-06-23 18:56:12.221356 开始加载历史数据
2019-06-23 18:56:12.224363 加载进度:## [25%]
2019-06-23 18:56:12.226394 加载进度:##### [50%]
2019-06-23 18:56:12.229377 加载进度:####### [76%]
2019-06-23 18:56:12.231895 加载进度:########## [100%]
2019-06-23 18:56:12.232887 历史数据加载完成,数据量:0
2019-06-23 18:56:12.233889 策略初始化完成
2019-06-23 18:56:12.234390 开始回放历史数据
2019-06-23 18:56:12.235393 历史数据回放结束
2019-06-23 18:56:12.236396 开始计算逐日盯市盈亏
2019-06-23 18:56:12.236897 成交记录为空,无法计算
2019-06-23 18:56:12.238403 开始计算策略统计指标
2019-06-23 18:56:12.239905 ------------------------------
2019-06-23 18:56:12.241910 首个交易日:
2019-06-23 18:56:12.243414 最后交易日:
2019-06-23 18:56:12.245921 总交易日: 0
2019-06-23 18:56:12.249429 盈利交易日: 0
2019-06-23 18:56:12.250934 亏损交易日: 0
2019-06-23 18:56:12.251938 起始资金: 1,000,000.00
2019-06-23 18:56:12.252437 结束资金: 0.00
2019-06-23 18:56:12.253440 总收益率: 0.00%
2019-06-23 18:56:12.254443 年化收益: 0.00%
2019-06-23 18:56:12.255964 最大回撤: 0.00
2019-06-23 18:56:12.259457 百分比最大回撤: 0.00%
2019-06-23 18:56:12.261460 总盈亏: 0.00
2019-06-23 18:56:12.263468 总手续费: 0.00
2019-06-23 18:56:12.265473 总滑点: 0.00
2019-06-23 18:56:12.266475 总成交金额: 0.00
2019-06-23 18:56:12.266977 总成交笔数: 0
2019-06-23 18:56:12.267478 日均盈亏: 0.00
2019-06-23 18:56:12.267979 日均手续费: 0.00
2019-06-23 18:56:12.268982 日均滑点: 0.00
2019-06-23 18:56:12.269985 日均成交金额: 0.00
2019-06-23 18:56:12.270486 日均成交笔数: 0
2019-06-23 18:56:12.271490 日均收益率: 0.00%
2019-06-23 18:56:12.275019 收益标准差: 0.00%
2019-06-23 18:56:12.276504 Sharpe Ratio: 0.00
2019-06-23 18:56:12.277530 收益回撤比: 0.00

Administrator
avatar
加入于:
帖子: 186
声望: 24

首先需要确保有数据,然后load_data才能载入数据

Member
加入于:
帖子: 18
声望: 0

了解,是先要从rq下载数据吧。
我写了下面的代码想要从rq获得数据。但是显示rqdata_client是init成功了,但是后续数据还是获取不到,
能指点下是什么原因么。

from vnpy.trader.object import HistoryRequest
from vnpy.trader.rqdata import rqdata_client
from vnpy.trader.database import database_manager
from vnpy.trader.utility import extract_vt_symbol

symbol, exchange = extract_vt_symbol("IF88.CFFEX")

req = HistoryRequest(
    symbol=symbol,
    exchange=exchange,
    interval='1m',
    start=datetime(2019, 1, 1),
    end=datetime(2019, 4, 30)
)
result = rqdata_client.init()
print(result)
data = rqdata_client.query_history(req)

if data:
    database_manager.save_bar_data(data)
    self.write_log(f"{vt_symbol}-{interval}历史数据下载完成")
Administrator
avatar
加入于:
帖子: 2152
声望: 99

请尝试使用图形界面的CtaBacktester来下载吧

Member
加入于:
帖子: 18
声望: 0

图形界面出问题了才自己搞的,图形界面的报错有日志可以看么?我找不到问题,只好自己看代码。

另外图形界面和代码不知道是什么关系。我在git上下载了代码,然后又安装了vnstation,这两个是什么关系呢。vnstation是自己开发时的一个辅助么。

Administrator
avatar
加入于:
帖子: 186
声望: 24

vnstation相当于vnpy的图像化显示工具。
建议使用脚本模式运行vntrader,如python run.py,这样打开GUI界面同时,也可以查看cmd上相关的信息。
run.py文件现在github master分支的example文件里面,可以直接拷贝然后运行

Member
加入于:
帖子: 18
声望: 0

谢谢。我用这个方法下载数据试了一下,感觉图形界面下载数据这个功能不太好用。报错 peewee.IntegrityError: NOT NULL constraint failed: dbbardata.vt_symbol,但是代码是填了的。cmd抛出异常之后,界面上这个下载数据按钮就不管用了,总是报有任务正在处理中,应该是代码对异常没有处理好。
有其他方法可以下载数据么,比如我前面发的那个代码为什么拿不到数据?

Member
加入于:
帖子: 18
声望: 0

看别人的提问解决了,谢谢两位

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