最近,量化圈出了个新规:个人股票量化系统,不能读取本地文件,也不能通过网络连接外部获取数据,只能用券商提供的功能。
这意味着一大堆靠爬取外部舆情、读取本地DB数据的策略直接瘫痪。很多朋友抱怨,以前通过 TCP/IP 或 SMTP 邮件发交易信号的方式,现在在代码里全被禁用了。
但我常跟人说:技术问题从来不是问题,无非是时间、成本、效率之间的三角关系。 只要底层的物理机还在你手里,通道就永远存在。
既然应用层(7层)和传输层(3层)被盯上了,那我们就直接降维,走操作系统底层——Windows 自带的“共享内存”技术。

我以前在做跨平台交易时,就设计过一套极其野路子的信号交换架构,现在刚好派上用场。
我的信号路径是这样的:
信号源 ➡️ DLL ➡️ Python ➡️ TCP/IP(或共享内存) ➡️ 接收端。
具体怎么玩?
信号源:无论是我的 ETF 策略、还是量化信号,先连接到动态链接库(DLL)。
DLL 处理:DLL 收到信号后,直接传递给 Python。这里我用的是 C语言 编写的 DLL(最开始用 C++,遇到各种内存崩溃的坑,后来发现 C 语言才是王道)。代码里引入了必要的库,直接通过
sendcomm.c进行底层通信。Python 枢纽:Python 收到信号后,就不会受制于券商的网络封锁,可以通过共享内存把数据扔出去。
接收端反转:接收端的逻辑完全反过来,
python ➡️ 共享内存 ➡️ DLL ➡️ 接收端。
如果中间需要用到服务器中转,我以前用的是 Linux 搭建的 MQTT 服务器(代码依然在),或者用 SMTP 协议传递。至于到底用哪种,完全取决于你的业务需求。





研报速递
发表评论
发表评论: