全是干货!
在本文中,我想向你介绍我自己用来寻找有利可图的算法交易策略的方法。我们今天的目标是详细了解如何发现、评估和选择这些系统。我会解释,寻找策略既涉及个人偏好,也涉及策略表现;如何确定用于测试的历史数据类型和数量;如何以客观的态度评估交易策略;以及如何进一步推进到回测阶段和策略实施。
A. 确定你的个人交易偏好
为了成为一名成功的交易者——无论是主观交易者还是算法交易者——都需要诚实地问自己一些问题。交易可能会以惊人的速度让你亏损,因此,了解自己和了解你选择的策略同样重要。
1. 了解你的性格(being aware of your own personality)
我认为交易中最重要的因素是了解自己的性格。交易,特别是算法交易,需要高度的纪律性、耐心和情感上的超脱。因为你将让算法为你执行交易,所以必须下定决心不干预正在执行的策略。这一点可能非常困难,尤其是在经历长期回撤的时候。然而,许多在回测中表现出高收益的策略可能因为简单的干预而被破坏。如果你想进入算法交易的世界,务必要准备好接受情感上的考验,并努力克服这些困难!
2. 时间的考量(time)
接下来需要考虑时间因素。你是否有全职工作?是兼职还是全职在家办公?或者每天有长时间通勤?这些问题将帮助你确定适合的交易策略频率。如果你是全职工作者,那么日内期货交易策略可能并不适合(至少在完全自动化之前)。你的时间限制还会影响策略的方法。如果你的策略需要频繁交易并依赖昂贵的新闻订阅(例如 Bloomberg 终端),在办公室运行这种策略显然不太现实!如果你有大量时间或具备自动化策略的技能,可以尝试更高技术含量的高频交易(HFT)策略。
3. 持续研究的重要性(continual research)
我相信,要维持稳定盈利的投资组合,必须对交易策略进行持续研究。很少有策略能够永远“处于雷达下(under the radar)”。因此,将交易时间的一大部分用于持续研究是非常重要的。问问自己是否愿意投入这部分精力,因为这可能决定你是保持强劲的盈利能力还是逐渐亏损。
4. 交易资本的考虑(trading capital)
你还需要考虑交易资金。一般认为,量化策略的理想最低启动资金为 50,000 美元。这是因为中高频策略的交易成本非常高,需要足够的资金来吸收回撤期(drawdown)的损失。如果你计划以少于 10,000 美元的资金开始,那么你需要限制自己采用低频策略,仅交易一到两种资产,因为交易成本会迅速侵蚀你的收益。Interactive Brokers 是对具备编程技能的用户最友好的经纪商之一(因为其提供 API),但其零售账户的最低资金要求为 10,000 美元。
5. 编程技能的重要性(Programming skill)
编程技能是构建自动化算法交易策略的关键因素。熟悉 C++、Java、C#、Python 或 R 等编程语言将使你能够独立构建端到端的数据存储(data storage)、回测引擎(backtest engine)和执行系统。其中最重要的是你可以完全了解交易基础设施的所有方面。这也让你可以探索高频策略,因为你将完全掌控自己的“技术栈”。这也意味着你需要花更多时间在基础设施的开发上,而不是直接实现策略。如果你觉得用 Excel 或 MATLAB 交易更舒服,可以将其他组件的开发外包,这也是一种选择,但我不推荐这样做,尤其是针对高频交易者。
6. 设定目标(what you hope to achieve)
问问自己通过算法交易希望实现什么目标。你是希望获得一份稳定的收入,从账户中提取收益?还是希望实现长期资本增值(long-term capital gain),并能承受不提取资金的交易?收入依赖性会影响策略的频率。更频繁的收入提取,需要更高频率,且波动性较低的交易策略(即较高的夏普比率)。而长期投资者则可以选择较低频率的交易。
7. 避免不切实际的幻想(Algo trading is NOT a get-rich-quick scheme)
最后,不要被短时间内迅速致富的想法所蒙蔽!算法交易并不是“一夜暴富”的捷径——如果有任何偏差,它更可能是“一夜致贫”的途径。成功的算法交易需要极大的纪律、研究、勤奋和耐心。实现稳定盈利可能需要数月甚至数年的时间。
B. 寻找算法交易策略的灵感
尽管很多人可能认为找到盈利的交易策略很难,但事实恰恰相反。如今,在公共领域获取交易策略比以往任何时候都更加容易。学术金融期刊、交易博客、交易论坛、每周交易杂志以及专业书籍,提供了成千上万种可以作为灵感来源的交易策略。
作为量化交易研究员,我们的目标是建立一个策略管道(strategy pipeline),以持续为我们提供交易灵感。理想情况下,我们希望对策略的获取、评估和实施采取一种系统化的方法。这个管道的目标是产生稳定数量的新想法,并为我们提供一个框架,以最小的情感干扰筛选掉绝大多数不合适的策略。
我们必须非常谨慎,避免认知偏见影响我们的决策方法。我们的目标始终是找到具有正期望值的持续盈利策略。资产类别的选择应该基于其他考虑因素,比如交易资金限制(trading capital constraints)、经纪商费用(brokerage fees)和杠杆能力(leverage capabilities)等。
接下来可以在交易论坛和交易博客中找到更复杂的策略。不过需要注意的是:许多交易博客依赖于“技术分析”(technical analysis)这一概念。技术分析是通过利用基础指标和行为心理学来判断资产价格的趋势或反转模式。
尽管技术分析在整体交易领域非常流行,但在量化金融界,它被认为效果有限。一些人甚至认为其预测能力与读星座运势(reading a horoscope )或研究茶叶残渣差不多!实际上,确实有人通过技术分析取得了成功。然而,作为掌握更复杂数学和统计工具的量化交易者,我们可以评估这些基于技术分析(TA)的策略的有效性,并基于数据做出决策,而不是依赖情感或先入为主的观念。
当你对评估较简单的策略有了一定经验后,就可以开始研究更复杂的学术策略了。一些学术期刊可能很难访问,需要高额订阅费或单次购买费用。如果你是大学的学生或校友,可以通过学校获取部分金融期刊的访问权限。否则,可以考虑使用预印本服务器(pre-print servers),这些是互联网上用于存放学术论文最新草稿的存储库,这些论文正处于同行评审阶段。由于我们只关注那些能够成功复制、回测并获得盈利的策略,是否经过同行评审对我们来说并不那么重要。
学术策略的主要缺点在于,它们往往可能已经过时,需要罕见且昂贵的历史数据,涉及流动性不足的资产类别,或者未考虑费用、滑点(slippage)或买卖价差。此外,学术策略中可能没有明确指出是使用市价单(market orders)、限价单(limit orders),还是包含止损单(stop losses)等。因此,绝对有必要尽可能自行复制策略,进行回测,并加入现实的交易成本,这些成本应涵盖你计划交易的资产类别的所有相关因素。
那如何创建自己的量化策略呢?这通常需要(但不限于)以下一个或多个领域的专业知识:
1. 市场微观结构(Market Microstructure)
尤其是对于高频交易策略,可以利用市场微观结构,也就是对订单簿动态(order book dynamics)的理解来获得盈利。不同的市场会有各种技术限制、法规、市场参与者以及约束条件,这些都可以通过特定的策略加以利用。这是一个非常复杂的领域,尤其是对于个人投资者而言,在这个领域竞争可能会非常困难,因为竞争对手包括资金雄厚、技术能力强的量化对冲基金。
2. 基金结构(Fund Structure)
集合投资基金,例如养老金基金、私人投资合伙基金(对冲基金)、商品交易顾问和共同基金,通常受到严格的监管以及其大额资本储备的限制。因此,某些一致性行为(consistent behaviours)可以被更灵活的投资者利用。例如,大型基金由于规模限制,可能面临容量约束(capacity constraints)。因此,如果它们需要快速出售大量证券,就必须分批进行以避免“推动市场价格(moving the market)”。复杂的算法可以利用这些特性以及其他独特现象,从而进行一种被称为基金结构套利(fund structure arbitrage)的操作。
3. 机器学习/人工智能(Machine Learning/Artificial Intelligence)
近年来,机器学习算法在金融市场中变得越来越普遍。分类器(如朴素贝叶斯(Naive-Bayes)等)、非线性函数拟合器(如神经网络)和优化程序(如遗传算法(genetic algorithms))都被用于预测资产价格路径或优化交易策略。如果你在这一领域有背景知识,可能会对某些算法如何应用于特定市场有一些洞见。
当然,还有许多其他领域值得量化分析师探索。我们将在后续文章中详细讨论如何设计自定义策略。
通过每周甚至每天监控这些信息来源,你可以建立一个持续获取策略想法的机制,涵盖来自多种来源的策略列表。下一步是确定如何筛选掉一大部分策略,从而最大限度地减少浪费时间和回测资源在可能无法盈利的策略上。