代码大概的逻辑如下:
def __init__():
cnt=0
def on_tick(self,tick):
cnt+=1
if cnt>20:
calculate()
def calculate(self,tick):
dosomething
cnt=0
请教一下如果calculate中计算逻辑复杂一点,会不会损失一些tick数据,如何加速?
可以用c++封装计算过程吗
代码大概的逻辑如下:
def __init__():
cnt=0
def on_tick(self,tick):
cnt+=1
if cnt>20:
calculate()
def calculate(self,tick):
dosomething
cnt=0
请教一下如果calculate中计算逻辑复杂一点,会不会损失一些tick数据,如何加速?
可以用c++封装计算过程吗
那得看计算需要的时间。tick数据是不会低丢失的,但是会被阻塞住。因为策略处理是同步的,所以如果在下一个tick达到时,上一个tick还在计算,那么就会等待上一个tick计算完成。计算过于复杂的话可以使用cython或者c++把计算过程封装成你这里的calculate函数,在on_tick中调用即可。
郭易燔 wrote:
那得看计算需要的时间。tick数据是不会低丢失的,但是会被阻塞住。因为策略处理是同步的,所以如果在下一个tick达到时,上一个tick还在计算,那么就会等待上一个tick计算完成。计算过于复杂的话可以使用cython或者c++把计算过程封装成你这里的calculate函数,在on_tick中调用即可。
非常感谢,那有没有可能用asyncio来实现这一功能,或者有没有这个必要
没有必要,如果计算复杂想加快计算速度的话可以参考一下2楼的建议
xiaohe wrote:
没有必要,如果计算复杂想加快计算速度的话可以参考一下2楼的建议
谢谢🙏