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

RT。显示在加载数据,但最终是 空 的。 好奇怪

2020-04-14 21:23:26.781135 开始加载历史数据
2020-04-14 21:23:26.781135 加载进度: [2%]
2020-04-14 21:23:26.781135 加载进度: [4%]
2020-04-14 21:23:26.781135 加载进度: [6%]
2020-04-14 21:23:26.781135 加载进度: [8%]
2020-04-14 21:23:26.781135 加载进度: [10%]
2020-04-14 21:23:26.781135 加载进度:# [12%]
2020-04-14 21:23:26.781135 加载进度:# [13%]
2020-04-14 21:23:26.781135 加载进度:# [15%]
2020-04-14 21:23:26.781135 加载进度:# [17%]
2020-04-14 21:23:26.781135 加载进度:# [19%]
2020-04-14 21:23:26.781135 加载进度:## [21%]
2020-04-14 21:23:26.782105 加载进度:## [23%]
2020-04-14 21:23:26.782105 加载进度:## [25%]
2020-04-14 21:23:26.782105 加载进度:## [27%]
2020-04-14 21:23:26.782105 加载进度:## [29%]
2020-04-14 21:23:26.782105 加载进度:### [31%]
2020-04-14 21:23:26.782105 加载进度:### [33%]
2020-04-14 21:23:26.782105 加载进度:### [35%]
2020-04-14 21:23:26.782105 加载进度:### [37%]
2020-04-14 21:23:26.782105 加载进度:### [38%]
2020-04-14 21:23:26.782105 加载进度:#### [40%]
2020-04-14 21:23:26.782105 加载进度:#### [42%]
2020-04-14 21:23:26.782105 加载进度:#### [44%]
2020-04-14 21:23:26.782105 加载进度:#### [46%]
2020-04-14 21:23:26.782105 加载进度:#### [48%]
2020-04-14 21:23:26.782105 加载进度:#### [50%]
2020-04-14 21:23:26.782105 加载进度:##### [52%]
2020-04-14 21:23:26.782105 加载进度:##### [54%]
2020-04-14 21:23:26.782105 加载进度:##### [56%]
2020-04-14 21:23:26.782105 加载进度:##### [58%]
2020-04-14 21:23:26.782105 加载进度:##### [60%]
2020-04-14 21:23:26.782105 加载进度:###### [61%]
2020-04-14 21:23:26.782105 加载进度:###### [63%]
2020-04-14 21:23:26.782105 加载进度:###### [65%]
2020-04-14 21:23:26.782105 加载进度:###### [67%]
2020-04-14 21:23:26.782105 加载进度:###### [69%]
2020-04-14 21:23:26.782105 加载进度:####### [71%]
2020-04-14 21:23:26.782105 加载进度:####### [73%]
2020-04-14 21:23:26.782105 加载进度:####### [75%]
2020-04-14 21:23:26.782105 加载进度:####### [77%]
2020-04-14 21:23:26.782105 加载进度:####### [79%]
2020-04-14 21:23:26.783187 加载进度:######## [81%]
2020-04-14 21:23:26.783187 加载进度:######## [83%]
2020-04-14 21:23:26.783187 加载进度:######## [85%]
2020-04-14 21:23:26.783187 加载进度:######## [86%]
2020-04-14 21:23:26.783187 加载进度:######## [88%]
2020-04-14 21:23:26.783187 加载进度:######### [90%]
2020-04-14 21:23:26.783187 加载进度:######### [92%]
2020-04-14 21:23:26.783187 加载进度:######### [94%]
2020-04-14 21:23:26.783187 加载进度:######### [96%]
2020-04-14 21:23:26.783187 加载进度:######### [98%]
2020-04-14 21:23:26.783187 加载进度:######### [100%]
2020-04-14 21:23:26.783187 加载进度:########## [100%]
2020-04-14 21:23:26.783187 历史数据加载完成,数据量:0
2020-04-14 21:23:26.783187 策略初始化完成
2020-04-14 21:23:26.783187 开始回放历史数据
2020-04-14 21:23:26.783187 历史数据回放结束
2020-04-14 21:23:26.783187 开始计算逐日盯市盈亏
2020-04-14 21:23:26.788089 成交记录为空,无法计算
2020-04-14 21:23:26.788089 开始计算策略统计指标
2020-04-14 21:23:26.788089 ------------------------------
2020-04-14 21:23:26.788089 首个交易日:
2020-04-14 21:23:26.788089 最后交易日:
2020-04-14 21:23:26.788089 总交易日: 0
2020-04-14 21:23:26.788089 盈利交易日: 0
2020-04-14 21:23:26.788089 亏损交易日: 0
2020-04-14 21:23:26.788089 起始资金: 1,000,000.00
2020-04-14 21:23:26.788089 结束资金: 0.00
2020-04-14 21:23:26.788089 总收益率: 0.00%
2020-04-14 21:23:26.788089 年化收益: 0.00%
2020-04-14 21:23:26.788089 最大回撤: 0.00
2020-04-14 21:23:26.788089 百分比最大回撤: 0.00%
2020-04-14 21:23:26.788089 最长回撤天数: 0
2020-04-14 21:23:26.788089 总盈亏: 0.00
2020-04-14 21:23:26.788089 总手续费: 0.00
2020-04-14 21:23:26.788089 总滑点: 0.00
2020-04-14 21:23:26.788089 总成交金额: 0.00
2020-04-14 21:23:26.788089 总成交笔数: 0
2020-04-14 21:23:26.788089 日均盈亏: 0.00
2020-04-14 21:23:26.788089 日均手续费: 0.00
2020-04-14 21:23:26.788089 日均滑点: 0.00
2020-04-14 21:23:26.788089 日均成交金额: 0.00
2020-04-14 21:23:26.788089 日均成交笔数: 0
2020-04-14 21:23:26.788089 日均收益率: 0.00%
2020-04-14 21:23:26.788089 收益标准差: 0.00%
2020-04-14 21:23:26.788089 Sharpe Ratio: 0.00
2020-04-14 21:23:26.788089 收益回撤比: 0.00
2020-04-14 21:23:26.789086 策略统计指标计算完成

前面的设置应该没错

%%

engine = BacktestingEngine()
engine.set_parameters(
vt_symbol="rb88.SHFE",
interval="1m",
start=datetime(2016, 1, 1),
end=datetime(2020, 4, 10),
rate=1.0/10000,
slippage=1,
size=1,
pricetick=0,
capital=1_000_000,
)

engine.add_strategy(AtrRsiStrategy, {})

description

Administrator
avatar
加入于:
帖子: 3913
声望: 209

检查你是否创建过.vntrader目录,导致历史数据存到某个特定目录下的数据库文件里去了,而Jupyter是运行在默认用户目录,就读不到了。

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

好像是这样的原因,

我把数据库文件复制到用户目录下的.vntrader下,有一次是成功的。

不过现在运行也是空的。

既然json文件里可以记录 运行目录 的设定,为什么不让vnpy根据这个设定却寻找目录呢?

Administrator
avatar
加入于:
帖子: 3913
声望: 209

运行目录的查找,基于当前启动目录下是否存在.vntrader文件夹,如果有就用当前启动目录为运行目录,否则用系统用户目录。

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

用Python的交易员 wrote:

运行目录的查找,基于当前启动目录下是否存在.vntrader文件夹,如果有就用当前启动目录为运行目录,否则用系统用户目录。

我将ipynb文件放在 vnpy运行目录下(与实际的.vntrader并列),这样数据是可以正常载入了,但策略回测过程出现意外,试了好几个策略,在vnpy都可以正常运行的,但在notebook提示如下错误。

2020-04-17 13:56:58.837202  历史数据加载完成,数据量:348976
2020-04-17 13:56:58.848174  策略初始化完成
2020-04-17 13:56:58.848174  开始回放历史数据
2020-04-17 13:56:58.852153  触发异常,回测终止
2020-04-17 13:56:58.854149  Traceback (most recent call last):
  File "d:\vnstudio\lib\site-packages\vnpy\app\cta_strategy\backtesting.py", line 304, in run_backtesting
    func(data)
  File "d:\vnstudio\lib\site-packages\vnpy\app\cta_strategy\backtesting.py", line 750, in new_bar
    self.strategy.on_bar(bar)
  File "d:\vnstudio\lib\site-packages\vnpy\app\cta_strategy\strategies\boll_channel_strategy.py", line 76, in on_bar
    self.bg.update_bar(bar)
  File "d:\vnstudio\lib\site-packages\vnpy\trader\utility.py", line 282, in update_bar
    self.on_window_bar(self.window_bar)
  File "d:\vnstudio\lib\site-packages\vnpy\app\cta_strategy\strategies\boll_channel_strategy.py", line 96, in on_15min_bar
    self.buy(self.boll_up, self.fixed_size, True)
  File "d:\vnstudio\lib\site-packages\vnpy\app\cta_strategy\template.py", line 155, in buy
    return self.send_order(Direction.LONG, Offset.OPEN, price, volume, stop, lock)
  File "d:\vnstudio\lib\site-packages\vnpy\app\cta_strategy\template.py", line 189, in send_order
    self, direction, offset, price, volume, stop, lock
  File "d:\vnstudio\lib\site-packages\vnpy\app\cta_strategy\backtesting.py", line 954, in send_order
    price = round_to(price, self.pricetick)
  File "d:\vnstudio\lib\site-packages\vnpy\trader\utility.py", line 126, in round_to
    rounded = float(int(round(value / target)) * target)
decimal.DivisionByZero: [<class 'decimal.DivisionByZero'>]
Administrator
avatar
加入于:
帖子: 3913
声望: 209

你的pricetick应该错误设置为0了,必须是正数

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

感谢老大指点,的确是这样的原因!
再次拜谢。

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