tick回测目前图形界面不支持,建议在Jupyter Notebook中调用。可以参考这个帖子https://www.vnpy.com/forum/topic/1992-vn-pyshe-qu-jing-xuan-8-tickshu-ju-zai-ru-he-ce-lue-hui-ce
应该是时间戳数据格式的问题,看图上没有秒钟,应该是2001-01-02 23:01:00。
可参考https://www.vnpy.com/forum/topic/3203-bian-xie-pythonjiao-ben-shi-xian-shu-ju-ru-ku?page=1#pid11723里的数据处理方式,处理一下再试试看。
用data manager就能将CSV文件导入数据库。可参考https://www.vnpy.com/forum/topic/3110-vn-pyfa-bu-v2-1-1-quan-gong-neng-shu-ju-guan-li
可以检查一下你的cinco策略,是不是忘打boll_window了。不是在参数里,是在赋值的时候。
可以直接用 self.am.update_bar(bar),是一样的意思。只是这样比较简便,之后用到self.am的地方就可以只打am了。
可以在cmd中,用python -m vnstation命令来启动VN Station,然后再运行策略就可以print出来了。
2.1.4如果有下过之前的版本,,启动VN Station后,直接点击界面右下角的【更新】按钮就能完成自动更新升级。如果没安装过,通过这个连接:
https://download.vnpy.com/vnstudio-2.1.4.exe
就能下载。
从图上看,你用的mode是TICK,你的数据是Tick数据还是分钟数据?
你jupyter上数据输的IF888,图形界面上输的IC888。可以把jupyter上也换成IC888再跑跑看。
这是原版:
这是你的版本:
问题应该出在last_bar上,第一个分钟线推进来的时候,last_bar应该是None, 此时满足不了判断条件。所以你的不是从0分钟开始count,而是从1分钟开始count。
把 'if self.last_bar and bar.datetime.minute != self.last_bar.datetime.minute:'这行删了然后其余四行缩进,应该就一致了。
这是print出来的效果:
可以试试这个帖子里贴的专用申请link看看。https://www.vnpy.com/forum/topic/2005-rqdata-shi-yong-shen-qing-shi-yi
是这样的,vnpy从2.1.3开始环球时区支持,所以现在datetime对象全部附加了其所在时区的信息。之前楼主改的BarGenerator里有一行:
if self.last_bar and str(bar.datetime)[-8:] =='14:59:00':
挪一下区间,改成这样就好了:
if self.last_bar and str(bar.datetime)[-14:-6] =='14:59:00':
exchange是交易所,open_interest是持仓量。
interval的话,在trader文件夹下的constant里能看见interval的class。
1:本地停止单是触发后按照涨跌停价发出,或者按照5档盘口发出的限价单。
2:大部分交易所都是本地停止单,但是IB的话是应该是发的交易所的停止单。可以去看gateway文件夹下的ib_gateway第541行,ContractData里的stop_supported=True,前面send_order函数里也有对应的OrderType.STOP处理。
如果想要用jupyter notebook做回测,可以参考这个回答https://www.zhihu.com/question/315015453
如果想要用jupyter notebook连接接口,查询合约,执行策略,可以参考这篇文章https://www.vnpy.com/forum/topic/859-vn-pyfa-bu-v2-0-5-jiao-ben-ce-lue-he-rpcfu-wu
在arraymanager里搜索macd,就能看到macd指标。
由图上看可知,所需参数为fast_period, slow_period,和signal_period,会输出 macd, signal, hist,分别为DIF,DEA和MACD柱状线。
self.macd_macd, self.macd_signal, self.macd_hist = am.macd(self.fast_period, self.slow_period, self.signal_period)