Watch 1 Star 0 Fork 31

Zhenyang / QuicklibPython

forked from 量化林 / Quicklib 
Join us
Explore and code with more than 5 million developers,Free private repositories !:)
Sign up
This repository doesn't specify license. Without author's permission, this code is only for learning and cannot be used for other purposes.
期货、A股等国内程序化python交易框架和工具 spread retract

Clone or download
关于Quicklib是否适合做高频的问题.txt 1.80 KB
Copy Edit Web IDE Raw Blame History
量化林 authored 2017-02-10 15:40 . Signed-off-by: wdg <147423661@qq.com>
很多人问我,quicklib适合做高频吗?
这让我无法一句话回答,因为不同的朋友所指的高频的概念是不同的。
首先高频需要满足2个基本条件:1.托管 2.付费行情
如果这2个条件做不到,就不能算是高频。
这2个条件是做高频的必要条件,而不是满足这2个条件就是高频了。
当满足这2个条件后,我们再讨论高频的问题。
高频有几种类型,但因为大多数方式都是下单后立刻撤单,所以需要逻辑代码执行路径要尽可能短,所以高频通常是直接用C++开发,直接使用C++开发,而不需要和其他语言交互,使得逻辑代码的执行路径较短,所以用C++做开发是高频理想的选择,因为逻辑代码执行路径的长短是影响高频收益能力的主要因素。
对采用指标计算的策略(量化)而言,比如普通的MACD,MA这些指标计算,本质上市对时间序列的处理,对Python而言,硬件针对Python做了优化,经过测试比直接用C++计算还快10%左右。由于对基于时间序列的指标计算,代码逻辑长短不是主要因素,所以采用Python+C++结合的方式,反而是一对黄金组合,底层使用C++,而基于时间序列部分采用Python,矩阵处理的计算使用Python库,效率反而更好,或二者效率差异微乎其微。Quicklib就是Python和C++结合的模式,并采用行情驱动、消息驱动,使得算法是0延时,将二种语言的优点无缝结合在一起。
其实一味讨论性能没有意义,以2016年主流CPU配置(1000-2000元),每秒可以进行20万次以上的普通指标计算,快是多快慢是多慢本身就没有意义,不如直接加几百块买更好的CPU来的实在,而不要花几个月时间陷入无限过度优化的工作中,你优化的这段时间,新的CPU产品推出,可能新一代CPU硬件性能提升已经超过了你优化的程度。与其那样,还不如什么都不做,等几个月用相同的钱买更快的CPU。
所以过度追求性能是没有意义的。
决定性能最主要因素是架构和硬件。也可以采用GPU加速的方式,采用几千元的NVIDIA CUDA加速计算,可以使得计算提升到140倍以上,当然代码也存在兼容性问题,普通云主机无法采用GPU加速。需要买有GPU加速的服务。
对普通策略是没必要采用GPU加速的,因为CPU计算能力远远足够。
当然对非线性交易系统(神经网络、深度学习、隐马尔可夫链等、随机森林等)的复杂训练和计算,采用GPU加速是一种更好的选择。

Comment ( 0 )

Sign in for post a comment

Python
1
https://gitee.com/yuzhenyang/Quicklib.git
git@gitee.com:yuzhenyang/Quicklib.git
yuzhenyang
Quicklib
Quicklib
master

Help Search