可以修改vnpy.app.cta_strategy.ui.widget下的init_ui函数
取决于日线合成的方法了,比如说看时间点判断,那么应该是推进该时间点合成K线之后触发。如果是判断datetime.day不一致合成,那么应该就是第二天了。
实盘的话,初始化load_bar默认的频率是Interval.MINUTE,可以传入Interval.DAILY改成日线,这样传入on_bar的数据就是日线数据了。但是结束初始化之后,传入on_bar的是分钟线。所以交易逻辑肯定要写在on_window_bar下面。所以具体怎么操作还是要看日线合成逻辑怎么写了,如何与本地日线历史数据时间点衔接,合成日线逻辑里的window_bar逻辑怎么写,这些都要自己权衡思考了。
建议还是导入分钟数据,这样比较一致,日线合成逻辑也能简单一点。
导入数据时是要选周期的,导入日线,周期选择”DAILY“就好了。然后回测的时候,也是要选K线周期的,日线回测K线周期选”d“就好了
这个报错是因为登录时,填写的穿透式认证的产品名称和授权码错误。如果是实盘账户可以联系期货公司确认,如果是SimNow账户可以使用下面的配置(来自SimNow官网)
产品名称:simnow_client_test
授权编码:0000000000000000
可参考https://www.vnpy.com/forum/topic/5322-vn-pyxin-shou-ru-men-faq-2020-12-11
可以记录vt_orderid然后进行撤单吧。
是的。
量化策略:负责计算生成买卖的信号,等待时机来捕捉市场Alpha。
交易算法:负责实际执行买卖的委托,减少捕捉Alpha时的执行成本。
对于交易数量不大的用户,可以选择直接将买卖委托的操作嵌入到量化策略的信号生成中(比如中小型资金跑CTA策略)。但对于资金较大的量化机构,算法交易就是业务中的刚需了
这个灵活性很高了,可以参考portfolio_manager那种写法,不过用这个方法可能要修改挺多地方的。
不用加时区,database_mongo调用load_bar/tick_data的时候会用convert_tz函数处理start和end,如果没有tzinfo也会进行处理的
如果实盘想用的话,可以试着在on_tick里判断tick传来datetime的分钟是否有了变化,有就证明新的一分钟到了,然后把交易逻辑写在下面试试
按道理这两个模块都是用的vt_setting.json文件里的setting访问数据库的。
那要不下一个sqlite的可视化图形管理客户端调试看看
可能是品种交易不活跃,前后两个tick时间间隔太长,没能合成规定interval的bar,可以自己print看看。
你的策略里没有run函数。
脚本策略文件编写需要遵循一定格式,可参考https://www.vnpy.com/docs/cn/script_trader.html
和升级没有关系。
请删除.vntrader文件下的cta_strategy_data.json,然后重启vnstation。
如果后续再次出现该错误,请检查策略代码中,是否有把str、bool、int、float类型以外的变量名称写到了parameters列表中,这四种类型以外的变量由于无法通过json序列化会导致保存策略状态出错(损坏json文件)。
请问通过data_manager模块还能看见该合约数据吗?
是用的什么数据库?
那就pip install cryptography试试吧
检查一下你init函数的缩进吧,报错说是缩进问题
如果还报同样的错,建议检查一下策略参数的类型。检查一下策略里是否有把str\bool\int\float以外的变量名,写到了parameters列表中,json文件保存不了这四种基础数据以外的类型,就会出错
可以判断如果传过来的tick的时间不在交易时间内,就不调用update_tick试试
请不要轻易透露自己的账户和密码,建议换张打了码的图。一般报4097就是环境用错了时段或者同时连接了多个c++接口导致的