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

盈亏统计在update_postion函数里面,其他在calculate_statistics里面,还有一些改动大家自己看吧。
PS:backtesting里面的路径大家看着改

2020.03.07增加月度盈亏统计和omega_ratio指标

Member
avatar
加入于:
帖子: 189
声望: 40

链接:https://pan.baidu.com/s/1jkJ0m9HvNp04Ta-OVPPjWw
提取码:mhxi

Member
avatar
加入于:
帖子: 189
声望: 40

调用例子
description

description

Member
avatar
加入于:
帖子: 189
声望: 40

回测结果

description

Member
avatar
加入于:
帖子: 186
声望: 23

印钞机?

Member
avatar
加入于:
帖子: 9
声望: 0

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

这个最长回撤时间应该是所有回撤中最长的那段时间,文件里面变成了发生最大回撤的那段时间

Member
avatar
加入于:
帖子: 189
声望: 40

@zly111 是的,要把最长回撤改成最大回撤

Member
avatar
加入于:
帖子: 5
声望: 0

好歹你封装一下,这样子升级引擎咋搞?

Member
avatar
加入于:
帖子: 189
声望: 40

@我是帅哥 回测引擎升级啥,而且你写到这个地步缺什么自己都能加上去

Member
avatar
加入于:
帖子: 8
声望: 0

请教一下,每笔交易增加持仓监控update_postion后是否会大幅影响回测速度?另外为什么要将long_pos与short_pos分开来存,使用带符号的仓位可以吗?

Member
avatar
加入于:
帖子: 189
声望: 40

@何亚丽 回测慢在回放数据,计算指标很快的。本来盈亏就是由多空仓分别计算再相加的,我实盘的时候self.pos = self.long_pos - self.short_pos这样计算仓位的。多空仓分开计算还有一个好处,多空同时持有相同的仓位这时候self.pos == 0但是我们要处理仓位就要多空仓分别处理。

Member
avatar
加入于:
帖子: 8
声望: 0

我理解计算指标的时间是交易次数的同阶函数:如果交易次数多的话,比如多到每个新bar达到就有一次交易,那么指标计算的时间就和回放数据的时间相当,或者说计算指标很快是建立在交易不频繁的基础上。是这样吗?
我将多空合并计算和分开计算做了下对比,确实合并处理的话,每次仓位归0时要做一下特殊处理,主要是持仓成本和盈亏数据,另外也不利于分别查看空头和多头的损益。
description

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

老师,请问你使用的是那个版本的?能直接运行?我是一个新学生,直接使用最新版无法正常运行。要修改的内容比较多。重点是python 才学三个月。。

Member
avatar
加入于:
帖子: 189
声望: 40

@贵 你先把vnpy框架搞懂再搞这个吧,功能越完善代码肯定是越复杂的

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

wrote:

老师,请问你使用的是那个版本的?能直接运行?我是一个新学生,直接使用最新版无法正常运行。要修改的内容比较多。重点是python 才学三个月。。

我一个刚用的人 来回答一下 最新版本的话 一般是pyqt5缺了一个模块 你用vn studio prompt 来试试python -m vnstudio

Member
avatar
加入于:
帖子: 2
声望: 0

为什么使用两个价格相减呢?

long_profit = (last_price - self.long_avg_cost) × self.long_pos × self.size
short_profit = (self.short_avg_cost - last_price) × self.short_pos × self.size

Member
avatar
加入于:
帖子: 48
声望: 0

楼主的贴子一直很有价值。

这段代码会用到楼主自编的 empyrical 模块,这个方便也分享一下吗 ?

自问自答:pip安装后问题解决

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

沪公网安备 31011502017034号