应该是你的策略on_init里没有load_bar加载历史数据,可以看下on_init函数有没有打错字
超过60分钟bg的Interval就不能选minute了。bg默认的Interval是Interval.MINUTE
合成四小时首先应该在策略文件最上面加一句:
from vnpy.trader.constant import Interval
然后合成四小时K线:
self.bg_4h = BarGenerator(self.on_bar, 4, self.on_4hour_bar, Interval.HOUR)
是和6.3.15向下兼容的
on_stop_order是不会返回信息的
你说的应该是send_order函数返回的orderid列表吧,请结合需求去vnpy.app.cta_strategy.engine下自己看一下send_order函数的代码吧
应该是,等一会应该就好了
可以关闭360这类杀毒软件再试试看,如果还报错可参考https://www.vnpy.com/forum/topic/2078-qing-wen-xia-bu-neng-an-zhuang-vnstudioshi-shi-yao-yuan-yin-yao-zen-yao-jie-jue
https://www.vnpy.com/forum/topic/3817-an-zhuang-vnstudio-2-1-4shi-bai-qing-xie-zhu-xie-xie-yi-wai-tui-chu-dai-ma-:1073741515
https://www.vnpy.com/forum/topic/2376-vnstudio-2-0-9an-zhuang-chu-cuo-xin-an-zhuang-liao-xi-tong-ye-shi-mei-yong-qiu-jiao
https://www.vnpy.com/forum/topic/2364-an-zhuang-vnstudio2-09xian-shi-cuo-wu
报错是因为试用账户有限额导致的。
.vntrader文件夹下的database.db
可通过datamanager模块查看https://www.vnpy.com/forum/topic/3110-vn-pyfa-bu-v2-1-1-quan-gong-neng-shu-ju-guan-li
5min。交易逻辑写在哪个函数下就在哪个频率下执行。
都是基于1分钟K线数据合成的半小时和四小时,选分钟就好了。
多周期策略编写可参考示例策略multi_timeframe_strategy
把回测时间拉长就可以了,这个问题会在之后的版本修复
合约查询查到的合约就是账户权限里的所有合约了。虚拟账户的话,simnow是不提供期权合约的,中信证券好像提供。实盘的话,应该也要权限的。
回测的停止单的话,可以去vnpy.app.cta_strategy.backtesting下的cross_limit_order函数中打印排查看看
请检查一下策略类的名字,显示的是策略类的名字不是策略的名字
不清楚策略逻辑了,可以下次注意一下,如果推送两次是同一个orderid应该就是接口推送了重复的信息,如果是不同orderid则是下了两个单,那应该就要根据策略逻辑排查了
现在CTP夜盘会关闭系统,早上开盘前重启了。
所以夜盘收盘后也要关闭VN Trader盘前再重启了
你现在用的版本是?最新版本没有ctaTemplate.py是template.py。如果是1.9.2的话升级至最新版试试吧
检查一下你自建策略的参数名吧,应该有一个不是str类型
可以自己结合自己的数据对照就知道了。
如果是基于tick交易就是tick,如果是基于bar交易就是bar
可参考https://www.vnpy.com/forum/topic/1954-vn-pykuai-su-ru-men-6-kai-fa-di-yi-ge-liang-hua-ce-lue
如果想多个合约在一个策略里跑,请使用portfolio_strategy模块。
如果想多个合约分开跑同一个策略,只修改参数不修改变量的话,创建多个不同的策略实例即可。
如果想多个合约分开跑同一个策略逻辑,但要变量不同的话,需要创建多个策略,然后对应创建多个策略实例。