说明
借着春节休假,把这部分完工,然后2025年将正式的把量化研究的成果进行产品化输出。
首先,我会将策略的执行从脚本挪到服务。做法是将策略的逻辑放在微服务里,作为一个接口,而由sniffer来触发策略执行。我想这样策略不会因为任务太多而搞丢或者搞乱。之前QTV100的代码,我已经不知道放在哪了,在运行,但是我都无法去维护。而无数个微服务,哪怕是老版的,我也可以很容易找出来。也就是从"拉"式转为"推"式。
其次,使用数据库来支持策略的断点保存。程序的执行将按时间不断推进,直到最新时间或者指定时间,只需要为程序维持时间轴即可。策略在产生新的变化时,才会发起数据库存储需求。存储分为元数据和数据两部分,以日志的方式存储,这样在回退的时候,可以确保是干净的。
最后,使用mattermost的webhook作为事件消息的载体。当策略产生行动(买/卖),或者是巡检评估产生结论时,通过webhook发送即时消息,同时也将事件消息备份在kafka中。之后,也可考虑基于kafka的消息进行统一信息发送。
内容
1 简单测试一下FastAPI
引入基础模块,定义异步接口,然后进行简单测试。
from fastapi import FastAPI, HTTPException
class Test(BaseModel):
"""
用于文档:这是一个测试模型,用于演示 FastAPI 的自动文档功能。
"""
pass
@app.post('/test/')
async def test(the_test:Test)