首页 / 量化交易 / 个人量化交易软件(个人做量化交易靠谱吗?)

个人量化交易软件(个人做量化交易靠谱吗?)

一说到量化交易,一下子蹦出一堆牛逼的词汇,比如:FPGA,微波,高频,纳秒级别延迟等等。这些都是高频交易中的词汇,高频交易确实是基金公司做起来比较合适,普通人搞起来门槛比较高。但是,需要明确一点量化交易不等同于高频交易。

交易如果根据频率来划分的话,可分为:

高频:ticke纳秒级别的 1s级别

中低频:1s~1h级别

超低频:1d~1w 等长线投资

高频交易对延迟,性能和稳定性要求非常高,需要大量的硬件的成本和人工成本。但是中低频交易对硬件要求就会低很多。个人与基金公司差距主要体现在算法上,普通程序也有能力捕获到这一频度的交易信号。

老夫废话不多说,就一个字,直接干!

如果想要分析A股,或者比特币,就需要自己搭建一套环境。一般搭建一个量化平台需要这些步骤:开设证券账户>开发环境搭建>数据准备>交易策略开发>回归测试>模拟交易>实盘交易

一、开设证券账户(此处略过)

二、开发环境搭建

目前主流的两种平台是,python和R语言。这两个语言有提供回测框架,时间序列分析,统计分析的库,(C++ 和 java也可以,不过门槛相对比较高)。

Python:目前应该是最普遍的个人量化技术首选语言,因为相关的开源框架相当丰富。

R:高级算法比较方便,社区比较活跃。

我选择的是Python,常用的回测框架用的是ZipLine和BackTrader。

三、数据准备

国内的股票数据,有一些服务商提供,比如通联数据、tushare;国外证券数据可以从 xignite.com获取。还有一些信息,比如新闻,汇率。需要自己写爬虫去抓取,如果用爬虫你就能体会到Python的好处了,爬取数据还是很方便的。

得这些数据后就可以导入到数据库去。关于数据库的选择,一般使用Mysql ,如果数据量比较大(>100G)可以使用mogodb,一般个人不会这么大数据量。

四、交易策略开发

说到交易算法,往往会联想到机器学习、马尔可夫模型、大数据分析、深度学习、神经网络等这些牛逼的AI词汇,但是,普通玩家基本用不到。对于普通交易者可以选用简单高效的算法:

1、将自己操作和想法程序化,比如:三连阳 ,买低价股 或者你听说过什么神奇的操作手法都是用代码实现,然后使用历史数据进行回测。

2.传统的指标交易:均线,MACD ,布林带等,蜡烛图理论,RSI, 波浪理论。这些纯技术分析指标需要在特定的场景才能有作用,大家都听说过海龟交易法,可能都觉挺有道理的。但真实情况如何,用A股或者外汇数据测试一下,就会发现长期收益率不是特别好。

3.多因子选股:每个股民都有自己的选股理论,比如有人会看市盈率,换手率,市盈率,行业情况,成交量。这些筛选因素很简单,但要是从几千股票里去筛选,往往需要大量精力。程序就能特别好解决这些问题。

如果你是高级玩家也可以尝试一下高级算法。比如机器学习,大数据分析等。大数据在金融交易领域应用还是处于开始阶段。从目前信息来看,大数据基金收益的还算不错,比如百度和广发证券合作的百发指数基金,腾讯和嘉实合作的大数据基金。

五、回归测试

如果回测效果不错,收益率,最大回撤率,Sharp值,等指标,都在可接受的范围内容,你肯定就会兴奋,急着要上真实交易,甚至开始计划成立私募基金 ,但是,别急,最好模拟交易一下。

六、模拟交易

但在实盘交易前,还需要做一两个月模拟交易(paper trading) 。很多回测效果很好的策略不一定在模拟交易时候就表现的好。历史数据是固定,回测的时候可以通过不断调整参数,让各项指标趋于完美,有时候会导致算法过度拟合,因为市场总是千变万化,太过意死板的算法是无法适应市场变化。模拟交易最终效果一般取决于你的程序是否灵活,是否良好的风险和资金管理算法。

总结:至于说个人做量化交易是否靠谱,上面的流程已经说明了具体可执行方案,靠谱性不言而喻。至于能不能挣到钱,就看个人的修为了。

要相信:总有高手在民间。


我已经成功了,一个人搞定,刚好用时12个月开发,目前实盘验证了1年,几个策略回报达到预期,分别年化在XX%~XX%,无论市场牛熊。(renew39说的有道理,不要公开收益率引起不必要的竞争)

个人做,大概受到一些限制,比如:

  1. 只能采用中低频策略,或者是趋势交易策略。因为承担不起硬件和数据的高昂成本。
  2. 硬件:我的开发设备是几台PC和一个自己习惯用的笔记本。几台PC是作为算力集群,一般是24小时连续运算。我大概估计累计运行时间有2/3年。实际生产环境一台cloud server就够了,我的配置非常低,每个月花不了几个钱。
  3. 数据:购买一些价格比较实惠的基础数据,然后自己加工。自己加工倒不是为了省钱,是因为市面上大多数据都有bug。需要自己买几套,然后用机器做校验和修复,才有真正敢使用的数据。比如FUTU的日K都有错误,很多大网站的复盘都不对。
  4. 编程:需要自己具备非常全面和专业的编程能力,同时有良好的工程化能力。比如我在一年的时间中,有差不多一半的时间是在完善工具集和压力测试系统。顺便说一下,我是自己开发的量化框架,个人感觉要正式做这个事情,还是要自己做框架。那些开源的框架,离真正的应用还是差的比较远。如果用到一些开源工程,经常需要自己进行修改才能正式使用。我项目的代码量,前两天刚统计过,10万+。所以一定要善于coding。
  5. 数学:非常好的数学基础,尤其是高等数学。实际开发过程中,总有绕不开,需要自己发明指标和数学工具的时候。而且这些都是必须突破的关键点。常用的金融指标的数学含义必须自己完全理解,并能够自己编程实现。因为经常要对某个指标进行数学变形。
  6. 必须学习经济和金融知识。而且越深入越好,要了解经济运行规律,金融资产底层逻辑,金融工具和衍生品的关系和极限边界。才能保证自己有足够的设计灵感,以及安全措施。我是阅读了大量的专业书籍,尤其是交易相关的部分,完全要吃透。虽然最终是程序运算,但自己已经达到了能脑补各种金融图表的程度。这是进行假设的关键一步。重点,一定要啃那些晦涩难懂,一堆图表公式的大部头书籍。那种畅销书是帮不上忙的。
  7. 启动资金。小规模测试大概需要10~20万人民币,这笔钱要做好为验证不断亏损的准备,可能一个晚上损失20%,反正我是发生了不止一次。
  8. 资本金要充足。因为,你看到我前面说的这么多投入,还要计算上你自己的人力成本一年也是大几十万。所以要回本,return要足够多。
  9. 能吃苦。我是春节无休,每天差不多工作16个小时,睡4、5个小时,连续突击2、3月,才能取得几个关键性突破,才有现在的结果。
  10. 倒数第二条,非常关键!争取家人的支持!我也是花了很大的功夫,顶着很大的压力才得到家人的支持。因为人都不愿意冒险,尤其是放着稳定的工资收入不要。所以,这也和第8条有关,你一定要有足够的资本金需要花这么大代价去维护。
  11. 最后一条,极度关键。你是不是相信自己一定能成功!如果你的成长经历中,不是一个极度自信的人,建议就不要去冒这个险。我中途每2、3个月就要面临一次彻底失败的处境。也就是每次这样,我都要面临代码推翻80%,知识体系重构的窘境。真的是到最后1个月才突然出现转机。因为我有事先和家人约定的1年期限,所以最后快到期的那2个月,我是每天吃饭和去卫生间都顾不上,睡觉都是15分钟一个闹表。在极度紧张、压力、绝望和希望中闯荡。如果让我再来一次,我大概也不想再重复了。

这条路水很深,竞争很激励。绝对是比我以往任何一段打工或创业经历都磨练的多。我是把这个项目当成自己的又一次创业来做的。选择个人来做,也是实属无奈,因为找不到合适的partner。

本来只想写几句评论,结果写成了一大篇。也好,算是给自己过期这段时间做了个总结。也希望能给愿意走这条路的人提供一个参考的样本。希望有朋友也能靠自己成功。不过,即使不成功,也可以去加入公司,靠一个团队来做。

我正在制定新的冲击计划,准备把自己的量化工具再提升到更高的return,把drawdown拉的更平。现在正在筹备时间,因为我知道,一旦启动计划,应该又是动荡的一年。也祝我自己好运吧!


精简讨论区有价值的内容

  1. 很轻松就能搞出年化50%以上的,且走势超稳定的策略。

警惕!可能已经落入陷阱了。以下是我入坑的经历。

我开发的第一个季度,经历过2次你说的这个情况。我拿第一次的经历举例。

我的第一个版本,用了2周时间就开发完成,上线了。而且实际运行的那个月,还赚钱了。这个版本的策略回测收益也是在50%,和100%以上。而且我也在上线前做了反复的测试,发现就是这么好。所以当时我是信心满满,而且以为自己发现了金矿。

但是,以我过去做产品的经验,我心里一直非常不踏实,钱不会这么好赚的。10年、20年之前就都在做量化了,我一个外行,不太可能这么容易捡漏。所以我一点没敢耽搁时间,马上各种方式去搜集信息。还真找到了一个启示,就是有人分享过关于K bar在历史数据复盘中产生的各种错误。很不幸,我当时也中招了,这是一个新手非常容易掉进去的陷阱。而且造成的过度自信,会让自己的投资灰飞烟灭。因为几乎再不可行的方案,在这个误差累积下都会让你的策略轻松突破50%以上。

经过修正之后,我之前认为很好的方案全部破产,没有一个能跑赢业绩基准的。而且后来就进入了连续苦战的阶段。

如果你的策略很轻松就做好了,而且业绩轻松跑过基准,大概率就是掉到这个误差陷阱中。这也是市面上绝大多数回测系统和框架普遍存在的问题,也是一个我要自己做框架的原因。因为大多数框架本身都带这个天生的bug,实在不敢用。当然,我还是相信有非常牛的人的。


感谢大家的讨论!

看来关注这个方向的人还是很多的。也希望在这方面有想法的伙伴们,分享一些自己的经验和看法。当然是不损害你自己利益的前提下。

谢谢大家!


【书单】

《打开量化投资的黑箱》 新手科普。适合对量化没有概念的,可以有个初步了解。

《Options as a strategic investement》 强烈推荐精读。除了介绍期权,前面部分还涉及历史上的规则变化,有助于对证券市场规则的成因有深刻认识。后面数学部分帮助很大。我通篇精读2遍,现在也经常拿来当资料查。

《债务危机》[美]瑞·达利欧(Principles For Navigating Big Debt Crises By Ray Dalio)。可以学习分析和推导的思维。我的量化标准要求符合长期有效的运作原理基础。当日大家做法不一样,不一定需要这样。

《The Federal Reserve and the Financial Crisis》入门读物。了解现代美国金融市场的机制。想炒股和担心现在股灾的,也推荐读一下。心里会更有数。

《Python for Finance-Analyze Big Financial Data》编程实操基础。学习用python写量化程序。


【2021-12-6】

提问题,或者讨论,尽量发在评论区。我希望大家能更多的一起交流信息。

私信我看的比较少,不过之前的我会陆续回复

【2021-12-7】

今天拜读了renew39的帖子,非常棒!跟我的做法和市场标的完全不同。推荐大家也去看看。

【增加的截图说明】

这个策略如果放到生产环境,会加3倍杠杆,risk会将avg放大到2%,最大回撤到10%,年化到30%。但因为我认为还存在理论瑕疵,暂时是封存状态,没有投入生产环境。

放这张图就是让大家可以体验一下感觉,正在运用的策略我就不放出来了。我做的量化策略,其实不像教科书那种一条平滑曲线一直上升,也是有回撤的。所以像图上这个策略,使用的时候就会把资金切成2份,1年放一半,规避掉这部分risk。


2020年7月31日更新

有关K线和原始数据。可能由于个人对金融领域的不够熟悉,近日在于答友们交流的过程中才发现个人写下这篇回答之初对一些概念的理解是有偏差的:

  1. 对常用的裸K这个词语有误解,本人是基于原始数据进行分析的,即逐笔或聚合后的逐笔,本回答中所有的内容都是围绕这一前提展开的,但不是裸K,个人对裸K的理解有误,如果在下方的回答或者评论中遇到我提到裸K的描述烦请按照逐笔原始数据来理解。
  2. 仔细重新审视了一遍回答中的各项内容或思路,这里需要特别指出的是,回答中几乎所有的内容对于基于K线(或其它形式的特征提取后的Bar)的分析都是不适用的,不但不适用,而且可能会给实践者带来不必要的困惑,甚至得出错误的结论。包括交易策略和软件两个方面,例如:如果使用K线,即便是同时监控1000个交易对,很高概率不需要类似配置的硬件设备。例如:如果使用K线,是无法看到我称之为动态周期的形态,或者,有很高的看错几率。例如:软件回放(仿真)是无法通过K线来实现的。例如:滑点对个人策略的影响基本可以忽略不计这个结论如果基于K线数据的话是错误的。等等。我一度认为大家有共识的量化交易大概率默认是基于逐笔数据的,但实际情况的确存在各种差异。
  3. 本人回答中提到的各种思路可能在仅提供K线数据的各种量化平台上无法尝试或实践。

2020年7月28日 更新

如果是刚开始,选择哪个市场比较方便:推荐数字货币这个市场,因为:

  1. 各大头部交易所都提供相对完备且符合主流的API接口,且,无任何门槛(无资金门槛、无链路门槛、无许可门槛)。
  2. 其中有一个交易所还提供完备的历史逐笔数据,对于研究量化交易无须购买。至于哪一个交易所,自己百度或者谷歌一下很容易知晓。
  3. 数字货币的交易是7×24小时的,其连续性提供了相对完善的交易样本的多样性。但也因此缺失了开盘收盘阶段的特殊情况。
  4. 具备典型意义的交易对:BTCUSDT、ETHUSDT,基于历史数据的分析,BTC的共识度在过去的两年中持续上升从未下降过,故BTCUSDT交易过程多空交锋激烈、干扰信号相对较多,而ETHUSDT相较BTCUSDT特征更为明显一些。或选择24小时成交额在2000万美元以上,1-2个亿美元以下的交易对作为起始的研究对象,但最终样本不要拉了BTCUSDT。
  5. 数字货币交易买入卖出都需要承担手续费,建议仔细研究各个交易所的费率表及影响到费率的各种条件,存在少量交易所向Maker提供负费率,有这方面策略倾向的可以关注。
  6. 几乎所有的数字货币交易所都支持:现货(仅支持做多)、交割合约、永续合约、杠杆等特性或细分市场,对于侧重不同类型策略的研究都可以找到适合的对象。
  7. 数字货币的特殊时间点:凌晨0点、凌晨4点、凌晨5点、上午7点-8点之间,在这些时间点发生行情的概率会相较于其它时间点略微明显,但不代表行情仅在这几个时间点。
  8. 重要的事情说三遍:不建议参与炒币、不建议参与炒币、不建议参与炒币!研究数字货币或作为资产购买并长期持有主流数字货币是有一定价值共识的,但是不建议在不了解的情况下参与炒币,风险比股市要大不少,特别是不了解基本面或基本面不清晰的AltCoin。
  9. 不要向本人询问有关行情的信息,本人不做预测和分析也没有这个能力,本人仅仅是个独立宽客,不是股评家。
  10. 无法访问交易所:请自行百度或谷歌解决方案。
  11. 建议多少了解一下类似于:区块链、公链、分布式账本、智能合约、挖矿、去中心化金融等基本的概念,虽然不需要从事区块链的开发工作,但对于理解数字货币的基本面还是有帮助的。

如何获取数据以及获取什么数据,并开始研究:

  1. 每个交易所的Website的下方都有API Doc的连接,并且基本每个交易所在GitHub上都有自己的资料库。
  2. 几乎所有的交易所都支持RESTFUL接口,绝大部分交易都同时提供WebSocket接口,但是不同的交易所对接口的访问频度有不同的限制要求。
  3. 交易所中的接口是分类的,有行情接口、交易接口、钱包接口等等,如果你需要K线、逐笔、深度、Ticker等市场的常规数据都可以在文档中找到相应的内容。
  4. 每个交易所通常一种协议会对应一个访问地址(有些交易所不同协议不同IP,有些交易所不同协议复用IP);有些使用的是CDN网络(几乎是固定的几个入口IP),有些使用的是自己的负载均衡体系(数百个IP,并且还会随着时间的推移而变化),总之,确实存在一些方法,让你能够对这些资源的使用更加的Smart,在结果层面总是以完整、最优的方式拿到数据。下面有一些交易所不同协议在提供服务的资源情况作为示例供参考。
  5. 不推荐通过代理服务器在实盘中使用,稳定性和性能都很糟糕。如果你使用的是本地代理,且目的仅仅是为了对自己的交易系统解耦,请留意有些代理软件对于CONNECT方法默认是不通过443以外的端口的,需要自行添加。否则,有些交易所的WebSocket端口不是默认的443,不添加则无法正常通过本地代理连接。
  6. 个人认为最有价值的是逐笔数据(有些交易所还提供聚合后的逐笔,这类数据与逐笔在个人实践中未发现差异能够对计算结果带来显著的影响,但可以降低数据获取的次数和总流量),个人如果需要K线或不同级别的K线都是自主生成,但不同偏好的同样可以在交易所获得现成的数据。
  7. 个人做过多个物理城市多个运营商的链路测试,测试结果不完全一致,基本都能够把到内存延时控制在100ms以内,但最快也未优于20ms,且这个20ms中还存在有少量的误差。
  8. 部分交易所提供完整的历史逐笔数据,这对于通过逐笔数据研究量化策略来说是一个方便的途径。可以通过交易所提供的库附加自己的少量编码获取,或自行编码获取。

说明:上述示例中的Ping延时不等于实际数据传输延时,这是两个概念;WebSocket的Ping延时代表的是Connect连接完成的延时,部分交易所WebSocket Server不可Ping。


2020年7月24日 更新

几天前回答了这个问题之后,由于个人在回答中列出了许多具体的细节,也由此引发了一些朋友的询问,个人把在互动过程中认为原贴中缺失的内容会以更新的方式逐步补充进来。等未来累计到一定程度之后,个人会全面重新整理一下,并关贴供喜欢这个行业的朋友参考之用。

有关成本问题,整件事情剔除个人的时间成本、学习相关知识采购书籍、向专业交易人员请教的社交花费这些软成本之外,还是有一些硬成本的,我大概罗列一下,供参考:

  1. 什么决定了你的成本:你的目的和主交易思路决定了你的成本,高频交易、中低频量化交易、自动化交易、辅助分析但人工交易等目的与场景不同,需要的装备构成不完全相同。当目的和主交易策略确定下来之后,操作的资金量大小相当高概率会以正相关的形式影响到你的成本,并且这种正相关不一定是线性的。本人的目的是纯自动化交易,下方谈及的成本也都是服务于这个目的及其所需要的交易策略的。
  2. 场所:目前个人有两个物理地点不同的普通商品房,集群的不同物理节点分别部署在这两个不同的地理位置。可能有朋友会问,为何不使用云?我个人的观点很明确:无论如何不要使用云服务,这件事情与成本无关,除非你在学习和探索过程中。能否主机托管?这取决与你的系统架构,如果你的系统架构能够很容易解耦出来一部分去托管而不是全部,且,你有办法彻底的保护好你的交易策略(如自毁)。我目前举例的这种场所不适合进行高频交易,高频交易的客观条件远不满足。
  3. 链路:主要的交易场所:2条普通200M的家用宽带,1电信1联通,热备的交易场所:1条普通200M联通。链路需要热备。这三条宽带均摊到每个月的成本大概200元左右,而现在这些运营商都有一些和手机绑定的套餐供选择。
  4. 计算设备:自己组装的Server x4,每台的配置都差不多,两个CPU,都是E5 2696/2697 v2的,512G内存,800G左右的U2硬盘,其中有两台物理位置不同的Server配有HDD阵列,一个20T一个40T,不单独计算了,4台所有东西合计在一起个人购入时累计总成本接近11万元。配件除了HDD硬盘全新之外,剩余的基本都是洋垃圾。所有这些设备计划使用3年(实际应该高于3年,3年后个人另有打算),按月折旧大概每个月大约3000元。这些设备的利用率反映出来的必要性如何?这里需要说明的,你的设备的配置需要按照行情峰值时测得的结果来估算,而不是按照均值,在交易系统软件结构优化比较彻底的前提下,一般只看CPU就可以了(因为剩余的都是可以提前优化或者加量的),目前我这个配置在极端行情的时候是接近75%的满载——即48T的CPU Linux捕捉的CPU利用率75%,时间是今年的3月12日,这种极端行情一年也不会有几次,但你得准备着。
  5. UPS,两边各有一个,APC的,一边独立使用,另一边通过主Server管理所有设备,只能撑3分钟,主要解决断电时主要现场的保存和安全关机,其它的数据在断电时不保存,丢了就丢了,不碍事。每个650元,两个合计1300元,一次性投入就不算均摊折旧了。
  6. 网络设备:没有路由器,用的软路由;没有额外的网卡,选主板的时候选的都是4网口或2网口的主板;主交易场所有一个8口的交换机,大概300元。内网全为千兆,考虑未来将分析服务器到桌面升级为万兆(提数速度加快);两个光猫,运营商给的。这部分总计费用很少,也就不计算入成本了。
  7. 冷备设备:群晖1515+,60T硬盘,主要用来冷备各种数据、代码、分析过程等。设备+盘,大约15000元,这部分计算使用5年,盘也选的5年换新的,按月折旧大约250元。
  8. 索引节点:购买了1个阿里云VPN(1U的),一次购买了5年,主要看中阿里云永不断电、断网的特性,其上没有放置任何交易系统的服务,仅放置了一个自己写的索引服务,该索引服务主要解决不同物理集群的关键信息索引问题,进出流量都很小,所以购买的按流量计费的带宽(搞笑的是,实际流量太小,月月被抹零,开始存了5元进去,到现在还没花完)。这个VPS的成本可以当做0了,没多少钱。
  9. 电费:Server的电源配置两台600W两台750W,NAS功率很小,所有设备都是24小时运行,但并非所有设备24小时都是满负荷运行,有个有意思的现象就是:有时候功率表上的数字与行情大盘数字是同节奏的。费用给不出分项的数字,只有一个总数:每月约1000元左右的电费(按经验扣除了家里的其它用电费用)。
  10. 购买数据:没有这部分成本,数据都是交易系统自己获得的公开数据,没有购买过。
  11. 备品备件:U2 SSDx2(1500),内存条x10(4500),HDD硬盘X3(4000),独立PCIE千兆网卡x2(300),合计约10000元。按3年折旧,每月约300元。为什么要备这么多内存条,因为:1)洋垃圾买的多了,难免遇到有问题的,并非所有的情况都可以换货或者来得及换货。2)我所在城市比较潮湿,有一定几率遇到金手指氧化的情况,定期维护的主要内容之一就是清理内存条的金手指。

暂时想到的就是这么多,如果有遗漏,以后再补充,以上整个算下来大概费用是:4950元/月,如果所有3年折旧的按5年折旧计算,费用约3500元/月。所有的这些费用的前提是一切都在自己家里完成,个人计划未来能够自己建一个小小型的机房,解决好温度、湿度、用电之类的设备管理问题。这个是目前个人的状态,只要你的交易系统和交易策略可以,去Cover这个成本还是相当容易的。当然,如果刚开始,不需要折腾这么多,最好是你意识到缺什么的时候再采购什么,上述内容仅仅用来做一个参照。

本文来自网络,不代表币懂得立场,转载请注明出处:http://www.blogboleh.com/950

币懂得作者

上一篇
下一篇

为您推荐

发表评论

您的电子邮箱地址不会被公开。

联系我们

联系我们

0898-88881688

在线咨询: QQ交谈

邮箱: email@zhutibaba.com

工作时间:周一至周五,9:00-17:30,节假日休息
关注微信
微信扫一扫关注我们

微信扫一扫关注我们

手机访问
手机扫一扫打开网站

手机扫一扫打开网站

返回顶部