自动交易如何增加交易利润?


(caoxiyang) #1

作者:Harry Nicholls
编译:caoxiyang


你有没有想过如何使你的交易策略自动化并增加交易利润?在本文中,我们将介绍算法交易的基本知识,好处和风险。准备好开始自动交易吧!

很多技术分析都涉及观察信号指标,然后根据信号进行交易。正如我在之前的文章“一个让优秀交易者高于其他交易者的行为”中所讨论的那样,你应该在你的交易日志中记录下你所有的交易,当你获得更多的经验时,你应该能够识别出能让你赚最多钱的方法。

如果你能设计一台计算机来自动识别这些方法并自动进入交易呢,如果你能把自己从繁琐的图表中解放出来呢?那将会怎么样?

“不可能!技术无法取代我20多年积累起来的技能和经验,我整天坐在板凳上看图表!” —— 一些婴儿潮时期出生的人表示

好吧,我承认这句话是我编出来的。

你应该懂我的意思。抵触者会说这是不可能的,但他们错了。这是可以做到的。

现在可获得的财务数据数量令人震惊。您可以通过大多数加密货币交易所的应用程序接口(API)直接获得价格信息,而且正如预期的那样,它就是一堆数据。

毫无疑问,计算机在数学方面比人类做得更好。如果你能找出让你赚最多钱的方法,电脑也能。我们在这里讨论的是技术分析,而不是基本面分析,它又是另一回事。

在70年代和80年代,我一直关注的一个人:Ed Seykota,他开创了系统交易的先河,在16年的时间里,他的账户获得了2500倍的收益。对,我没有数错0。

这种收益在今天是闻所未闻的。自动交易的出现使他在那时几乎没有竞争对手,而现在的收益已经被稀释,但是你仍然能够从自动交易系统中获得丰厚的回报。

技术分析是对图表的研究,技术分析师观察价格寻找模式,并使用指标来确定市场状况。指标只是一个关于资产价格和/或数量的数学函数,而一个模式就是在一定时间范围内价格变化的情况。
这意味着技术交易策略可以归结为数值分析和数学问题。计算机在解决数学问题上比人类快得多,也更准确,所以为什么不告诉你的计算机游戏的规则是什么,让它为你交易呢?

什么是算法?

算法”的字典定义是:

“在计算或解决问题的操作中(尤指计算机)要遵循的过程或一组规则。”

这似乎与技术交易策略非常相似。你找到一个适用于你的策略(例如MACD短期移动平均线上穿长期移动平均线),然后你决定你的操作(例如下单买入,低于支撑位1%时止损,MACD线再次交叉时停止交易)。这是一个简单的例子,而且都是基于数值的。

如果您可以知道什么时候应该开仓,什么时候应该平仓,那么您也可以通过电脑做同样的事情,而且它会更快,更准确(假设你告诉它的是正确的事情!)。

如果我们看一个更高级的例子,自动交易的好处就更加明显。假设您的交易需要监视5种指标并且交易组合中有7种不同的资产,这对于人来说是一个巨大的工作量:您将在屏幕之间来回切换,寻找亮起绿色的指示灯,并判断何时进入市场。

当你的注意力分散的时候,犯错的可能性就会放大。

一台计算机处理多种资产和指标的能力比我们任何人都要强。计算机虽然有其局限性,但在快速、准确地分析数据方面,即使是一台普通的个人笔记本电脑也能超越任何人类。

你们可能会说,“对,但我可以设置警报和信号,让它告诉我什么时候市场状况是正确的!”你可以,但你认为警报和信号是如何工作的?它们也是算法。

这一步可以在算法交易中省略掉,因为警报只是告诉你市场处于某种状态,而不会进行下单或类似的事情,这部分让你来决定。它是一种简单的操作,那为什么不找一个算法来做这些呢?这比雇助理便宜。

他们如何用于交易?

除了一般的自动交易外,自动交易还有几个专门用途,包括:

  • 高频交易(HFT)
  • 套利
  • 抢帽子(Scalping)
  • 降低交易成本

高频交易组以高频率执行大量交易,因此得名“高频交易”。2008年,在雷曼兄弟(Lehman Brothers)破产后,人们对股市的流动性感到担忧。纽约证交所决定在2016年采取一些措施,他们为做市商引入了新的激励措施:在纽约证交所和纽约证交所上市的证券交易中提供0.0019美元的平均回扣,从而为市场提供流动性。

这听起来不像是一个很大的补贴,但如果你每天进行数百万笔交易,回扣就会有很多。手工操作怎么可能做上百万笔交易呢?

通过引入回扣,纽约证券交易所激励了HFTs的使用,这些HFTs可以在几微秒内做出交易决策,并因此获得回报。

有些人认为这是不道德的,因为HFTs比非HFTs有更大的优势。没错,但这只意味着市场的其他人需要适应新的参与者,或者被淘汰。市场在不断变化,这只是其中之一,世界正在变得计算机化,总有人会站在前进的道路上,这种进步在短期内对其他人造成了“伤害”。所以人们对高频交易感到厌烦也可以被理解了。

但是进步就是进步,可以自动化的工作将会被自动化取代,我们需要面对这个事实。别担心,我们今天不是来讨论关于自动化和人类未来的。

回到正题:

自动交易系统的另一个专门用途是套利。

套利是在两个不同市场同时买卖同一资产,资产价格并不同步。例如,BTCUSD目前的股价为7281.50克朗,Bitfinex为7294.10克朗,相差12.60。如果你能在Kraken买到BTC并在Bitfinex上出售,你可以每BTC赚12.60,没有什么问题。

这被认为是“无风险”的,因为你在买卖同样的资产,这样的价格最终应该收敛。我说“应该”,因为可能并非总是如此。

这些价格差异可能不会持续很长时间,因为还有其他交易员希望利用价差获利,所以你需要尽快。

那还有什么比电脑编程更快的交易方式呢?套利程序看似简单,但越来越变得复杂。在其他类型的交易中,你通常不会遇到很多不同的问题,比如执行速度,这是一个问题,因为直到被另一个套利交易者利用之前,价格差异不会持续太久,程序就是最快的手指。

一些交易组诉诸于“主机代管(co-location)”,即交易公司的交易算法托管在与交易所服务器相同的服务器上,因此它们可以直接连接到光纤电缆。

当许多交易公司都这样做,数据中心将每个交易组的服务器连接到交易所服务器时,他们通过使用相同长度的光纤电缆来保证为所有公司提供公平的条件,可见这个领域的竞争已经激烈到何种地步!

抢帽子(Scalping)是另一种用途,即进入交易并在短时间内结束交易,以便从微小的价格变动中获利。如果你观察过任何流动资产的图表,你会看到即使是前10名的加密货币,价格也在不断波动中,刷单员(Scalper)就从这里面获利。

与高频交易类似,抢帽子通过规模赚钱。如果你每笔交易赚0.10美元,那么需要大量的交易才能获得可观的利润,Scalping算法能帮助你做到这一点。

抢帽子需要进行快速的决策,这正是计算机比人类更适合做的事情,这种在短期内进行的工作和交易需要利用计算机的速度和准确性。

短的期限也有助于限制刷单员的风险敞口,因为它们只在非常短的时间内受到市场波动的影响,一次只在市场上待几分钟,不必担心价格的大幅波动。

每笔交易利润虽然小但可以轻松获得,给定的时间内市场变动0.10当然比变动1.00容易得多,那么通过提高交易频率,即使市场处于相对平静的状态,我们也能赚到钱。

我们在这里讨论的最后一种用途是降低交易成本。这种算法被用来将大订单分解成小订单,随时间推移逐渐进入市场以获得最好的价格。

大量的订单会影响市场价格,因此大型机构投资者使用自动化系统将他们的订单分割成小块,这样就可以被市场吸收,而不会对价格造成太大的影响。

在交易中去使用算法有点不那么让人兴奋,但这是非常必要的,这是计算机比人类做得更好的另一个例子。

为什么会有人使用交易算法?

我们已经讨论过自动交易系统的一些优点。我想在这里重申一下这些细节。

计算机处理数据的速度比人类快,它们被设计来专注于数字运算,而我们的大脑进化是为了探测危险,逃跑或战斗,所以电脑将在数字运算上打败我们,它们更加快速和准确。

这使计算机能够比我们更快地做出决定和行动,用来在交易中监控分钟级别的图表再合适不过,并可以在市场显示出转仓迹象时立即采取行动。

想象一下,监控5种加密货币的分钟级图表,观察每一种货币的价格走势,同时监控来自多个指标的信号。你有多大可能把握住每一个机会? 而对你那个头脑简单(silicon-brained)的朋友来说,这是一件轻而易举的事。

自动交易系统也可以用来降低你的操作成本。如果每次你想进入一个新的市场时都要雇佣另一个交易员或交易助理,可想而知。人的注意力是有限的,人类的大脑只能集中精力在一个方面。

如果你正在交易加密货币并想要扩展到外汇市场,那么你将需要计算机的帮助。自动交易系统可以提供这一便利,如果您理解您所交易的规则,并且能够编写您的加密策略,那么您就可以创建一个自动交易系统来处理这方面的业务,从而可以自由地专注于外汇市场。

您可以在每个市场中设置自动系统来处理您的交易活动,并可以随心所欲地重复这个循环。

如果你厌倦了整天盯着图表看,那么你可以设计一个系统来帮你做这件事,然后专注于更有成就感的事情。

它的缺点在哪里?

在自动交易系统的世界里,一切看起来都很美好,但事实并非如此。
自动交易的主要好处之一也是它的“阿喀琉斯之踵”。如果计算机能很快让交易盈利,他们就能很快地使交易亏损。当系统开始进入亏损状态,可能在你还不知道发生了什么之前,就已经亏损掉之前积累的大部分收益。

一种应对这种风险的方法是采取适当的风险管理。交易系统只能做你让它做的事情,所以如果有一个你没有想到的场景(你当然很可能无法考虑到所有事情),交易系统将继续使用你设定的规则,无论是不是会让你赔钱。

风险管理规则可以在这里提供帮助。你可以对每笔交易设置止损限制,例如,以5%的亏损收盘,甚至在跌幅超过给定值时关闭交易系统。这些做法可以确保你不会因为一些错误的交易而失去全部。因为当损失发生时,亏损的速度可能会比你了解的“长期资本管理公司”要快。

自动交易系统往往不灵活,电脑只能做你告诉它做的事,有时人们认为他们已经告诉它做一件事,而实际上他们却告诉它做另一件事,“这该死的机器没有做我告诉它的事!”但是机器不可能做你让它做的之外的任何事情(我这里说的不是人工智能,因为那是另一回事)。

所以当市场发生变化时,你的算法可能会需要必要的更新。

2010的“闪崩(Flash Crash)”是自动交易风险一个典型的例子:
2010年5月6日,美国东部时间下午2点32分,数万亿美元的股市崩盘开始,持续了约36分钟。美国的一些主要股指,如标准普尔500指数(S&P 500)、道琼斯工业平均指数(Dow Jones Industrial Average, DJIA)和纳斯达克综合指数(Nasdaq Composite),迅速崩盘,随后迅速反弹。

这就是所谓的“闪崩”。道琼斯工业平均指数遭遇历史上第二大的盘中跌幅!几分钟内它就失去了998.5点,下跌9%!幸运的是,它没有持续下去,并且指数的大部分跌幅在几分钟内恢复。部分原因是高频自动交易(HFTs)造成的。

据了解,一家大型基本面交易公司Waddell & Reed Financial Inc. 挂出了75000份E-Mini标普合约(价值约41亿美元)的卖出订单。这是一个异乎寻常的高成交量,然后很快被HFTs买入。

然而和他们购买合同一样快的是,自动化交易系统再次迅速出售合同。“华尔街日报”引用官方的报道,称:

“然后HFT开始快速购买并相互转售合约,随着相同头寸快速来回传递,产生‘热土豆’效应。”

这种发生在期货市场的状况蔓延到股票市场,也许是由于套利者利用标普500指数和E-mini标普合约之间的价差套利导致股票价格出现了问题,埃森哲(Accenture)和宝洁(P&G)等公司的股价变成几美分或者变成10万美元!世界已经疯了!

正如官方报告所述,这场崩溃最终结束:

“下午2:45:28。当时,芝加哥商品交易所(CME)停止逻辑功能(Stop Logic Functionality)被触发,以防止价格进一步下跌。在短时间内,E-Mini的卖方压力有所缓解,买方兴趣有所增加。下午2:45分33分恢复交易之后不久,E-Mini和SPY(跟踪S&P500指数)开始复苏。”

正如我已经说过的,计算机可以比我们更快地做出决定和行动。它们可以在加剧此类市场事件中发挥重要作用。谁能事先预测自动交易系统会以这种方式对这种事件做出反应?我怀疑根本没有人能预料。

你不能也不应该试图去预测将要发生的事情。只要对一般情况有所准备:市场迅速上涨,市场迅速下跌。

我怎样才能从交易算法赚钱?

在EdSeykota的年轻的时候,他将交易算法编程到计算机能够读取的穿孔卡片上。幸运的是,从那时起,交易技术取得了长足的进步,现在,任何具备基本编程技能的人都可以开发出一个交易算法。

如果您有交易系统,无论是基于指标信号,纯价格行为还是其他技术分析,您都可以编写一个简短的脚本来监控您选择的指标并对其采取行动。如果你没有编程技能,那么就委托给一些平台。

有一些交易平台可以让您编写自己的交易算法,并将算法与它们的基础设施集成在一起。这些平台已经解决了:连接到api、计算盈亏、甚至执行订单等等的问题。所以利用交易平台可以让您专注于交易的高价值方面,即算法本身。

请注意,过度地回顾测试可能会导致您的策略与历史数据过于匹配。你的算法可能在2017年6月至2017年12月的价格行动中运行得很好,获得了3000%(哇!),但它可能只在这段时间内有效。市场环境在不断变化,所以你不能依靠回顾测试来给出完美的算法。

我现在正在尝试的一种改进算法的策略是,使用蒙特卡罗模拟器生成下一年的随机价格,然后将这些价格导入平台,并针对该数据集运行我的算法。这样,我就可以针对无限可能的未来场景测试我的算法。

我现在不打算详细讨论,但基本上我是使用历史波动率来产生价格。其实不需要立即懂得这种技术,利用回顾测试就足够了。

一旦你有了一个测试后的策略,你应该用一个模拟交易和实时数据来测试它,以确保从回测系统切换到实时交易系统没有问题。你肯定不想让一个编程错误在第一天就把你的全部赌注都赔光吧!

如果你对自己的策略与实时数据配合得很好感到高兴,那就继续,开设交易账户,存入一些交易资金,启动自动交易系统。

现在你有了自动交易的基础知识,似乎很简单,是吧?
自动交易是一个很好的工具,在你的交易工具包中,我要说最困难的事情是编纂你的策略。将你的策略转换成计算机可以解释的代码是非常困难的,但是如果你用心去做的话,这是完全可行的。

别忘了,自动交易可以放大风险,如果市场意外状况导致交易系统进入亏损的头寸,那么亏损会快速积累,因此要有适当的风险管理体系:

  1. 设置一个最大损失限制,一旦触发就停止交易。
  2. 在每笔交易中使用止损。

在开发系统时,需要进行大量的前期工作,但是从长远来看,节省的时间是无价的。这些时间可以用来检查你的交易系统的性能,改进你系统的设计,构建更多的系统来提高你的利润,或者只是在巴巴多斯的海滩上用老式的方法来放松一下。你想做什么就做什么,这是你应得的。

原文链接:《How Automated Trading Can Increase Your Trading Profits