如何对比vnpy和kungfu量化交易系统的各自优缺点和侧重点？
两边的源码我都仔细读过。 董可人的那个功夫，低时延的核心在于易经筋模块。进程间通过共享内存(mmap)通信。共享内存上面的数据结构比较简洁，就是一个header加数据体，且数据帧是连续的，每块共享内存只有一个进程或线程进行写入操作，但允许多个线程或进程去读。 但是，kungfu1依旧不适合真低时延交易，因为易筋经的数据结构必定会导致cache miss，只有内部时延（从API拿到行情，策略空转交给下单API）小于1us，才能算低时延入门 优点： 1.数据在内存上连续，所以cache 命中率会比较高，当然，使用时记得给自己的数据做cache line对齐，避免出现假共享导致的乒乓缓存。 2.由于是线性结构且只有一个生产者写入，因此写入操作是线程安全的，并且完全不用加锁，连CAS都不用。至于读取操作，由于没有pop操作且允许多个线程读取同一位置，同样不需要上锁也不需要CAS操作，进程线程间通信自然就快了。 我把这套操作复制到自己实现的lockfreeringbuffer上测试过，一写多读（注：没有pop操作），以ctp的行情报文为例，每隔500ms读写一次，没有做cache  line对齐和绑核等优化，平均读写耗时约3200多纳秒（不包括上下文切换的时间）。标准差有点大，因为没有做上述优化，导致cache命中太低。 另外说一下，每隔几百毫秒写入一次和连续写入是两种完全不同的场景，我之前测试时，连续读写一百万次，平均耗时不过百纳秒级，这是特定场景之下cache命中率虚高导致的，不能当真。测试场景请尽可能贴近真实场景。当然，实盘时让写行情的进程独占一个物理core，再做下cacheline对齐，最后的结果肯定比这个好。  3.既然是基于mmap的操作，自然可以把行情和下单异步写入磁盘，方便以后复盘和回测。 不过，有两点我得说明， 一.kungfu 不管再怎么快，你如果不把机器放交易所旁边，不用FPGA 的行情源和下单接口都是没意义的。用ctp那玩意处理一次行情接收，从网卡收包到API 处理好报文，几百微秒就过去了，应用层的交易系统快个几微秒完全无济于事。 二.交易所用来组播行情的router存在一定的网络抖动，应该是微秒级别，具体数据 @MB MA 知道，当然，他肯定不会告诉你。 三.交易系统的表现还取决于具体策略的计算复杂程度，比如美式期权的定价，涉及的运算的复杂度和时延就比较高，有些机构本身交易系统时延会比kungfu慢个两位数微秒，但照样可以在国内商品期权上赚钱。 目前盛立和艾特朗克都提供FPGA 板子用于处理ctp的行情。至于股票行情，当然也有,详见最后一段。 晓优的vn.py：优点是用boost.Python库对Cpp底层进行了封装（比如CTP），用pyQT做了界面，方便了广大不擅长cpp（这玩意显然比Python难学）的普通群众和无力开发自己量化系统的广大中小broker撸量化。功德无量~ vn.py非常适合用来做中低频交易，不够快？你都用python，把策略放本地了，还能要求速度么？并且，vn.py未必不能用来做高频交易，比如比特币和贵金属的跨境套利，相较于不同交易所之间至少数十毫秒的延迟，python带来的性能损失看上去就没那么大了。 vp.py还有个优点就是开源，方便交易者按自己的需要改底层代码。也不难。 两者的共通优点：vn.py和kungfu的开源部分都是免费的。这是最大的优点。 目前kungfu出了2.0版本，代码可读性好了许多，也支持Windows了，另外某些券商（暂时不点名）拿着第一版kungfu改出来用的事儿， @董可人 也知道。这里个人建议还是用kungfu2交易，选用 @何波 大佬的中泰XTP接口，毕竟现在大多数股票量化私募都在XTP交易过还支持融资融券，技术上比较可靠。