理工男如何用技术超越其他投资者
👆点击“博文视点Broadview”,获取更多书讯
在和工程师同行的交流中,我发现了一个非常普遍的问题。他们经常说:我很清楚自己有技术优势,我会编程,会使用很多技术工具,可以让很多事情自动化执行。但是,一提到怎么把这个优势变现,我就没有思路了,到底该怎么突破这个思维瓶颈呢?
接下来,我们就重点解决这个问题。这里我先帮你分析你的技术优势到底体现在哪些具体的方向上。
理工男的技术优势到底体现在哪里?
第一个方向是“高效获取信息”。
对投资者来说,信息就是盈利的首要来源。在做出一个投资决策时,你收集到的相关信息越多,做出的投资决策就越理性,越能获得最大的收益。炒股是这样,买基金是这样,生活中所有跟财富相关的其他决策也都是这样。后面,我会用一个买房的例子,说明程序员应该如何高效地获取信息,以便支持我们的投资决策。
第二个方向是“投资支点的验证”。
在学习支点投资法时,很多读者都有这样的疑问:怎么才能找到一个靠谱的投资支点呢?其实支点的来源有很多,比如你的观察、别人的建议,或者相关的文章。但这些支点是否靠谱,不是通过它们的来源来判断的,而是需要你对这些投资支点进行验证。
这时,技术优势就体现出来了。我们完全可以利用程序高效地处理数据,去验证我们的投资支点,增加这个支点的可靠程度。
第三个方向是“固化规则,解放人力”。
这是什么意思呢?联系我们的日常工作,一位工程师在工作中最重要的任务就是把业务逻辑固化成代码或者规则,能够高效复用。其实在投资中也是一样的,只有把自己的观察和经验提炼成投资规则,建立自己的投资体系,才能稳定地盈利。
在这个过程中,如果能基于这些规则,建立起一个交易系统,就可以最大程度地解放你的“人力”,同时避免人类负面情绪对交易的影响。这种让程序帮你交易的系统,就是我们经常听到的程序化交易系统。
只听知识性的总结你肯定不过瘾,接下来,我就以自己的亲身经历为例,详细介绍这三个方向。
01
高效获取信息:通过程序收集房产信息
首先,聊一聊如何通过程序实现我们高效获取信息的优势。
这里举的例子是我买房前的信息搜集经历。2016年,国家有比较明显的推高房地产市场价格的倾向,如降低房贷利率,银行推出利率打折政策,住房用地拍卖价格再创新高,等等。因此,当时我判断房地产市场可能会有新一轮上涨行情。
基于这个支点,我决定购买一套总价较低的投资房。当然,这个投资支点的设立并不是重点,在这里我要重点讲的,是如何利用自己的技术找到一套既合心意,价格又合理的房子。
决定买房后,首先是根据一定的条件,给自己划定一个选房的范围。第15节介绍过,要买房,关键问题是确定预算。我当时的总预算是200万元到250万元,这个预算范围在当时的北京基本对应着核心区域的一居室,或者远郊的两居室。
由于要买的这套是投资房,我最看重的有三点:一是租售比,也就是租金和售价的比值;二是升值潜力;三是抗跌能力。于是,我从最重要的因素租售比出发,继续划定选择范围。
为了找到北京租售比最高的地区,我在某中介服务网站上手动锁定了几个热门区域,如回龙观、望京、知春路等地区。选择它们的主要依据是,我认为这些地区互联网企业比较集中,从业人员的收入水平较高。
接下来就是我们理工男最擅长的事情了:利用程序搜集信息,供我们决策。我写了一个非常简单的程序,从某网站的公开页面上,定期保存了目标区域200万元到250万元这个区间内的在售房源和在租房源,然后计算出这些房源的租售比。与此同时,我实现了一个监测功能:一有新的房源上线,如果价格及租售比在我设定的区间内,就马上提醒我。
除此之外,在我关注的重点区域,我用程序分析了页面上提供的历史成交价信息,计算出了不同区域的房价涨幅和波动情况。然后,我得出了一个结论:城市核心区的房产在上涨周期的涨幅大于郊区,在下跌时的跌幅小于郊区,可以说是既保值,升值潜力又大。
最后,基于我用程序分析的结果,我选择了一套知春路附近、靠近地铁的一居室老破小。选择它的主要原因是租售比非常合理,总价也在预算范围内,和郊区房产比升值潜力大、抗风险属性强。
我写这个程序大概花了一个周末的时间,然后花了一个月不断监测结果。现在回头看,收益是非常可观的,几乎可以说,我用两天的时间创造了之后几年上百万的超额回报。在这种重大投资决策上,运用技术优势高效获取信息,投入少量的时间往往能得到惊人的回报。
当然,要提醒读者的是,利用程序获取信息,一定要确保数据集是公开的,而且不能通过出售数据牟利,否则就违法了。
02
验证投资支点:通过回测程序验证投资想法
第二个例子更有意思,是我通过回测程序验证自己投资想法的经历。
如果你是一位老股民,肯定经常听说一些关于投资策略的想法,如“涨停敢死队”“黄金交叉”“死亡交叉”,等等。这些想法肯定不是毫无根据的,但也不能直接拿来用。对待别人的投资经验,我们要始终以拿来主义的思路看待。这些投资想法,只有你自己严格验证过,才能消化吸收,把它融进自己的投资体系中。
在这里,我们的技术优势又体现出来了!我们可以利用程序,回测和验证自己的投资想法。如果一个投资者不懂编程,那就只能做很低效的手动分析,验证的结果还不一定可靠;或者,直接做实盘验证,那风险可就大多了。基于历史数据的程序回测就很好地解决了这个问题,下面举一个完整的、通过程序回测验证投资想法的例子。
2021年上半年,我在和同事聊天时,听他们提到一个特别简单的基于日历效应的投资策略:每个月的前5个交易日满仓沪深300指数,其他日子都空仓。他们说特别有效。
我听了表示怀疑,每个月前5个交易日有什么特殊性吗?怎么可能这么简单就赚钱了呢?有怀疑当然就要验证,当天晚上我就写了个程序,验证了这个投资想法。
首先,我准备了沪深300指数过去十多年的每日涨跌幅数据,然后判断每个交易日是不是当月的前5个交易日,从而确定是满仓还是空仓。之后,按仓位计算这个账户每天的涨跌幅,也就是当天的仓位乘以当天的沪深300指数涨跌幅。最后,按这个账户的每日涨跌幅画出净值走势图,跟沪深300指数走势图进行比较,结果如表1和图1所示。
图1 日历效应策略净值(红)与沪深300指数(蓝)的对比
验证的结果令人震惊,这么一个简单的策略居然真的管用!和沪深300指数相比,这个日历效应策略把最大回撤从72.30%降到了29.74%,而年化收益率从8.40%提升到了12.40%!更神奇的是,这个策略每个月只需要占用5天资金,其他时间还可以把钱存到货币基金里赚利息。如果按照货币基金3%的收益率,这个组合策略的保守收益率在14%左右。因此,这是一个最大回撤只有29.74%,收益率却有14%的策略,是不是有种鱼和熊掌都吃到了的感觉?
不过这只是数据验证,难免有对历史数据的过拟合之嫌。所以,当时我就带着分析结果找李腾讨论,他看了也大吃一惊。我们一起思考:这个极简策略背后到底是什么逻辑在支撑?
经过讨论,我们觉得有两个可能的逻辑:一是国内银行每个月月底会归拢资金或者核账,导致月底钱比较紧,但下个月月初又会把钱放出来,所以一般来说,月初的资金流动性比平时好;二是大多数人每月月底领到工资,月初就可以定投出去了。可能是因为这两个因素,形成了一个有规律的月初买入资金流。
为了巩固这个猜想,我们设计了另一个测试策略:每个月最后5个交易日满仓,其他日期空仓。如果我们前面猜测的两种逻辑是对的,则测试策略的结果应该比较差。
最终结果如表2和图2所示,月末的日历效应策略的年化收益率居然成了-2.40%。这个结果是符合我们预期的,看来,月末的日历效应策略确实远远不如月初。
图2 月未的日历效应策略净值(红)与沪深300指数(蓝)的对比
我们又继续测试了每月第6到第10个交易日(月中)满仓、其他日期空仓的结果,如表3和图3所示。最终收益率是0.85%,虽然好于月末,但远远不如月初的日历效应策略。
图3 月中的日历效应策略净值(红)与沪深300指数(蓝)的对比
经过多轮验证,最终我们得出的结论是:月初日历效应策略在历史数据上的表现是最优秀的。月中和月末的策略对比试验,也符合我们对银行和普通投资者资金流月末吃紧、月初流动性增强的猜想。但对于这两点假设,确实无法通过回测完全证实。
在完全证实我们的猜想之前,这套策略还谈不上是一个非常稳固的交易策略,而且我们也没有考虑其他影响收益的因素,如交易手续费等。但是,我们至少可以得到一个行动上的指导:在我们建仓或者定投股票基金时,应该尽量选在每月初的前一到两天,避开月末,这样才更有可能拿到一个好的收益率。
03
固化规则:程序化交易
第三个体现技术优势的方向是“固化规则,解放人力”,最典型的例子就是程序化交易。
程序化交易指的是用程序代替人工,实现交易流程。例如,我们前面验证的日历效应策略,需要每个月的第1天买入,每个月的第五天卖出,长此以往,还是挺麻烦的。我们自己去实现这些操作当然也是可行的,但有句话说得好,“懒惰是程序员的美德”。我们更希望使用程序进行自动化交易,这相当于雇用了一位最认真负责的员工为我们打工,既省心又不会出错。
更何况,当策略比较复杂,或者交易频率比较高时,靠人工交易往往力不从心。这时,利用程序化交易来固化策略,可以彻底解放我们的人力,大大提高交易效率。市面上的量化交易平台已经有很多了,本书不做具体推荐,如果你想尝试这个领域,可以在网上自行搜索“量化交易平台”,做更深入的调研。
我是一个程序化交易的践行者,曾经用期货交易的交易接口CTP开发过一套完整的交易策略。在完成开发之后,我只需要在每天闭盘之后查看程序的运行情况就可以了。省时、省力、省心,可以让我把有限的时间投入到更有价值的事情上,这就是程序化交易最大的优势。
如果把程序化交易与策略研发和验证结合起来,就形成了一套完整的量化投资系统。我想这也是很多工程师同行非常感兴趣的领域,本书第五章会详细介绍量化投资的相关知识。
小结
到这里,我用三个例子,解释了程序员的技术优势到底体现在哪些方向。这里,我再总结一下本节的重点内容,也就是这三个例子的核心思想。
理工男的技术优势是我们强于其他投资者的地方,一定要懂得利用。
高效获取信息是实现技术优势的第一个方向。典型的例子是利用程序,高效获取投资决策所需的信息,帮助我们做出最全面和理性的决策。
投资支点的验证是第二个方向。典型的例子是利用程序回测我们的投资想法,在实盘交易前做充分验证。
实现技术优势的第三个方向是“固化规则,解放人力”。典型的例子是程序化交易,它可以最大程度地解放人力,相当于雇了一个认真负责的交易员给我们打工。
限时下单立减50,快快扫码抢购吧!
发布:刘恩惠
审核:陈歆懿
热文推荐
▼点击阅读原文,了解本书详情~