bitpie安卓版PRO|量化交易
一文读懂什么是量化交易! - 知乎
一文读懂什么是量化交易! - 知乎切换模式写文章登录/注册一文读懂什么是量化交易!散户小韭菜金融专业毕业,多年投资经验,解答各类投资问题、低佣量化交易基本概念量化交易并没有一个精确的定义,广义上可以认为,凡是借助于数学模型和计算机实现的交易方法都可以称为量化交易。目前,国内比较常见的量化交易方法包括股票多因子策略(阿尔法)、期货CTA策略、套利策略和高频交易策略等。量化交易在2010年之前还是非常小众的领域,后来随着沪深300指数期货的出现,量化交易的基金开始出现井喷现象。无论是中长线CTA策略,还是高频交易策略或股票阿尔法策略,都取得了非常好的业绩。2010年到2014年是量化交易的红利期,各类量化交易策略都赚取了足够多利润。利润是最好的广告,很多人都开始关注量化交易,量化交易基金的规模因此开始快速增长。也正是这种“高利润”,导致了大家对量化交易存在大量的误解。比如,2015年的“股灾”,很多人认为股指上的高频交易起到了推波助澜的作用,是股灾的元凶。之后,中金所做出的一系列动作,如对股指限制交易频率、提高交易手续费等,很大程度上就是为了限制高频交易。所以需要换一个思路,我们不一定要靠纯粹的所谓“量化”来做交易,量化只是一种手段,目的还是为了提升投资业绩。换句话说,我们并不一定要成为专业的量化从业人员,才能使用量化的方法。任何交易经理,包括大量传统的基本面分析师,都可以使用量化的手段来帮忙提升投资研究效率和业绩。本文的初衷就是希望传统的投资从业人员也能从量化的思路中获得助益。量化,并不是谁的专利,人人都可以学习。量化交易的特征严格来说,量化交易与主观投资并不是非黑即白的关系。传统的主观投资经理查看财报,根据财务数据做投资决策,这算不算量化分析?既然进行了数据分析,主观投资当然也算是一种化分析。那么,量化交易与主观投资的区别究竟在哪里呢?它们的区别并没有那么泾渭分明。每一个交易者,或多或少都用到了主观或者量化的方法。投资者在收集信息、拟定决策的时候,有两种不同的倾向,一种是感知的、直觉的,另一种是逻辑的、量化的。这样就分为了四个维度,如下:直觉接收,直觉决策:阅读新闻,感知交易者情绪进行决策。直觉接收,量化决策:抓取网络文本,建立模型进行交易决策。量化接收,直觉决策:研究财报数据,根据直觉经验进行交易决策。量化接收,量化决策:通过统计分析,建立多因子模型,进行交易决策。量化交易策略的最大特点是其具有一套基于数据的完整交易规则。在投资决策的任何一个环节中,必须要有一套完全客观的量化标准。比如,A股票的横指标达到多少的阈值时,我们才决定开仓,每次开仓要买多少手。这种规定必须是唯一客观的,不允许有不同的解释。当然,这些规定可以通过研究和主观判断来进行修改,但是一旦确定,就需要严格遵守。03 量化交易的优势量化交易的优势可以总结为三个词:客观性、大数据、响应快,具体说明如下。1. 客观性量化交易一般通过回测来证实或者证伪策略的历史有效性,而且在进行实盘交易的时候,很多都是通过程序化交易自动下单的,这能在很大程度上保证决策的客观性,受人为情绪等因素的干扰较少。2. 大数据量化交易在研究或者决策中,通常会引入大量的数据来进行分析。比如股票,只需要一套代码,就可以同时分析全市场3600多支股票。这种大数据的分析效率在传统投研方法中是做不到的(当然,不可否认的是,传统投研对公司基本面的研究是更深入的)。3. 响应快由于是用计算机进行自动分析,所以分析和响应速度都十分迅速,一般能达到秒级,高频交易甚至是以微秒为单位的。手机APP量化平台权限申请,免费使用发布于 2021-08-10 15:58量化量化交易高频交易赞同 20添加评论分享喜欢收藏申请
股票量化交易到底是什么? - 知乎
股票量化交易到底是什么? - 知乎首页知乎知学堂发现等你来答切换模式登录/注册量化股票量化交易股票量化交易到底是什么?关注者148被浏览85,955关注问题写回答邀请回答好问题 1添加评论分享59 个回答默认排序顽固的石头1988期货从业人员资格证持证人 关注第一,我先说交易的本质:职业交易员交易的是:权利,暴力,资源,优势,趋势,关系,信息差,漏洞,地段,流量,。。。。金钱就是这些东西的附属品,被这些东西吸引并且流向,自然规律。依靠这些依仗去获利。散户交易的本质是:赌博的快感,真爽,为了爽而交易。第二量化:量化 的本质是迭代,就是迭代掉老一批盘手的手工操作。并不创造什么,就是迭代掉他们,通过速度更快,覆盖面更广的方式迭代。不奇妙的发布于 2023-12-05 08:40赞同 121 条评论分享收藏喜欢收起量化上头啦量化QMT/PTrade (需求请留言) 关注很多刚入股市的散户初闻量化交易,总觉得神秘莫测,难以理解。但其实,量化交易是在证券交易中一种常见的投资方式。大白话来解释:量化交易就是借助现代统计学和数学的方法,利用计算机技术来进行自动化交易,它最大的特点便是以先进的算法代码代替人工决策。图上就是量化交易的源代码,而这个数字就是我们说的量化策略。相比于人工交易的精耕细作,量化交易更类似于大机械化的劳作,好比大型收割机之于锄头镰刀,它能将我们的交易效率提高百倍,同时提升我们交易的胜率,以及克制我们自身人性的弱点。什么叫做人性的弱点?作为生物个体,我们做投资没有办法回避的一个弱点就是,我们的时间、体力、精力、注意力、判断力都是很有限的。比如说你要用传统的方法,每只股票都去仔细分析它的基本面或者看它的技术图形,那即便像巴菲特这样的股神,也只能分析很少的股票。所以当大规模资产管理的行业出现以后,基金经理们就开始犯愁,然后在想,有没有一些可行的方法,可以让一个人研究更多的证券,然后管理更多的钱呢?这个想法一直没有能够得到实现。一直到上个世纪70年代,计算机的计算能力突飞猛进,使得对金融数据的分析成为了可能,随后量化交易便开始出现,并在整个金融市场上占据着越来越大的份额。不过要告诉大家的是,不要觉得量化有多高大上就一股脑地冲进来,量化交易的风险也是很大的。为什么呢?因为量化交易是在历史数据里面去挖掘规律,所以它依赖的是历史数据,也就是过去的趋势,那如果这个趋势存在的条件发生变化,过去的策略就都没有用处了。发布于 2023-11-20 10:23赞同 4添加评论分享收藏喜欢
量化交易(投资方法)_百度百科
(投资方法)_百度百科 网页新闻贴吧知道网盘图片视频地图文库资讯采购百科百度首页登录注册进入词条全站搜索帮助首页秒懂百科特色百科知识专题加入百科百科团队权威合作下载百科APP个人中心量化交易是一个多义词,请在下列义项上选择浏览(共2个义项)展开添加义项量化交易播报讨论上传视频投资方法收藏查看我的收藏0有用+10量化交易是指以先进的数学模型替代人为的主观判断,利用计算机技术从庞大的历史数据中海选能带来超额收益的多种“大概率”事件以制定策略,极大地减少了投资者情绪波动的影响,避免在市场极度狂热或悲观的情况下作出非理性的投资决策。中文名量化交易外文名Quantitative Trading关键词数学模型、大概率、计算机、投资方法类 别投资方法专业基础金融、统计、数学建模、软件工程代表人物詹姆斯·西蒙斯目录1国外市场2国内发展趋势3交易特点4应用5潜在风险6量化策略国外市场播报编辑首先,从全球市场的参与主体来看,按照管理资产的规模,2018年全球排名前六位中的五家资管机构,都是依靠计算机技术来开展投资决策,而且进入2019年由量化及程序化交易所管理的资金规模进一步扩大。其次,全球超70%的资金交易用计算机或者程序进行,其中一半是由量化或者程序化的管理人来操盘。在国外招聘网站搜索金融工程师(包括量化、数据科学等关键词)会出现超过33万个相关岗位。第三,从高校的培养方向来看,已有超过450所美国大学设置了金融工程专业,每年相关专业毕业生达到1.5万人,市场需求与毕业生数量的差距显著,因此数据科学、计算机科学、会计以及相关STEM(基础科学)学生毕业后进入金融行业从事量化分析和应用开发的相关工作。 [1]国内发展趋势播报编辑目前国内量化投资规模大概是3500到4000亿人民币,其中公募基金1200亿,其余为私募量化基金,数量达300多家,占比3%(私募管理人共9000多家),金额在2000亿左右。中国证券基金的整体规模超过16万亿,其中公募14万亿,私募2.4万亿,乐观估计,量化基金管理规模在国内证券基金的占比在1%~2%,在公募证券基金占比不到1%,在私募证券基金占比5%左右,相比国外超过30%的资金来自于量化或者程序化投资,国内未来的增长空间巨大。 [1]交易特点播报编辑量化投资和传统的定性投资本质上来说是相同的,二者都是基于市场非有效或弱有效的理论基础。两者的区别在于量化投资管理是“定性思想的量化应用”,更加强调数据。量化交易具有以下几个方面的特点:1、纪律性。根据模型的运行结果进行决策,而不是凭感觉。纪律性既可以克制人性中贪婪、恐惧和侥幸心理等弱点,也可以克服认知偏差,且可跟踪。2、系统性。具体表现为“三多”。一是多层次,包括在大类资产配置、行业选择、精选具体资产三个层次上都有模型;二是多角度,定量投资的核心思想包括宏观周期、市场结构、估值、成长、盈利质量、分析师盈利预测、市场情绪等多个角度;三是多数据,即对海量数据的处理。3、套利思想。定量投资通过全面、系统性的扫描捕捉错误定价、错误估值带来的机会,从而发现估值洼地,并通过买入低估资产、卖出高估资产而获利。4、概率取胜。一是定量投资不断从历史数据中挖掘有望重复的规律并加以利用;二是依靠组合资产取胜,而不是单个资产取胜。应用播报编辑量化投资技术包括多种具体方法,在投资品种选择、投资时机选择、股指期货套利、商品期货套利、统计套利和算法交易等领域得到广泛应用。在此,以统计套利和算法交易为例进行阐述。1、统计套利 [2]统计套利是利用资产价格的历史统计规律进行的套利,是一种风险套利,其风险在于这种历史统计规律在未来一段时间内是否继续存在。统计套利的主要思路是先找出相关性最好的若干对投资品种,再找出每一对投资品种的长期均衡关系(协整关系),当某一对品种的价差(协整方程的残差)偏离到一定程度时开始建仓,买进被相对低估的品种、卖空被相对高估的品种,等价差回归均衡后获利了结。股指期货对冲是统计套利较常采用的一种操作策略,即利用不同国家、地区或行业的指数相关性,同时买入、卖出一对指数期货进行交易。在经济全球化条件下,各个国家、地区和行业股票指数的关联性越来越强,从而容易导致股指系统性风险的产生,因此,对指数间的统计套利进行对冲是一种低风险、高收益的交易方式。2、算法交易。算法交易又称自动交易、黑盒交易或机器交易,是指通过设计算法,利用计算机程序发出交易指令的方法。在交易中,程序可以决定的范围包括交易时间的选择、交易的价格,甚至包括最后需要成交的资产数量。算法交易的主要类型有: (1) 被动型算法交易,也称结构型算法交易。该交易算法除利用历史数据估计交易模型的关键参数外,不会根据市场的状况主动选择交易时机和交易的数量,而是按照一个既定的交易方针进行交易。该策略的的核心是减少滑价(目标价与实际成交均价的差)。被动型算法交易最成熟,使用也最为广泛,如在国际市场上使用最多的成交加权平均价格(VWAP)、时间加权平均价格(TWAP)等都属于被动型算法交易。 (2) 主动型算法交易,也称机会型算法交易。这类交易算法根据市场的状况作出实时的决策,判断是否交易、交易的数量、交易的价格等。主动型交易算法除了努力减少滑价以外,把关注的重点逐渐转向了价格趋势预测上。 (3) 综合型算法交易,该交易是前两者的结合。这类算法常见的方式是先把交易指令拆开,分布到若干个时间段内,每个时间段内具体如何交易由主动型交易算法进行判断。两者结合可达到单纯一种算法无法达到的效果。算法交易的交易策略有三:一是降低交易费用。大单指令通常被拆分为若干个小单指令渐次进入市场。这个策略的成功程度可以通过比较同一时期的平均购买价格与成交量加权平均价来衡量。二是套利。典型的套利策略通常包含三四个金融资产,如根据外汇市场利率平价理论,国内债券的价格、以外币标价的债券价格、汇率现货及汇率远期合约价格之间将产生一定的关联,如果市场价格与该理论隐含的价格偏差较大,且超过其交易成本,则可以用四笔交易来确保无风险利润。股指期货的期限套利也可以用算法交易来完成。三是做市。做市包括在当前市场价格之上挂一个限价卖单或在当前价格之下挂一个限价买单,以便从买卖差价中获利。此外,还有更复杂的策略,如“基准点“算法被交易员用来模拟指数收益,而”嗅探器“算法被用来发现最动荡或最不稳定的市场。任何类型的模式识别或者预测模型都能用来启动算法交易。潜在风险播报编辑量化交易一般会经过海量数据仿真测试和模拟操作等手段进行检验,并依据一定的风险管理算法进行仓位和资金配置,实现风险最小化和收益最大化,但往往也会存在一定的潜在风险,具体包括:1、历史数据的完整性。行情数据不完整可能导致模型与行情数据不匹配。行情数据自身风格转换,也可能导致模型失败,如交易流动性,价格波动幅度,价格波动频率等,而这一点是量化交易难以克服的。2、模型设计中没有考虑仓位和资金配置,没有安全的风险评估和预防措施,可能导致资金、仓位和模型的不匹配,而发生爆仓现象。3、网络中断,硬件故障也可能对量化交易产生影响。4、同质模型产生竞争交易现象导致的风险。5、单一投资品种导致的不可预测风险。为规避或减小量化交易存在的潜在风险,可采取的策略有:保证历史数据的完整性;在线调整模型参数;在线选择模型类型;风险在线监测和规避等。量化策略播报编辑量化策略是指使用计算机作为工具,通过一套固定的逻辑来分析、判断和决策。量化策略既可以自动执行,也可以人工执行。 [3]一个完整的量化策略包含哪些内容?量化策略一个完整的策略需要包含输入、策略处理逻辑、输出;策略处理逻辑需要考虑选股、择时、仓位管理和止盈止损等因素。选股量化选股就是用量化的方法选择确定的投资组合,期望这样的投资组合可以获得超越大盘的投资收益。常用的选股方法有多因子选股、行业轮动选股、趋势跟踪选股等。1 多因子选股多因子选股是最经典的选股方法,该方法采用一系列的因子(比如市盈率、市净率、市销率等)作为选股标准,满足这些因子的股票被买入,不满足的被卖出。2 风格轮动选股风格轮动选股是利用市场风格特征进行投资,市场在某个时刻偏好大盘股,某个时刻偏好小盘股,如果发现市场切换偏好的规律,并在风格转换的初期介入,就可能获得较大的收益。3 行业轮动选股行业轮动选股是由于经济周期的的原因,有些行业启动后会有其他行业跟随启动,通过发现这些跟随规律,我们可以在前者启动后买入后者获得更高的收益,不同的宏观经济阶段和货币政策下,都可能产生不同特征的行业轮动特点。4 资金流选股资金流选股是利用资金的流向来判断股票走势。巴菲特说过,股市短期是投票机,长期看一定是称重机。短期投资者的交易,就是一种投票行为,而所谓的票,就是资金。如果资金流入,股票应该会上涨,如果资金流出,股票应该下跌。所以根据资金流向就可以构建相应的投资策略。5 动量反转选股动量反转选股方法是利用投资者投资行为特点而构建的投资组合。索罗斯所谓的反身性理论强调了价格上涨的正反馈作用会导致投资者继续买入,这就是动量选股的基本根据。动量效应就是前一段强势的股票在未来一段时间继续保持强势。在正反馈到达无法持续的阶段,价格就会崩溃回归,在这样的环境下就会出现反转特征,就是前一段时间弱势的股票,未来一段时间会变强。6 趋势跟踪策略当股价在出现上涨趋势的时候进行买入,而在出现下降趋势的时候进行卖出,本质上是一种追涨杀跌的策略,很多市场由于羊群效用存在较多的趋势,如果可以控制好亏损时的额度,坚持住对趋势的捕捉,长期下来是可以获得额外收益的。择时量化择时是指采用量化的方式判断买入卖出点。如果判断是上涨,则买入持有;如果判断是下跌,则卖出清仓;如果判断是震荡,则进行高抛低吸。常用的择时方法有:趋势量化择时、市场情绪量化择时、有效资金量化择时、SVM量化择时等。仓位管理仓位管理就是在你决定投资某个股票组合时,决定如何分批入场,又如何止盈止损离场的技术。常用的仓位管理方法有:漏斗型仓位管理法、矩形仓位管理法、金字塔形仓位管理法等止盈止损止盈,顾名思义,在获得收益的时候及时卖出,获得盈利;止损,在股票亏损的时候及时卖出股票,避免更大的损失。及时的止盈止损是获取稳定收益的有效方式。策略的生命周期一个策略往往会经历产生想法、实现策略、检验策略、运行策略、策略失效几个阶段。产生想法任何人任何时间都可能产生一个策略想法,可以根据自己的投资经验,也可以根据他人的成功经验。实现策略产生想法到实现策略是最大的跨越,实现策略可以参照上文提到的“一个完整的量化策略包含哪些内容?”检验策略策略实现之后,需要通过历史数据的回测和模拟交易的检验,这也是实盘前的关键环节,筛选优质的策略,淘汰劣质的策略。实盘交易投入资金,通过市场检验策略的有效性,承担风险,赚取收益。策略失效市场是千变万化的,需要实时监控策略的有效性,一旦策略失效,需要及时停止策略或进一步优化策略。新手上路成长任务编辑入门编辑规则本人编辑我有疑问内容质疑在线客服官方贴吧意见反馈投诉建议举报不良信息未通过词条申诉投诉侵权信息封禁查询与解封©2024 Baidu 使用百度前必读 | 百科协议 | 隐私政策 | 百度百科合作平台 | 京ICP证030173号 京公网安备110000020000量化交易快速入门指南(适用于无编程背景人士) - 知乎
量化交易快速入门指南(适用于无编程背景人士) - 知乎首发于品职教育CFA&FRM双证备考切换模式写文章登录/注册量化交易快速入门指南(适用于无编程背景人士)李斯克特许金融分析师(CFA)、金融风险管理师(FRM)持证人在 AI 这个话题被不断神化的同时,量化对于大多数人来说也成了一个越来越遥远的领域。但近年来量化投资越来越受到投资者的关注,量化产品也为投资者创造了较好的回报,很多人对量化交易就有了最为直观而浅显的认识:这能赚钱,而且能赚很多钱。但是量化交易究竟怎么做?从小白到入门又分为几步,很多人其实在入门级别就倒下了。为了让大家能更直观的感受到量化的学习过程,我也会分享我们一个学员学习量化的小故事,这位学员在无编程经验的背景下,花费了4个月左右时间成功从传统金融背景转行进入量化团队。本篇文章我将从以下几方面为大家讲解量化的入门知识一、什么是量化交易?(一)普通人眼中的量化交易(二)真实的量化交易1.量化的定义2.近在咫尺的量化交易二、如何成为量化交易员(一)第一步:量化交易的养成(二)第二步:从Python上手编程(三)第三步:走向量化下面就跟着老李一起来揭开量化投资的神秘面纱。一、什么是量化交易?(一)普通人眼中的量化交易在和很多金融领域的学生聊天时,我发现大多数人在聊到量化时第一反应就是:它很难。接着会继续问道:- 量化岗是不是需要数学、物理博士?- 量化是做高频么?- 量化需要会C语言么?- 现在量化是不是在往AI方向上走?其实这些问题的答案很难用简单的「是否」去解答,对于一个领域的探讨永远是多元化的,在能够帮助大家解答这些问题之前,我们还要先从量化最本质的话题聊起:什么是量化交易?(二)真实的量化交易通常人们在科普量化时,会和大家解释Q-Quant和P-Quant,或者卖方/买方量化的角度将量化交易进行划分,这些类似的话题在知乎有很多,笔者今天想更多的从量化本身的定义出发,和大家聊聊这个话题。1.量化的定义量化,就是用数学模型(而非人脑),决定交易的品种、数量、方向、时机。不难理解,量化的一大核心就是用数学模型去替代人脑,让模型的理性替代人的感性,将我们的投资逻辑转化成数学语言,去严格执行模型中制定的交易规则,去决定交易中的买卖要素(品种、数量、方向、时机)。正所谓英雄不问出处,实时造就英雄,量化策略也是一样。一个量化策略好坏是根据它实盘的战记,观察它是否适合当前的市场、当前的资产情况、当下的时代背景,而非依据模型的复杂程度来进行评判,其底部是由投资逻辑去做支撑。这也就意味着,当大家在谈起量化时,不必与高频、深度学习、AI等这些高深词汇画上等号。一个好的策略它可以是简单的,也可以是复杂的,究其根本,是对底层投资逻辑的考量。2.近在咫尺的量化交易事实上,在我们的身边就有一个简单又好用的量化交易模型——当你打开基金软件,选中基金后,指定每周五定投500元,点击确认按钮,你便已经实现了一个最简单的量化策略。看到这里,你或许会轻笑,但不要小瞧这个用Excel就能实现的量化策略,定投策略在很多时候比我们跟风式的买卖更容易实现稳定的收益,原因如下:a.基金定投具有类似长期储蓄的特点,能积少成多,平摊投资成本,因此定期定额投资可抹平基金净值的高峰和低谷,消除市场的波动性。b.定投由于其量化属性(由规则决定买卖时机),可以规避投资者对进场时机主观判断的影响,大大降低因为主观判断失误(在市场高点买入,市场低点卖出)而造成的巨额损失。因此,定投策略可以很好的弱化定投目标的波动性,以及投资人由于个人情感和信息因素造成的投资点判断失误等问题。也由此可以看出,定投策略是一项十分适合中长线投资的策略,而投资者唯一需要做的,只是选出一项自己中长期看好的标的,即可进行定投操作。(ps:如果大家想从实例角度进一步理解定投策略及其优化的效果,可以在评论区留言,我们将在未来文章中进行进一步展开。)二、如何成为量化交易员通过前文的叙述,我们不难发现「量化」其实并没有大多数人想象的那样遥不可。那么,是不是意味着如果我们想要成为一名量化交易员,其实也没有想象中的那样困难呢?老李这里参考了一位品职学员的亲身经历来简单和大家复盘一下他的转行经验,希望对各位读者有所帮助。这位学员在无编程经验的背景下,花费了4个月左右时间成功从传统金融背景转行进入量化团队,那他是如何做到的呢?(一)第一步:量化交易的养成正如在「量化的定义」中谈及的,大多数人会侧重在「数学模型」四个字上,而忽略了量化的另一个核心要义——交易。在整个量化策略的构建中,我们需要先将交易逻辑转换成数学语言,再通过编程语言等工具实现数学语言到程序的转化。在这三个步骤、两次转化的过程中,其底部,是由扎实的交易逻辑做支撑。交易素养的培养是一个需要时间积累的过程,这也是传统金融从业者转行做量化时的一大优势。而目前大多量化团队也没有做到「全自动化交易」,由于数学模型自身的局限,以及黑天鹅、周期轮动等因素的影响,大部分量化团队还是保持人工+智能的方式进行量化投资,这也更加提升了量化研究员本身对交易的理解。意识到量化的底层逻辑是由什么支撑后,这名学员消除了最开始的竞争焦虑,不再忧心「量化更偏爱程序员」的传言,开始逐步投入自己该做的事情。由于学员属于金融后端的工作,除了基础的金融知识外,还需要补充一些前端交易的内容,于是决定从学习和模仿投资大佬们所分享的交易经验开始入门,在工作和学习编程之余,阅读了一些经典投资传记,并记录和梳理了大量的读书笔记,尝试站在巨人的肩膀上进行快速成长。《巴菲特的第一桶金》作为最出圈的投资者,伟大的投资家沃伦·巴菲特,用37年,22笔投资,赚得了自己的第一个1亿美元。书中再现了这一历程中巴菲特的进化、思考和他的投资路线图。《彼得·林奇的成功投资》作为华尔街最为优秀的股票投资者和证券投资基金经理之一,彼得·林奇在书中分享了他的选股逻辑,告诉普通投资者如何成为股票投资专家。只要仔细观察一下商业的发展趋势,留心一下周围的世界,从购物中心到自己工作的地方,你就可以比专业分析人员更早地发现那些潜在的将会大获成功的公司。《战胜一切市场的人》在本书中,这位传奇的金融天才用清晰简单的语言分享了自己在赌场和市场这两大领域的激动人心的冒险之旅,并分享了他击败庄家、战胜市场的秘诀,比如盯住“5”和“A”两张牌,就能决胜21点;而“凯利公式”“科学预测”和“价格锚点”则是战胜市场的最重要的投资策略。《笑傲股市》本书作者威廉·欧奈尔是华尔街经验最丰富、最成功的资深投资人之一,在这本书中总结了他的选股模式CAN SLIM,也被众多投资者应用于量化领域的实现。美国个人投资者协会将本书中的CAN SLIM方法与彼得·林奇和沃伦·巴菲特的方法进行比较后,于2001年发表独立研究,结果显示CAN SLIM方法每年都可以取得最好和最持续稳定的业绩,是最佳投资系统方案。(二)第二步:从Python上手编程在学习投资交易的同时,该学员开始尝试补齐最大的短板——编程,尝试从网红编程语言Python入手,快速上手量化所需的编程工具。1.Python是学习量化的拦路虎吗?这个对于很多人来说曾经是魔王级难度的关卡,在网红编程语言Python的帮助下,大大降低了我们与编程之间的距离。而对于量化小白而言,除了Python简单易学的特性外,其强大的模块社区支持,也能很好的帮助量化交易员实现大量机器学习算法模型。很多时候,我们不需要花大量的时间研究如何用编程去实现某个算法,而只需要去了解算法,并懂得如何将其应用就行了。相当于为侠客配备好了武器库,而我们只需要专注于练好武功心法即可。Python能够帮助很多量化交易员大大加快了编程效率。2.如何自学Python关于Python的学习,和大多数人一样,他购买了大量的学习资料,也曾询问过我相关内容的推荐,和学习方法,我给了他两方面的建议:第一:在学习前期语法和pandas阶段,尽可能快速的学习和掌握知识,学习过程中可以不求甚解。在大致理解了整体框架和Python能提供的功能后,在后续的实践案例中进行一次次巩固,才能在自学过程中快速又精确的掌握自己最需要的技能。第二:书籍推荐:图灵系列丛书中非常经典的「动物书」系列:语法入门《Python编程 从入门到实践(第二版)》真正针对零基础入门,从安装到环境配置,从基础语法到实践项目,十分适合小白自学使用。数据分析《利用Python进行数据分析(第二版)》Python数据分析中的核心库「Pandas」创始人编写的数据分析书籍,十分详细的讲解了Pandas库的使用,结合了一些数据分析案例,让大家在能更好的在案例实践中掌握Pandas的应用方法。数据爬虫《Python 3 网络爬虫开发实战》在量化研究中,除了策略本身以外,数据也是十分重要的一环,而网络爬虫是我们获取数据的重要手段之一,也是各个领域的数据分析人员(包括量化)十分重要的一大技能。本书中涉及丰富的实战案例,通过多个案例介绍了不同场景下如何实现数据爬取。(三)第三步:走向量化上述三本书大概花费了该学员一个半月的时间,此时的他对于编程也仅仅是入门,还算不上熟练,对于语法和pandas的应用也只能算得上刚刚及格,但正如我之前提到的那样,走向精通的道路可以在量化实战中不断深化。接下来,他开始自己寻找一些量化相关的视频及书籍,尝试学习和掌握经典的量化策略,利用Python构建了属于自己的基础回测框架。在学习经典策略的过程中,开始逐步优化基础框架,尝试利用回测框架进行一些开源研报的策略复现。在这个过程中,开始深入的推敲不同数据类型(如:价量数据、财务数据、资金流数据等)背后的数据逻辑,了解分析师们的分析方法和思路,掌握因子构造的基本方法,尝试对已有策略做优化和迭代。在后期,开始结合投资传记中提炼出来的交易逻辑,做一些独立策略的构建,并将自己的策略研究结果写入简历中开始尝试做一些建立的投递和面试。整个转行跨行的过程中是十分煎熬又充实的,中间学员也曾和我聊过几次,反思自己为了不知能否成功的理想而付出的各种机会成本是否值得,除了对未知领域探索时的恐惧,更多是对前途的迷惘和担忧。很多时候难住我们的可能并不是学习量化本身,而是在选择跨行转行时能否放下现在的所有,而幸运的是,这位学员坚持了下来。量化本身不难,难的在于自己勇敢的迈出第一步。编辑于 2021-08-05 16:06量化量化交易量化研究赞同 47125 条评论分享喜欢收藏申请转载文章被以下专栏收录品职教育CFA&FRM双证备考CFA&FRM知识和备考经验分享,让备考少走
个人做量化交易靠谱吗? - 知乎
个人做量化交易靠谱吗? - 知乎首页知乎知学堂发现等你来答切换模式登录/注册量化程序化交易量化交易个人做量化交易靠谱吗?一直有一个疑问,个人相对于机构很定在设备和信息获取方面必定没有什么优势?那我们为什么要自己量化交易而不是直接去买一个量化基金?求大神们指点迷津显示全部 关注者8,553被浏览4,317,572关注问题写回答邀请回答好问题 4189 条评论分享793 个回答默认排序renew39Up!西北偏北 关注——为了保证大家原来已经阅读过的内容不需要重新阅读,每次更新只做追加不更改原来的内容,如果是刚看到帖子的朋友,建议从后向前阅读。2022年7月15日更新(最后一次更新)时间过的真快,距离上次更新一晃就是两年,期间遇到了不少朋友的关注与讨论,这里就这个帖子做最后一次更新,这次更新主要有三个内容:过去两年作为个人是否还在继续从事这项工作?交易系统是否有新的变化?关于被问到最多的价格摘要,给出一些增补的说明和少量价格摘要图。一些新的心得和为何是最后一次更新。第一个问题,看一张图,下面是当前整个交易系统中备品备件中的CPU:备品备件如果上面这张图感觉像卖洋垃圾的,那么可以看下面这张图:主集群过去两年交易系统最大的变化:从整个系统中剔除了KVM,全部改为基于Docker的微服务。这个改动使得整体系统的灵活性大幅度提升并且在硬件投入产出比方面的到了较好的提升。彻底放弃了关于长线趋势的预测,不是能不能做的问题,而是通过长时间的研究终于明白了长线趋势预测与我做的这件事情的初衷是矛盾的。系统运行稳定,原有的模型已经完成了一牛一熊完整的周期经历和考验,个人认为最初的目的已经基本完成。第二个问题,价格摘要,这是发帖后被询问最多的一个话题,如果仅仅是文字描述是很难表述清晰的,这里补充一组图片和文字,希望对这个问题感兴趣的人有所帮助:价格摘要长什么样子,以当前时间点向前推24个小时BTCUSDT现货交易对为例,样子如下:7月14日-24h BTCUSDT价格摘要叠加同周期的1分钟、5分钟、30分钟K线分别如下:Price Profile + K1MPrice Profile + K5MPrice Profile + K30M上面四张图仅供有个直观的感受,重点说明看下方:K线的生成是对应周期结束时生成(滞后对应周期长度),而价格摘要的生成是:精确到毫秒,即:即时生成。连续的,任意两个价格摘要的X轴坐标值是连续的,间隔必须是0。单个价格摘要一旦生成则不再改变,须保持到下一个价格摘要生成为止。相邻两个价格摘要的Y轴坐标值可连续可不连续,且,大多时候并不连续。上图只是将价格摘要与大家熟悉的K线放在一起便于观察,通过K线是无法生成价格摘要的,哪个级别的K线都不行。蓝色代表看多,红色代表看空,蓝色红色的价格摘要不代表下一个一定是同色(不对行情做出任何颗粒度的预测,这是关键!)。上述说明参考下面的放大图:Price Profile + K5M之前我多次提到的5个价格点位看再放大的下图:最后一组图也是最关键的,价格是在价格摘要中是如何运行的,其中的价格折线计算采样率为50ms,滑点当前模型能够控制在1/10000~9/10000,均值一般在万4,极个别行情剧烈的时候在万10到万40不等,但相对于所在行情的振幅都在收益良好的范围内:有关价格摘要的实例就说这么多,仅仅是点到为止,仅供参考。最后一个问题,量化交易,是一个很特殊的行业,特殊到你在知乎上可以找到成千上万的各种角度的帖子,但是,对不起,找不到任何一篇告诉你如何去“做”的帖子,我写下这个长长的帖子最初的目的就是想试图弥补这个缺憾,但后来,我发现大多数人们对钱的兴趣远大于对技术的热情,大多数人缺乏持之以恒的耐心,甚至对我这种描述都觉得不能理解,产生了志不同道不合的感觉或错觉,所以,就此画个句号,不打算在这里继续花时间了。2020年7月31日更新有关K线和原始数据。可能由于个人对金融领域的不够熟悉,近日在于答友们交流的过程中才发现个人写下这篇回答之初对一些概念的理解是有偏差的:对常用的裸K这个词语有误解,本人是基于原始数据进行分析的,即逐笔或聚合后的逐笔,本回答中所有的内容都是围绕这一前提展开的,但不是裸K,个人对裸K的理解有误,如果在下方的回答或者评论中遇到我提到裸K的描述烦请按照逐笔原始数据来理解。仔细重新审视了一遍回答中的各项内容或思路,这里需要特别指出的是,回答中几乎所有的内容对于基于K线(或其它形式的特征提取后的Bar)的分析都是不适用的,不但不适用,而且可能会给实践者带来不必要的困惑,甚至得出错误的结论。包括交易策略和软件两个方面,例如:如果使用K线,即便是同时监控1000个交易对,很高概率不需要类似配置的硬件设备。例如:如果使用K线,是无法看到我称之为动态周期的形态,或者,有很高的看错几率。例如:软件回放(仿真)是无法通过K线来实现的。例如:滑点对个人策略的影响基本可以忽略不计这个结论如果基于K线数据的话是错误的。等等。我一度认为大家有共识的量化交易大概率默认是基于逐笔数据的,但实际情况的确存在各种差异。本人回答中提到的各种思路可能在仅提供K线数据的各种量化平台上无法尝试或实践。基于K线数据的可视化样例(K线周期:30m)基于原始数据的可视化相同样例(采样聚合周期:50ms)两种不同的数据的可视化叠加与差异比较2020年7月28日 更新如果是刚开始,选择哪个市场比较方便:推荐数字货币这个市场,因为:各大头部交易所都提供相对完备且符合主流的API接口,且,无任何门槛(无资金门槛、无链路门槛、无许可门槛)。其中有一个交易所还提供完备的历史逐笔数据,对于研究量化交易无须购买。至于哪一个交易所,自己百度或者谷歌一下很容易知晓。数字货币的交易是7x24小时的,其连续性提供了相对完善的交易样本的多样性。但也因此缺失了开盘收盘阶段的特殊情况。具备典型意义的交易对:BTCUSDT、ETHUSDT,基于历史数据的分析,BTC的共识度在过去的两年中持续上升从未下降过,故BTCUSDT交易过程多空交锋激烈、干扰信号相对较多,而ETHUSDT相较BTCUSDT特征更为明显一些。或选择24小时成交额在2000万美元以上,1-2个亿美元以下的交易对作为起始的研究对象,但最终样本不要拉了BTCUSDT。数字货币交易买入卖出都需要承担手续费,建议仔细研究各个交易所的费率表及影响到费率的各种条件,存在少量交易所向Maker提供负费率,有这方面策略倾向的可以关注。几乎所有的数字货币交易所都支持:现货(仅支持做多)、交割合约、永续合约、杠杆等特性或细分市场,对于侧重不同类型策略的研究都可以找到适合的对象。数字货币的特殊时间点:凌晨0点、凌晨4点、凌晨5点、上午7点-8点之间,在这些时间点发生行情的概率会相较于其它时间点略微明显,但不代表行情仅在这几个时间点。重要的事情说三遍:不建议参与炒币、不建议参与炒币、不建议参与炒币!研究数字货币或作为资产购买并长期持有主流数字货币是有一定价值共识的,但是不建议在不了解的情况下参与炒币,风险比股市要大不少,特别是不了解基本面或基本面不清晰的AltCoin。不要向本人询问有关行情的信息,本人不做预测和分析也没有这个能力,本人仅仅是个独立宽客,不是股评家。无法访问交易所:请自行百度或谷歌解决方案。建议多少了解一下类似于:区块链、公链、分布式账本、智能合约、挖矿、去中心化金融等基本的概念,虽然不需要从事区块链的开发工作,但对于理解数字货币的基本面还是有帮助的。如何获取数据以及获取什么数据,并开始研究:每个交易所的Website的下方都有API Doc的连接,并且基本每个交易所在GitHub上都有自己的资料库。几乎所有的交易所都支持RESTFUL接口,绝大部分交易都同时提供WebSocket接口,但是不同的交易所对接口的访问频度有不同的限制要求。交易所中的接口是分类的,有行情接口、交易接口、钱包接口等等,如果你需要K线、逐笔、深度、Ticker等市场的常规数据都可以在文档中找到相应的内容。每个交易所通常一种协议会对应一个访问地址(有些交易所不同协议不同IP,有些交易所不同协议复用IP);有些使用的是CDN网络(几乎是固定的几个入口IP),有些使用的是自己的负载均衡体系(数百个IP,并且还会随着时间的推移而变化),总之,确实存在一些方法,让你能够对这些资源的使用更加的Smart,在结果层面总是以完整、最优的方式拿到数据。下面有一些交易所不同协议在提供服务的资源情况作为示例供参考。不推荐通过代理服务器在实盘中使用,稳定性和性能都很糟糕。如果你使用的是本地代理,且目的仅仅是为了对自己的交易系统解耦,请留意有些代理软件对于CONNECT方法默认是不通过443以外的端口的,需要自行添加。否则,有些交易所的WebSocket端口不是默认的443,不添加则无法正常通过本地代理连接。个人认为最有价值的是逐笔数据(有些交易所还提供聚合后的逐笔,这类数据与逐笔在个人实践中未发现差异能够对计算结果带来显著的影响,但可以降低数据获取的次数和总流量),个人如果需要K线或不同级别的K线都是自主生成,但不同偏好的同样可以在交易所获得现成的数据。个人做过多个物理城市多个运营商的链路测试,测试结果不完全一致,基本都能够把到内存延时控制在100ms以内,但最快也未优于20ms,且这个20ms中还存在有少量的误差。部分交易所提供完整的历史逐笔数据,这对于通过逐笔数据研究量化策略来说是一个方便的途径。可以通过交易所提供的库附加自己的少量编码获取,或自行编码获取。某交易所RESTFul服务地址示例某交易所WebSocket服务地址示例另外一个交易所RESTFul服务地址示例说明:上述示例中的Ping延时不等于实际数据传输延时,这是两个概念;WebSocket的Ping延时代表的是Connect连接完成的延时,部分交易所WebSocket Server不可Ping。2020年7月24日 更新几天前回答了这个问题之后,由于个人在回答中列出了许多具体的细节,也由此引发了一些朋友的询问,个人把在互动过程中认为原贴中缺失的内容会以更新的方式逐步补充进来。等未来累计到一定程度之后,个人会全面重新整理一下,并关贴供喜欢这个行业的朋友参考之用。有关成本问题,整件事情剔除个人的时间成本、学习相关知识采购书籍、向专业交易人员请教的社交花费这些软成本之外,还是有一些硬成本的,我大概罗列一下,供参考:什么决定了你的成本:你的目的和主交易思路决定了你的成本,高频交易、中低频量化交易、自动化交易、辅助分析但人工交易等目的与场景不同,需要的装备构成不完全相同。当目的和主交易策略确定下来之后,操作的资金量大小相当高概率会以正相关的形式影响到你的成本,并且这种正相关不一定是线性的。本人的目的是纯自动化交易,下方谈及的成本也都是服务于这个目的及其所需要的交易策略的。场所:目前个人有两个物理地点不同的普通商品房,集群的不同物理节点分别部署在这两个不同的地理位置。可能有朋友会问,为何不使用云?我个人的观点很明确:无论如何不要使用云服务,这件事情与成本无关,除非你在学习和探索过程中。能否主机托管?这取决与你的系统架构,如果你的系统架构能够很容易解耦出来一部分去托管而不是全部,且,你有办法彻底的保护好你的交易策略(如自毁)。我目前举例的这种场所不适合进行高频交易,高频交易的客观条件远不满足。链路:主要的交易场所:2条普通200M的家用宽带,1电信1联通,热备的交易场所:1条普通200M联通。链路需要热备。这三条宽带均摊到每个月的成本大概200元左右,而现在这些运营商都有一些和手机绑定的套餐供选择。计算设备:自己组装的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日,这种极端行情一年也不会有几次,但你得准备着。UPS,两边各有一个,APC的,一边独立使用,另一边通过主Server管理所有设备,只能撑3分钟,主要解决断电时主要现场的保存和安全关机,其它的数据在断电时不保存,丢了就丢了,不碍事。每个650元,两个合计1300元,一次性投入就不算均摊折旧了。网络设备:没有路由器,用的软路由;没有额外的网卡,选主板的时候选的都是4网口或2网口的主板;主交易场所有一个8口的交换机,大概300元。内网全为千兆,考虑未来将分析服务器到桌面升级为万兆(提数速度加快);两个光猫,运营商给的。这部分总计费用很少,也就不计算入成本了。冷备设备:群晖1515+,60T硬盘,主要用来冷备各种数据、代码、分析过程等。设备+盘,大约15000元,这部分计算使用5年,盘也选的5年换新的,按月折旧大约250元。索引节点:购买了1个阿里云VPN(1U的),一次购买了5年,主要看中阿里云永不断电、断网的特性,其上没有放置任何交易系统的服务,仅放置了一个自己写的索引服务,该索引服务主要解决不同物理集群的关键信息索引问题,进出流量都很小,所以购买的按流量计费的带宽(搞笑的是,实际流量太小,月月被抹零,开始存了5元进去,到现在还没花完)。这个VPS的成本可以当做0了,没多少钱。电费:Server的电源配置两台600W两台750W,NAS功率很小,所有设备都是24小时运行,但并非所有设备24小时都是满负荷运行,有个有意思的现象就是:有时候功率表上的数字与行情大盘数字是同节奏的。费用给不出分项的数字,只有一个总数:每月约1000元左右的电费(按经验扣除了家里的其它用电费用)。购买数据:没有这部分成本,数据都是交易系统自己获得的公开数据,没有购买过。备品备件:U2 SSDx2(1500),内存条x10(4500),HDD硬盘X3(4000),独立PCIE千兆网卡x2(300),合计约10000元。按3年折旧,每月约300元。为什么要备这么多内存条,因为:1)洋垃圾买的多了,难免遇到有问题的,并非所有的情况都可以换货或者来得及换货。2)我所在城市比较潮湿,有一定几率遇到金手指氧化的情况,定期维护的主要内容之一就是清理内存条的金手指。暂时想到的就是这么多,如果有遗漏,以后再补充,以上整个算下来大概费用是:4950元/月,如果所有3年折旧的按5年折旧计算,费用约3500元/月。所有的这些费用的前提是一切都在自己家里完成,个人计划未来能够自己建一个小小型的机房,解决好温度、湿度、用电之类的设备管理问题。这个是目前个人的状态,只要你的交易系统和交易策略可以,去Cover这个成本还是相当容易的。当然,如果刚开始,不需要折腾这么多,最好是你意识到缺什么的时候再采购什么,上述内容仅仅用来做一个参照。有关动态周期,回答作出后有关回答中提到的动态周期是询问和争议最多的一个词语,我承认这个词语是我自己创造的,因为我找不到一个更合适的词汇来描述这种识别结果,但这个词汇的确带来了不必要的无解,这里重新梳理一下,动态周期:它不是指数据的采样周期,不是指数据的计算周期,不是指特征提取的数据范围——即:不是一个Bar的概念。它指的是市场交易过程中的一个冷热周期,长短无法指定。在我的交易系统里面没有Bar的概念,因为个人认为无论怎么设定Bar的大小都不能满足交易机会发现及时性的诉求。交易系统会实时计算动态周期,但是不会实时预测动态周期,动态周期的计算结果是非常精确的,这种非常精确的误差仅依赖于事前设定的参数,最高误差可以等于1ms,我目前在用的是50ms。但是,这个动态周期结束与否的信号是滞后产生的,这种滞后在不同周期里面滞后的大小也不相同,这也是个人说无法预测的原因。为了弥补这种滞后,才叠加了价格摘要的预测。两种方法合在一起,其实说明的是一个简单的逻辑:市场是不可预测的,我们唯一能做的就是无限逼近,让当下对趋势判定的结论与真实趋势相一致的时间百分比尽可能的高,然后选择中段部分进行交易,在两头部分止盈或止损。有关软件复杂度的必要性,和我之前遇到或预计的差不多,还是有蛮多的朋友不理解为何一个个人金融交易系统要把软件部分做的如此复杂,我相信这是一个认知问题,截止到目前个人完成的软件部分差不多都是被倒逼出来的,并非主观臆想出来的,并且也庆幸熬过了最难的阶段。对于这个话题我相信有相同经历的人一定会有相同的感受,而通过文字,个人觉的能做的就是多举几个例子:目的不同,产生的对软件结构的要求自然不同,目的是否是全自动化交易会是软件结构的一个很大的区别,在知乎上有关量化交易的帖子里面看到一位同行描述自己踩过的坑:因为软件的一个Bug,让在15分钟内亏损了30万(这个帖子还在,可以自行查找,我这里就不贴链接了)。在我看来,这不是编程是否仔细的问题,这是软件结构的问题,看上去复杂的软件结构的目的就是让每一个部分的边界十分清晰(解耦),只有让每一个部分的职责非常专注和有限的时候,Bug才是可以受控的,否则——很难。对纯自动化而言,交易策略、仓位管理、风控策略,所有这些看上去高大上的名词在Bug面前,一文不值。当然,良好的软件结构设计不仅仅在于控制软件的质量,还在软件的延展性、灵活性、鲁棒性、可维护性上有巨大的不可见收益。不晓得其它朋友如何解决滑点问题的?当然,滑点与策略有关,不同策略对滑点诉求和敏感程度不同,但是我见到但凡谈到量化交易,多多少少都会涉及这个话题。我不太清楚其它朋友或者机构测试滑点是用历史数据测试?还是实盘模拟测试?还是实盘交易测试?历史数据直接挂载肯定无法测出来滑点的大小;有些交易所提供模拟成交测试接口——但模拟成交与真实成交的差异就是模拟成交实际上并未成交;实盘交易测试,这个测滑点需要花费成本吧?而且滑点的测试结果与你的下单数量、下单密度和单一订单大小也有关系,我不晓得这个成本需要花多少钱,但至少在我觉得或许有更好的方式——这就是实盘回放这个模块存在的原因,它能够在家里面完全仿真实盘的发生过程,来验证或解决滑点的问题。虽然结论是目前的策略对滑点不敏感,但是我没有足够的验证我怎么能确认这个结论从而放心让程序去替我交易呢?这个例子其实就是有那么一些时候,有那么一些成本,你花了没有意义,但是你不花可能真不行。不晓得别人如何定义样本的,个人觉得仅仅是交易对+时间维度的样本定义是不足的,在很多时候解决一个策略的某个问题往往需要有高针对性的大量样本,且不要有无关样本的干扰。例如:测试做多时策略对暴跌的闪避能力与闪避成本平衡点,如果你没有大量的暴跌样本,或不能够快速从一个未知样本中提取到全体的暴跌样本切片,这个测试就很快速难完成,闪避成本的平衡点也很难找到。验证成本,策略研究,特别是包含有各种自定义指标的策略研究,往往你的想法的第一个门槛就是如何验证、有没有机会验证、整个验证从想法产生到得到结果需要花费多长时间,两个背景相同经验相同智商相同的分析员有了相同的想法时,差异可能仅仅在验证时间的长短上了。一个良好的软件结构能够给你提供尽可能短的验证周期,从而让你的想法早日变为现实。例如:个人觉得基于Bar的BOLL在Bar的时间范围内的变化我看不到,我想看一下在Bar的时间范围内上下轨是怎么变化的,或者让30分钟的布林带三条轨道全部变成连续的、即时更新的?现有的公开的BOLL计算模式可能就需要一定的调整。当然,这个诉求对有些场景是有价值的,而也有可能没有任何意义,问题就在于有了这个想法之后你手边的工具会支持你去验证这个想法吗而不需要纠结额外的时间开销吗?甚至你可以说这种想法很无聊,但真正有价值的自定义指标往往就是在众多看似无聊的尝试中发现的。延展性,如果你的策略的主要盈利要点来源于普遍撒网、重点捕捞,可能就会对延展性产生特别强烈的苛求,最典型的通俗的例子就是搬砖,但并非只有搬砖有这样的诉求。最近出来一个新的交易所,提供了一种新的交易模式或者服务,一下子流量高的不行,但是对接这个交易所却需要花个十天半个月甚至更长,那还是会有遗憾的。虽然个人完成一整套交易系统的目的不在于卖、不在于合作也不在于承接资金托管,但是总会有一些比较奇葩的情况让你这个系统与外界产生交互,比如你非常好的朋友不要你的交易策略但希望你能给他提供基础的数据服务、你父母问你能不能给他/他们开个账户之类的,等等吧,当然,这些问题仁者见仁,智者见智了。总之:软件设计的合理性是一个无止境的话题,他取决于你的目的、你的时间、你的经验,但个人认为它的重要性不亚于交易策略的研究,因为软件平台其实就是一个工具箱和物料库,不同的工具箱与物料库能够提供给策略研究的可能性与速度差异还是蛮大的。2020年7月23日 更新目的、收益率与交易频度昨天写完之后发给好友给点建议,好友看后建议多解释下什么是自动化交易,这里做个补充:个人花了自认为确实非常大的力气在软件架构设计与实现上,可以说和交易策略上花的时间不相上下,或许这对于一些原本从事金融研究的同行有些不理解。。。。。。这里不得不说下个人认为的量化交易的意义——更多在于一种生活方式的选择。这不是矫情,看完下面的例子或许每个人都有自己的选择,三种生活方式:IT企业高管,或者自己就是企业的老板,一年能有一个一百万或几百万甚至更多的收入,但是可以停下来休息的时间不多。年收入就按200万算。基金经理,或专业交易员,虽然不需要996,但是至少也得做到工作日打开大盘打开工具,收集数据,做出分析,给出一些干预,决定是否要进行交易并执行,最终获得收益。而如果要获得50个点以上的年化收益,可能比这个描述要忙不少。年收入也按200万算。自动化交易软件:开账户、存入资本金(不需要很多)、买电脑、拉网线、开机、启动程序,然后再长达几个月的时间里面都不需要任何干预,你可以去做任何你想做的其它事情,但每个月只有不少于4、5万块钱的收入,一年下来也就50万收入。但一年365天里面至少有350天可以自由支配。如果是你你会选择哪种?我更向往第三种,这也是个人这个交易系统的目标,目前虽不能说一年365天可以休息350天,但实际时间支配能力与这个目标已经不远了。所以,同为量化交易,是否实现稳定的收益取决于交易策略,是否能够实现100%的自动化7x24交易且无须人工干预取决于软件架构+交易策略,个人下面帖子中大量有关软件的描述和解释都是服务于这一目标的。有关收益率,就像前述帖子中的内容描述一样,个人比较隐晦的表达了不愿公开收益率的想法,因为收益率只是个结果对于了解或者探索宽客这个职业没有太大的实际意义,还会带来不必要的争议,削弱帖子中其它内容的重要性,唯一可以说的,据我所知的几个做自动化的独立宽客,是不会拿年化这样的指标来衡量收益的,基本都用日收益率或者更短周期。个人发这个帖子也是希望和热爱喜欢宽客这个身份的人分享交流,只关心收益率的朋友可以直接略过。有关交易频度,本人的这个交易策略属于嗜血性比较强的策略,偏好振幅比较大的行情,而不在乎是上涨行情还是下跌行情,如果振幅连续很弱,策略触发交易信号的频度也会极低,大致频度可以描述为:监控3个交易所,合计1000多个交易对,但标准意义上的并发活跃交易对在单个瞬间并不多,平均下来每个交易所大致8-10个,合计就是25-30个瞬间活跃交易对,交易笔数不同行情不同交易对差异非常大,最小某交易对单日1-2笔,最大某交易对单日3000笔左后,均值在80笔/活跃交易对/24小时(正常行情,不热不冷)。2020年7月22日 原贴的补充说明看了一下其它的帖子,认为还是需要明确一下本人后面所谈及的内容:本人做的交易策略的核心:套利:不是套利,不管是搬砖还是三角套利,都不是。高频:不是高频,延时在100ms以内就可以接受。低频:但也不是纯粹的中低频,交易的周期完全依赖于动态周期,或长或短,完全跟随市场。重心:策略的重心主要在动态周期和价格预测为主,趋势预测为辅。滑点:滑点对这个策略产生的影响,与期望值比较,以订单计算小于5%,以实际收益计算与预期收益偏离度小于2%,后来就不管滑点这个事情了。思路:个人策略中认为最重要的一点:如果我打算揣着10万元去挣1万元,我不会花时间去研究一只绩优股并等待他上涨10%。我会同时监控1000只股票,并且选择在恰当的但十分确定的时机买入其中的100只(时间上有差异,不是同时,但也相距不算远,但是单只买入时机需要精确到毫秒),每只买1000元,每只每次只挣不少于10元(不是挣了10元就卖,而是最少挣10元),然后把这个过程重复不超过10次。或者,认为每次挣10元太难,那每次只挣1元,把这个过程重复100次。而真实的情况每次挣的大多不止1元,5块8块的情况还是挺多的,偶尔也有二十三十的情况。自动化:已经完整实现纯自动化交易,7x24小时(数字货币无休市),集群启动后无须人工干预,停机维护周期不短于60天1次,每次需要差不多1天时间。心态:没有心态,自动化交易的目的就是彻底剔除人和人性在交易中的因素,100%剔除,既然都剔除了,就没有啥心态可言了。手续费:手续费和策略密切相关,务必重视。资金周转率和手续费是负相关的,想尽办法提升资金周转率等同于打压手续费等同于提升收益率,不要小看这个哦。2020年7月22日 原贴先说个人几点比较深刻的感触:1)除了技术开发之外,软件建模、数学、物理三个方面都很重要甚至更重要。这里,特别想建议大家重视软件建模能力,或许大多数认为开发一套量化交易系统或开发一套可盈利的交易策略很难,实际上开发一套具备支持策略持续改进的策略建模系统或许更难。而交易策略能否持续改进有可能是量变到质变的一个要素。2)相信我,除非你在早期的学习、了解、尝试阶段,否则不建议使用现有的任何与数据采集、指标计算相关的库,因为它们终将成为你能够实现稳定收益路上的一个障碍。依据自己对系统和数据的理解逐步动手开始写,慢慢积累最终形成适合自己策略的完整系统,这事没什么捷径。举个例子:看到一种有关行情分析的说法,叫:脱离周期谈趋势都是耍流氓。而个人认为,所谓人为确定的周期才是耍流氓,5分钟?15分钟?4小时级别?120天均线。个人认为都是一厢情愿,市场中存在周期,但周期是动态的,虽然有不少的散户或者庄家会参考K线,但这改变不了周期是动态的这个结论,所以:根据今天日线是否收阳或收阴做出的任何判断与扔硬币没多大区别,所以:之所以想尽一切办法追求纳秒级的延时或尽可能减少滑点带来的影响无非都是对周期的动态规律未能量化的折衷。3)即便是一个支持双向T+0交易的市场,做多和做空并不一样,不是把图表颠倒过来看的关系,在基于数据的行为分析中,做多和做空十分不同,这种不同的量化认知有助于对周期的动态规律予以界定。4)同样,如果你认为周期是动态的,那么,市场中只存在两种行情:上涨和下跌,不存在横盘这种行情,如果进一步,可以分为:值得介入的上涨和下跌周期,以及,不值得介入的上涨和下跌周期。因为基于动态周期的考量,所谓的横盘,价格必须是一条直线,这种情况除了停止交易外不可能存在。5)最后,略微拗口,但个人认为有意义:忘掉价格,如果在整个交易策略的影响因子中还能够见到价格这个因素,这对于分辨交易行为产生的数据在时间流逝过程中的本质来说是一个障碍。同样,忘掉价格需要你的交易系统支持,也就是在软件建模过程中解决的问题。一个交易策略,不论应用在股票、数字货币、期货还是其它市场,需要调整的应该是你交易系统或策略中的一些特有、独有的参数,而不是剔除交易策略之后仍然存在的因素(例如价格、成交量等)。再说说个人具体的实践自主开发一套完整的量化交易系统并在实际交易中,先后历时近30个月(含策略),代码行数累计接近未超过20万(不含交易策略,策略只有一个,目前演进到第41个版本,每个版本非框架代码大概只有500-1000行)左右,仅挑一些特别的地方说说:工具及性能用的啥工具?都是常见工具:python、redis、mysql、django。大致就这些。个人做了20多年的软件,认为完全不需要担心python的胜任能力问题,运行效率太低?不存在的。我认为抛开交易策略,仅谈基础架构的话,软件建模的重要性大概能占到60%,而工具本身有个10%就差不多了,今天很多时候性能的问题大多都可以通过设计来解决,而一个顺手的工具在这种时候可能更重要,你顺手啥就用啥,个人基本使用过大部分市面的编程语言,目前顺手Python就用了python。举个例子吧,用Python写了一个分布式的socket服务,使用了python自带的socket库,在其上进行了进一步的封装,实现了集群和节点之间的点对点通信、支持多端口、多线程、拆包拼包、极端情况下仍然无粘包,总之做简单的消息队列同样在本地网络速度优于redis5的速度并且一样可以实时持久化(注意:并非说这个东西优于Redis,Redis是一个通用中间件,我做的这个只是服务于我自己的集群,并非商品或产品,这还是两个概念,只是说在我的这个集群的需求中我定制化开发了一套更优化的组件),就如同即便有了这个组件,在集群的另外一些场景我依然会选择redis一样,各自定位和侧重不同。交易策略的性能?也不存在的,交易策略的性能更不依赖是python还是C++了,量化交易往往计算的是一个时间序列的结果,如果时间序列是固定的(例如:8:00:00~9:00:00),那python和C++确实有区别,但如果时间序列的范围是实时推移的,性能主要依赖算法设计的问题,哪怕是求一个简单的SMA,能不能在动态时间序列范围的前提下把时间复杂度降低至O(1)才是本质区别,而不是工具,实际实践中使用了大量的空间换时间的做法,来解决性能的需求。使用django的原因是,整个集群中有大量的model、参数、任务需要管理和配置(看了一下,仅配置项大概有几百项),django,快,搭起来快,改起来快,结构清晰,可维护性好。需要注意的是:django只能用来做管理,django中的对象与交易节点中的对象不是一回事,不能图省事直接用django中的对象在交易节点中计算,甚至交易节点为了性能的极值,连对象都不存在。mysql,做数据持久化,虽然整个系统没有什么东西是需要用mysql进行分析的,但数据一旦关系化之后在对数据的使用上、以及利用数据的软件设计上带来的便利很多的。慢?不存在的!目前mysql大小大约在1.5T磁盘容量,跑在一个虚拟机里面,最大单表3.3亿条记录,查询任意间隔(间隔最小步长:毫秒,为什么要这样小单位的精度?例如:基于标签的样本分组与自动切片——提取2019年的某交易对的所有暴跌切片)1小时的数据,毫秒返回,任意间隔1天的数据也就是几百毫秒,一年的逐笔数据,仅受网络吞吐的影响,mysql本身的性能影响不大,完全在可接受范围内。当然,你也可以使用其它的持久化方式,但是对于精确化查询和调阅,真没有关系数据库用着顺手。如果说需要注意的话,那就是mysql建库之前一定要考虑周全,做好设计,分库分表分区一个都不能少,my.cnf该调的参数应仔细调,该买的内存不要省,磁盘如果还在用HDD或者SATA的SSD那还是得换,如果有经验,做好索引字段的编码工作,好的索引编码对提高查询速度有额外的功效。基础架构:支持对不同市场、不同交易所的快速对接,只要对方提供常用标准协议,整个对接过程1-7天可完成,数字货币所有交易所都可以在1天内完成,对接完成的标准就是可以开始交易。系统也可以针对其他市场、交易所增加新的协议。支持服务端限频类接口的限制规则自动测算及自动适应,并支持对请求次数的动态分配。简单说来,该快的时候快,该慢的时候慢,该快的交易对快,该慢的交易对慢,不超标,不浪费。整个系统不需要DNS,完全自主自动管理目标交易所的访问资源并作出最优选择。(数字货币独特需求)同时监控交易对数量仅受带宽限制,目前同时监控3个数字货币交易所,近1000交易对的逐笔与深度信息(不需要ticker)。交易对上架、下架、暂停交易、恢复交易自动化(几乎无发现延迟)。支持多集群部署与统一管理,同一个集群内的所有节点(管理、采集、计算、交易、智能链路、数据服务、缓存、持久化、备份)可以任意无限扩展、热插拔、异地部署、多份部署,其中多份部署能够最大限度的解决数据完整性与数据及时性的矛盾。支持交易对漂移。集群状态和交易行为全部服务化:即,如果希望开发自己的展示界面、移动端、与其它系统驳接十分方便,但是由于这个系统仅仅个人自用,暂时没有做太多移动端的活。自我保护:支持交易策略自毁保护(任何非授权的主机访问或干预,包括断电、断网、U盘插入、机箱开启、异常登录等均会导致交易策略自毁并由异地无缝接管)。实时持久化(数据落库延时可调,最快小于1秒),且直接持久化入关系数据库。支持一键部署:一个空白的CentOS,跑个脚本就能把集群的各种节点、各种组件、各种环境与数据的初始化完全构建起来,同时,跑的这个脚本也是系统自动生成的。不要小看这个功能,能够节省下来大量的时间供你去研究交易策略。交易策略:详尽的策略要点应该不会有交流的机会,这里只捡一些比较特别的说说。1.没有K线、没有SMA、没有EMA、没有RSI、没有MACD、没有BOLL,所有我能记得住名字的指标都是最终被我抛弃的指标,我不是搞金融出身的,最开始和大多数人一样去了解这些,后来抛弃的原因只有一个:给人看的东西不适合给计算机看。这是我的感觉,也许因为我对这些指标的了解还不到位,我也相信有人利用这些指标达到了很好的效果,但是我确实没能依赖这些指标收获有价值的结果。(这一观点也与我的交易策略有关,我的交易策略设计的前提是用确定的输入得到精确的输出,我认为慢牛、瀑布、有效突破这些描述必须找到有效且反复可用的模型能够定义,否则对计算机而言就是不存在的)2.可调且可动态调整的计算采样率,最小采样率为1笔(数字货币中个人经历的最大并发1毫秒2592笔成交记录,发生在2019年6月27日凌晨4点半某数字货币交易所,时间戳1561581308818,成交金额6780125.08874536美元),支持按时间、按笔数、按手数或组合的计算采样模式。3.动态周期自动识别,基于资金池的动态周期自匹配。动态周期前面说过了,这里稍微说一下资金池与动态周期有啥关系:动态周期并不存在一个固定的大小,小到可以很小,一个周期最小大概只有几秒,大到可以很大,几个小时,几天,理论上甚至可以达到几周。动态周期越小,周期内盘面支持的资金容量越小,资金周转率越快;反之,周期越大,周期内盘面支持的资金容量越大,资金周转率越慢。周期的大小不是我或者我的交易策略决定的,周期的大小是由那一段时间市场里面所有参与交易的庄家、机构、散户们的行为共同决定的。4.分层价格预测:预测当前周期结束时的价格摘要(此处不预测涨跌,不预测发生的时间,不知道周期啥时候会结束),一般会根据算法给出1-5个摘要并按照优先级排好顺序,每个摘要有一组用来捕捉的参数,认定价格与摘要是否匹配需要一个特定的方法,而不是简单的比较相等或大小,一旦认定匹配则会触发交易行为,摘要最多5个,结果一定是命中5个摘要中的某一个。为什么一定会命中5个中的一个,因为周期是动态的,周期拉长就会产生新的价格摘要,再拉长,会再产生。那价格摘要会不会无休止的发散下去?这个问题我回答不了,大概类似于苹果的股价会不会永远没有尽头的涨下去这种属性的问题?5.趋势预测:对趋势的定义严格与动态周期挂钩(周期结束点就是趋势反转点,这里不存在反转和反弹的文字区别,反转的意思就是相反方向)、与资金容量挂钩,没有横盘这个趋势,只有涨跌两。这里的趋势以及趋势的变化不会产生交易信号,或者说交易信号不直接依赖趋势,趋势影响的是价格预测方法,价格摘要和摘要匹配认定结果出发交易信号。6.实时仓位管理、动态成本计算等,这个没什么新鲜的,对于我的策略必要但不是很重要,所以做的结果也没什么特色。7.策略启动需要3-5分钟的预热时间以及约1分钟的步调协调时间,这是个问题,但目前的策略只能缩短这项时间,无法回避。策略的在线升级如果不需要重新预热则无缝升级,如果需要重新预热则须重复预热过程。8.支持对一只股票或一个交易对当前所处的市场周期做出精确的定义:我不晓得是否有同类的或相似的描述,这里的市场周期指的是:同一只股票即便是达到某个历史价位所说明的问题不一定一致,我这里对市场周期的定义大致分为初创期、上升期、稳定期和退出期,与一个公司的生存周期基本相符,但定义这个周期的目的不在于去研究一个公司处于哪个周期,而是用大量验证后的特征描述当前周期后,优化交易策略的偏宏观参数,这个参数能够指导交易策略的利润诉求表现的更加激进、保守以及无利润诉求。该项工作目前仅在研究和调试中,尚未实际投入使用。分析回测1.支持策略的定义、调试、回测、评估、可视化、比较、在线发布、在线回滚(注意:是在线发布,就是直接发布到计算节点上去并且立即替换,支持这个能力目的并非在于要频繁发布,而是在于不停机,尽最大努力减少停机)。2.支持基于行为的标签化的样本分组与自动切片提取与自动持续追加,例如:暴涨、暴跌、诱多、诱空、画门、阴跌、慢牛、绝对底、绝对顶等标签。但需要注意的是,这里的标签和标签分组后的样本不是人工定义的,而是通过定义的特征自动切片并选取的,且,选择了足够数量的样本结果人工复核确认过特征有效性。换句话说,机器能够事前判断、事中处置的前提首先是能够事后认定。既然已经支持了基于行为标签的分类样本定义,肯定支持基于行为的批量样本回测与评估。(注:绝对顶或者绝对底是我自己的叫法,它基于效果的判断标准就是满仓和平仓一定不会错的位置,但由于这样的认定结果同样依赖于动态周期,所以虽然有这样的标签,但实际符合结果的认定次数并不多,而且这里的绝对顶和绝对底都有衰减时间,一定会获得利润但也一定无法获得最大利润。与通常股评里面的绝对顶和绝对底不是一回事)3.支持任何分析行为的过程自动纪录(使用到的样本、使用到的策略、具体的样本和策略内容、使用了啥指标、指标值、指标代码片段、跑的结果如何等等)。说到底,策略最终最有价值的是通过一系列艰苦的探索和实践留存下来的一些常量(当然,前提是先得有模型),而在探索过程中,有价值的常量不一定是当前这个,也不一定是下一个,而有很高概率是上一个、上上一个、上上上。。。。一个。4.高性能:50ms的计算采样率算1个交易对1年的数据(约1亿条),大概一顿饭的功夫(不超过60分钟,不同交易对有差异),如果把计算采样率提高到30s,大概只需要不到20分钟,50ms连续3日数据大概1-2分钟。当然,分析的性能与策略本身有很大的关系,这里是说除了策略之外,在软件架构上同样有很大的提升空间。5.支持实盘回放:我说的不是回测,我说的是实盘回放,要求成交顺序、间隔、延时与实盘在逐笔上完全一致,算是一个比较简单的仿真。如果你对滑点没有信心,实盘回放的结果和实盘交易的结果被证明几乎没有误差。那,实盘回放并未包含当时在深度里并未成交的挂单啊?不影响,或者说至少在我的交易策略里面不考虑这个,我只考虑能够确定的内容,所有我确定不了的内容都不会成为分析的对象,具体到这个问题,那就是如何精细化测算当前以及更长时间的资金容量问题。冰山订单你在深度里面看不到,但是在交易结果里面却是存在的。其它建议:1.用机器学习或相关技术来分析股票或者金融衍生品:我不建议这么做!我对机器学习没有偏见,这项技术的用武之地也比比皆是。不建议的原因是:对交易趋势(或价格或其它交易策略的主要内容)的分析最最重要的个人认为不一定是分析方法,最最重要的是你分析的对象,意思就是,生产工具重要但不是最重要的,生产资料才是。可能有人会说,生产资料不就是那些数据吗?价格?成交量?深度?时间?。。。。。个人认为,还真不是。。。一个数据是数据,但是一串数据讲出来的或许是一个故事,而不是数据本身。所以,使用机器学习当你把数据扔进去使用某种方法开始跑的时候你就已经假定了你扔进去的数据是有相关性的,至少你认为你手中掌握的十来种数据一定能够支撑你设定的分析目标的,但如果这个假定不成立呢?再或者,如果一定要使用机器学习,那也应该是已经解决了成分分析中的成分问题,这部分个人感觉目前似乎只有靠人。举一个例子:或许有人认为交易行为存在一个密度的指标、且其是可以被量化的、且其在某个方面是具备解释意义的,而另外一些人认为不存在这样的指标或这样的指标无意义————不论观点是啥,有一点是明确的:交易密度这样的指标在交易所提供的数据中是不会有的,甚至你我对交易密度的定义都有很大的差异。同样,现实生活中惯性等于质量乘以加速度,那么股价的波动有惯性吗?惯性该如何描述呢?再比如,你确定我们对交易烈度的定义一致吗,你确定我们认为交易烈度的可用价值一致吗?真实波幅(ATR)真的能反映价格的真实波动幅度吗?在我的策略里面认为不可以,在其它一些交易员的策略里面被证明可以。所以,个人认为弄清楚生产资料后,用不用机器学习都可以,个人有个人的偏好。或者说,机器学习能够告诉我隐藏在数据中的规律,但我并不太指望机器学习能够告诉我隐藏在数据中的数据。想到哪写到哪写了一大堆,可能会有人问目前实际效果如何?个人对策略的执行效果是比较满意的,最直接的感受就是如果做量化交易,衡量收益水平,就不应该再用”年化“这个指标了,太慢了。但又不可能去过多谈及有关交易策略的内容,所以我也不太清楚写这特帖子有啥意义,大伙权当看个热闹,或者对这个行当感兴趣的朋友直观感受一下大致的范围、难度以及工作量,不用当真,纯属兴趣而产生的交流,不是广告,不是入行建议,系统不卖不租也没有合作的意愿,不用推荐不用点赞也不用转发。斟酌半天,选了一些便于”大致看看“的截图,见谅:一个典型的正在运行的集群(D01,开发与分析集群,142与本帖无关:-)持久化数据库磁盘占用集群的控制台这个集群的主机:2U48T 512GRAM 19.2THDD+800G U2.SSD最后,用一张图来说明如何解决Python和C++的原生性能差异,娱乐一下:DDR3 都是单条64G的,主频不需要高,但延时要低。编辑于 2022-07-14 21:23赞同 799229 条评论分享收藏喜欢收起泛程序员天津大学 结构工程博士 关注机构的优势:?-> 有钱 -> 买数据 -> 有人 -> 有设备 -> 有钱 -> ...(->代表因果)--- 更9 机构对个人的一个巨大优势是:风控。倒不是说方法论的问题,而是强制性的问题。一般机构管理的是客户的资产,需要对客户负责。因此,你不能跟你的客户说,今年的 PnL 是 100%,第二年是-80% 这样,机构需要根据客户可以承受的风险指定严格的风险管理原则,保证基金不会出现巨额亏损。而这,这是大部分散户失败出场的主要原因,因为没有第三方的压力,风控基本靠拍脑袋,很大概率赔个精光。。。。无法再次入市。这一点也要注意,对于散户和机构都一样,保住本金才是第一位,然后才是盈利能力。--- 原答案和更新 1 - 8最后忠告:怎么玩都行,但是杠杆千万别过2.0. (日内不算)不懂的产品别碰多样性才是免费的午餐---- 更8我看挺多朋友感兴趣的,不想耽误人。首先,量化交易不能让你暴富,就像其他的行业一样,暴富都是小概率事件(比如15年你买了10000个比特币之类的事情)。然后,量化可以让你更加安稳的获得合理的投资回报。我说了先做到夏普1.2,再谈其他。最后,量化对我来说更多是享受操作计算机带来的快乐,收益这种。。谁知道呢?但是,当下的享受和知识的积累是实实在在的当下的感受。最最后,分享知识也让我快乐,所以我写这些帖子。---- 更7来点实在的,给你一个夏普1.2的美股策略,只操作SPY和TLT,三个月操作一次。如果你能交易全球ETF,同样的框架夏普可以到1.5。这不是什么秘密,这就是市场,你得先跟市场跑的一样快,再想赚大钱,先会走路,在学跑步。想看投资框架的可以参考这个系列:想看开源框架的参考这里:(刚开始玩可以用框架试一试,但是最后害得自己弄,别人的代码用这不是很放心,有功夫检查,还不如自己写,毕竟不需要很多功能。。)Flink的搭建在这里:---- 更6对于实时性不敏感的策略,再更一个散户白嫖AWS的信息。我有几个日内策略(1分钟蜡烛图)的策略是用AWS Lambda + DynamoDB + S3 + CloudWatch 实现的。因为aws每个月都有一定的免费额度,特别是lambda额度很大。。那几个策略就是白用的状态。因为是日内1分钟策略,每天的Lambda运算量只有几千秒,远远达不到aws收费限额。。。但是lambda省心,不用维护不用停机。。就这么省心。DynamoDB用来维护状态,因为lambda是无状态的,也是免费用。S3用来维护一些历史数据,定期清理,一个月0.2美金。。。就这样跑了大半年,没有出过任何问题。。日常交易、警报直接通过lambda发邮件过来。。。挺舒心的。。。量化可以高大上,也可以就是几个function。。。看你什么心态,想怎么玩。。。AWS Lambda---- 更5 题主问题好像改了:为什么不直接买量化基金呢?其实,说实话,图省心夏普大于1.0(已经超越),我在原答案已经说了,很简单。几乎不需要操作,写一个脚本半年跑一次足以,交易一次足以。很多所谓量化基金长期的表现并不好,外加管理费其实挺坑的,然后夏普还不一定能过1.0长期看。现在ETF这么多,做个全球配置,简单的波动率调整,我实盘这几年夏普1.4,ETF的费核算下来大概一年18bps。。你买个不靠谱的所谓量化基金,一年收你1%费,表现跟个脚本差不多,你难受吗?我找了点数据看看对冲基金的平均performance,你看亮眼吗?话说回来,我真有厉害的策略,会卖给散户吗?绝对不会。当然业界有厉害极了的基金,但是人家的“印钞机”会放出来给大家印钱?你指望用那1%的管理费买到印钞机?不可能。所以如果一般回报,不如自己做作,也不需要投入什么,ETF + Excel 就能搞定了。。。一些经验放在专栏里面了:https://www.zhihu.com/column/gongchengsuixiang那为啥还自己做复杂的事情呢?1、确实有利可图,但是需要努力和辛苦,传说中的辛苦钱。2、感兴趣,我就是喜欢计算机,享受代码处理数据的感觉。。做着玩。做日内的资本仅仅是愿意拿出来赌博的部分。。大部分资产我更愿意开启 夏普1.4 + 房子 + 省心 模式。做个日内策略,回测夏普 > 4,拿出来跑跑,一个Bug + 厄运 亏回解放前,因为没有那么多精力。你敢投大额资金进去吗?尽管如此,我还是愿意玩,因为还有第二点。---- 更4在更点基础设施方面的。Cloud我用的是Digital Ocean的,因为比较便宜。平时用来收集数据的是两台基本款的Droplet,主要用来记录几个主要交易所的,三大货币的订单部信息和trade信息。Redis做缓存和Message Queue(Kafka有点overkill了,而且慢)。日内数据直接Source到AWS S3做持久化。数据分析一般是本地的做,不能fit内存的数据,用Dask;能fit的用Pandas。交易部分是自己的写的一个简陋的框架,没用开源库是因为功能太丰富了,自己不是很熟的代码不是很敢用。代码基本就是围绕redis的带状态的stream部件。最近也在探索flink在这方面的应用,我就用我的树莓派搞了个计算集群哈哈哈(只有两个其实)。也挺好玩的,这两个树莓pai配合redis每秒可以处理500来个事件。版本控制 Git+Github,镜像管理用的 Docker + Docker Swarm + Portioner (k8s似乎也不错,但是我没太用过); Python + C (主要是用Cython) 编程。数据服务器S3的客户端树莓派的Flink集群哈哈Portioner实在跑不动的分析,我就临时组aws的EC2组一个spark集群算一下(用flintrock很方便),算完就扔掉集群。也花不了多少钱。临时spark集群---- 更3 我再更点。。Crypto日内怎么玩。Hint:trade 数据和L2、L3 Orderbook 数据。想盈利,必须要预测价格,别整玄乎的,不预测没法交易。那么问一个问题:是什么导致价格变化?其实对于Orderbook为中心的交易所,唯一的原因就是Market Order出现了,或者说Limit Order穿越了Spread,只有这样交易价格才会发生变化。没有Market Order 价格不会发生变化。而价格变化的幅度与Orderbook紧密相关。Book的深度(L2就够了)。因此,价格变化就是Market Order和Book的一个互动,当然,Book的Dynamic是随机过程,Market Order的到来也是,他们的互动就变得很有意思。。如果你有L3 Book,根据不同的交易所,你可以做更有意思的事情!比如发现Spoofing或者其他trading bot,这种情况在Crypto里面太多了!发现后呢。。。你就可以收割或者利用他们。。。前提是你比他们厉害一点(策略或者速度)所以,Trade(包含成交方向)和 Book 在交易中就是所谓的Master Data,原始数据。其他的数据都可以推导,比如Bar、Vol,比如价格预测。。。。---- 更 2真自己搞一搞量化的话,建议搞数字货币日内。因为门槛低。门槛低在哪里?首先数据,非常容易获得,从L3 Order Book 到 分钟级别聚合数据,都是免费获得的。其次是硬件和软件,硬件的话AWS随便搞几个EC2,成本可以控制到100美金以下每个月(交易股票的话,光数据就不止这个数了);软件方面网上各种开源基础设置,从数据到交易,想搞搞大型的分析,可以直接上Flink这类。这样流处理配置,可以把延迟控制在200ms以内,这个延迟已经可以支持很多类型的策略了。最后就是交易平台了,随便就能开户。。---- 更 1有朋友感兴趣,我再多唠叨几句。个人做量化,首先要摆正心态。很多人进到这行直接就是奔着财务自由,一年翻倍的心态。这种心态是万万不可的,且不说量化有没有这个能量,这种心态叫:浮躁,什么事情都做不好。心态调整好后,你先做到击败60-40投资组合,即10年夏普过1.0.。然后考虑更好的策略。为什么要这样?你实盘夏普超过1后,通常已经有比较好的框架了:包括资产配置和风险控制。有了框架,可以防止犯错误,比如高杠杆等等。而且做到夏普过1,已经旱涝保收了,说实话,已经超过许多所谓“专家”了。夏普1的意思就是长期看,你每承担的1分风险,换得了1分回报,很公平。在这之前,没必要投资研究更好的回测系统和交易系统。最后,就是如何发挥计算机的优势。计算机对于人有3个优势:1. 处理大量的信息 2. 快速的处理大量的信息 3.不停的快速的处理大量信息。这样就出现了量化的几个方向(或者可以融合)。计算机可以帮你同时交易100只以上的股票,或者可以帮你在1秒的时间交易多个标的物,或者可以在大多数人都在睡觉的时候,帮你识别模式,交易,这就是你的edge(优势),在你的风险框架内,实现这样的系统和策略,进一步提升夏普即可。但是,不管你做什么策略,不要突破自己的资产配置框架、风控框架。不好的行为包括但不限于:单一资产或策略风险敞口超过限值(根据自己的情况,对于我这个数是 10 % )开仓自己不熟悉的产品地区风险敞口超过限值(比如美元敞口过 30% 等等)---- 原答案一般机构都做上千种资产,个股、期货、期权等等,上百个策略一起跑,这样才能分摊风险。这一点没有好的IT 和 人维护,做不了。你能想象光维护几千支股票的ticker mapping和数据有多蛋疼吗?你怎么进行成千上万的模拟?然后机构会花钱买很多数据,不仅仅是公开数据,还有非公开数据(自己感受一下,一般一个数据至少30万人民币一年,贵的100万人民币一年),还有的公司甚至花钱自己搜集数据。说白了,巧妇难为无米之炊,没有数据做不了“这样”的量化交易。那个人做量化还靠谱吗?可以做。但是你要知道你不是机构,你处理数据和接触数据的能力都很有限,你的IT部门只有你自己,你想玩高频?别想,个人玩不了。如果你想保证年化~10%,夏普>1.0,这种保守的交易,很简单(可以看我的专栏: 量化交易)如果你想搞一些高级的,比如夏普~1.5 - 2 这种就多花点心思了。但是有一个事实是:很多机构的长期夏普到不了2.0。夏普超过2的基本都是一些有特点的公司,比如高频、或者对某一个行业特别熟知,专精的公司。要不要买量化基金?都行。但是如果我手上有可以长期实盘sharpe超过2.5的策略和IT设施(我都没有:)哈哈),我不会想要把他做成基金,我会找几个大客户,自己玩,不会卖给散户的。道理很简单,我凭啥卖给你?为了一年不到1%的fee?而且策略的容量还真不一定能支持大资金进来玩。如果你做了几年实盘,夏普低于0.7,请不要再做了。买上两个ETF:SPY + TLT,拿住了,别上杠杆,5年后你的夏普大概率 >0.7。最后忠告:怎么玩都行,但是杠杆千万别过2.0. 不懂的产品别碰多样性才是免费的午餐编辑于 2022-02-08 21:06赞同 78134 条评论分享收藏喜欢-1.6 %����
1630 0 obj <> endobj
1658 0 obj <>/Filter/FlateDecode/ID[<1171F962C518E54CB4C462ED12ECF7C3>]/Index[1630 60]/Info 1629 0 R/Length 137/Prev 2257341/Root 1631 0 R/Size 1690/Type/XRef/W[1 3 1]>>stream
h�bbd```b``W��A$�*�d��l� ��D�HFo�k"9n�H�`��� V�qlf;�dl� �W�A��{`s@d�w�]�@��% $+/a��M���@���3L�l����C������c� �8�
endstream endobj startxref
0
%%EOF
1689 0 obj <>stream
h�b```������@��������� �� T�$9��f��n�� ����AM(-�`����p��� &KF·�K(��X�i��a���݅r�>4�`�����e�M*�ys��ܫ7S��M=9���
$0���r�x��;k�Ⴡl&+���
99�\��!����K�K=T|���P Z���1�����^�fj^n��6FB�`��F�����RPi)\r�wN�RG����u5�"t�.'{MH��JY��3;��m*K�n��f&>.�ܬp�p�I�9<\��8m/�Y��s\�$���r?E������%�/o;+�a����e#��G߳���c;�ޙ��8��H������րA��%�>^��a�f1qq椹�śV�hZ�b�`��)9��;��?�k�r9����g��C+�5rD+���丹�e��U!���1�0 ��\k�7>P1Y��<|��^Ȅ���~��p�
iIr;�j5Kj*;cx�蟓���M2C����2� � (�"�wV�����T�)OL��:���?3!粙�0����{OU�-�t`�������|'\<4ע��TK�i=S��gg��Nj2.M�7-e}p��ߔo9��� .M��Դ�Ja���b�����8;�p �$���/}T��h�D�Ѫ��k���t�MU��u�rYժ��DV����WV; }����j�'��Y>�����OOU-:��Z/�P�^-��J"ռJ�\Y!� ��u�}�����^-G�Ǚ�P�63(u A�d�� `�d��A�r(�E�-�@pAJՑ���(E1�)�ڔԱ��qHl4�!�j@w�ϑ�l ��*��`�r��R� �Ld�����8\��21�0��_�Sgn`�O0������a���o�����{/K�+9�lL�`�v���7
<"B\�����2�c�xA��q�ٝ6�.�l��<��q�Q``tf�p�s\�� �p��u���o��%+�/�@���
",