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

在回测的时候,想在第100根k线的时候,让变量n=0 该怎么编写呢
if(.......):
self.n=0
请问括号里面该怎么写呢?

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

还有个时间问题,想表达在k线时间为2020年3月20日10:45分的时候,让变量n=0,该怎么编写呢
if(.......):
self.n=0
请问括号里面该怎么写呢?

Super Moderator
avatar
加入于:
帖子: 36
声望: 7

在回测的时候,想在第100根k线的时候,让变量n=0 该怎么编写呢?

 

解决这个问题,需要先明确:选择哪一个K线周期?
 
如果,你只打算选择在1分钟周期的K线上累计,可以定义一个类属性 self.bar_num = 0 用来对收到1分钟K线的数量进行记录。 然后在 on_bar 函数下加入 self.bar_num += 1 。这样在每次收到1分钟K线的时候,self.bar_num 的数量就会加一。 最后,你需要在self.bar_num +=1 下面键入if self.bar_num == 100 : ,这样就满足了你在第100根1分钟K线时进行操作的要求。
 

如果,你打算使用其它周期的K线,那就需要你对整个CTA回测引擎多周期K线合成有所了解。可以去查看vn.py回测引擎 来了解 on_bar函数的作用;阅读MultiTimeframeStrategy 来了解多周期K线合成;也可以参加 vn.py CTA策略全实战进阶,该课程有对上面两个知识点详细的解答。
 

在k线时间为2020年3月20日10:45分的时候,让变量n=0,该怎么编写呢

 
解决这个问题,需要对 BarData 这个数据结构有所了解。 BarData是vn.py定义的一种数据结构,其中包含了datetime这个属性(K线时间戳)。该属性中的数据是python中的 datetime 数据类型,详情参考python datetime 介绍datetime 数据类型提供了很多有用的工具对时间戳进行处理。请点击python datetime类的方法和属性 进行学习。另外,dual_thrust_strategy 策略中同样对交易时间进行了过滤,可以参考一下。
 

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

感谢大神解答 谢谢~

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