谢谢,我试试检查下
以前都是用MT5做量化交易,但因为自身有一些BUG,加上内存占用比较大就重新选择了VNPY。但这段时间用VNPY跑几十个策略,速度已经受不了了,一个简单的tick驱动,各个策略之间执行间隔竟然要100-200毫秒,更有甚者,日志打印的时间却是10多分钟前交易的数据记录!!!
大家做交易时候有无遇到这个问题,对python的运行效率非常失望!
谢谢,看样子也只能这样操作比较合适。
我看了下CTA的示例代码,只要行情订阅成功,都会触发on_tick和合成的k线回调on_bar,如果当时还没有启动策略,trading就是False导致即使buy也不会运行。
所以我想在on_start中buy,但发现cta引擎是先回调on_start,然后再设置trading为True。是不是还是不能成功开仓?
def start_strategy(self, strategy_name: str):
"""
Start a strategy.
"""
strategy = self.strategies[strategy_name]
if not strategy.inited:
self.write_log(f"策略{strategy.strategy_name}启动失败,请先初始化")
return
if strategy.trading:
self.write_log(f"{strategy_name}已经启动,请勿重复操作")
return
self.call_strategy_func(strategy, strategy.on_start)
strategy.trading = True
self.put_strategy_event(strategy)
是的,我也准备这样做。不过上层把交易所聚合成一个接口,数据太多了,比如挂单撤单数据,还有 部分成交的状态比较麻烦。
谢谢您的解答,我在想如何实现云端的量化服务,是把交易所聚合成一个接口还是各个用户独立一个进程连接交易所进行量化。
初学vn.py,略看源码系统框架十分了得,向开发团队致敬!想问问这几点需求vn.py能实现吗?
1.vn.py作为webservice,不同用户提供对应的账号选择不同策略进行量化交易。(不用本地的setting.json)
刚刚学,虽然还不太理解,但很多柜台确实限流,有需要再回顾。谢谢大神!