大家好, 我是Lucy@FinTech社区。
今天我们将探讨加密货币空间中交易算法的设计与实现, 尤其关注执行算法、做市算法和几个市场微观结构考虑。此外我们还调查了实践偏离理论的地方,特别是在处理加密市场的特质方面。
加密货币算法交易执行算法
执行算法的目标是将一个投资组合状态转换为另一个状态,同时最小化这样做的成本。例如,如果你想将BTCUSD的敞口增加1000倍,你可能不想立即在BitMEX上下一个市场订单,从而导致大量的下滑。相反,随着时间的推移,你可能会考虑在多个不同交易所的市场和限价指令的组合中慢慢进入所需的位置。
执行算法通常有三层:宏交易者、微交易者和智能路由器。
宏交易员层将一个大的元订单或父订单分解成更小的子订单。这实际上是整个算法的调度部分。VWAP、TWAP和POVare宏交易者算法的常见和简单示例。一般来说,有许多不同的市场影响模型可用于设计复杂的宏观交易员层。市场影响模型研究市场对执行的反应。执行死刑后,市场会保持现状吗?或者它会移得更远?还是在某种程度上又回来了?最具开创性的两个市场影响模型是Almgren Chriss(1999、2000)永久市场影响模型和Obizhaeva Wang(2013)瞬态市场影响模型。考虑到在实际操作中,市场影响并不是永久性的,Obizhaeva Wang似乎更符合现实。从那时起,许多新的模式被制定来处理它的缺陷。
微交易者层为每个子订单决定是作为市场订单还是限额订单执行,如果作为限额订单,则应指定什么价格。很少有关于微交易者设计的文献。这是因为子订单的规模通常是整个市场的一小部分,所以如何执行并不重要。然而,加密是不同的,因为流动性非常薄,即使在实践中对于一般规模的少量订单,滑动也是非常显著的。微观交易者的设计通常关注订单到达分布与时间和深度、排队位置以及市场微观结构的其他特征。
智能路由器层决定如何将执行路由到不同的交换机/场地。例如,如果Kraken拥有60%的流动性,而GDAX(Coinbase Pro/Prime)在给定价格水平下拥有40%的流动性,那么微交易者决定的任何市场订单都应该被路由到Kraken GDAX 60-40。现在你可以提出这样的论点:市场上的套利者和做市商将把流动性从一个交易所转移到另一个交易所,所以如果你在Kraken上执行一半的订单并等待几秒钟,那么其中的一部分流动性将从arbers和stat arbers那里补充,这些arbers和stat arbers将通过GDAX流动性转移到Kraken,剩下的就可以完成了以同样的价格。然而,即使在这种情况下,仲裁人也会为自己的利润向你收取额外的费用,并转嫁自己的对冲成本。与第三方智能路由服务相比,本机智能路由还具有延迟优势。
传统股票交易中常用的策略通常也可以应用于加密交易。大多数algo交易者采用的策略可分为三类:
1. 技术分析
技术分析(TA)是一种基于从交易量和价格变动等历史数据中收集的统计趋势的交易策略。技术分析的一个基本假设是,加密货币的未来价格走势遵循一定的规律,交易活动的历史数据可以作为一个有用的指标。
常用的技术指标包括指数移动平均(EMA)等移动平均和移动平均收敛发散(MACD)及相对强度指数(RSI)等动量指标。许多交易者使用一个或多个指标来产生买卖信号。
要掌握不同技术指标背后的基本思路,可以参考此技术指标列表。
Acceleration Bands (ABANDS)Accumulation/Distribution (AD)Average Directional Movement (ADX)Adaptive Moving Average (AMA)Absolute Price Oscillator (APO)Aroon (AR)Average True Range (ATR)Volume on the Ask (AVOL)Volume on the Bid and Ask (BAVOL)Bollinger Band (BBANDS)Bar Value Area (BVA)Bid Volume (BVOL)Band Width (BW)Chande Momentum Oscillator (CMO)Double Exponential Moving Average (DEMA)Directional Movement Indicators (DMI)Exponential (EMA)Fill Indicator (FILL)Ichimoku (ICH)Keltner Channel (KC)Linear Regression (LR)Linear Regression Angle (LRA)Linear Regression Intercept (LRI)Linear Regression Slope (LRM)Moving Average Convergence Divergence (MACD)Max (MAX)Money Flow Index (MFI)Midpoint (MIDPNT)Midprice (MIDPRI)Min (MIN)MinMax (MINMAX)Momentum (MOM)Normalized Average True Range (NATR)On Balance Volume (OBV)Price Channel (PC)PLOT (PLT)Percent Price Oscillator (PPO)Price Volume Trend (PVT)Rate of Change (ROC100)Rate of Change (ROCP)Rate of Change (ROCR)Relative Strength Indicator (RSI)Session Volume (S_VOL)Parabolic Sar (SAR)Session Cumulative Ask (SAVOL)Session Cumulative Bid (SBVOL)Simple Moving Average (SMA)Stochastic (STOCH)T3 (T3)Triple Exponential Moving Average (TEMA)Triangular Moving Average (TRIMA)Triple Exponential Moving Average Oscillator (TRIX)Time Series Forecast (TSF)TT Cumulative Vol Delta (TT CVD)Ultimate Oscillator (ULTOSC)Volume At Price (VAP)Volume (VOLUME)Volume Delta (Vol ∆)Volume Weighted Average Price (VWAP)Williams % R (WillR)Weighted Moving Average (WMA)Welles Wilders Smoothing Average (WWS)技术分析最适合于标准化和高流动性市场。将TA应用于加密交易的挑战在于:(1)市场仍然是相对较新的,(2)极不稳定的。由于市场是新的,所以要分析的数据和定价历史是有限的,这使得在不同的市场条件下很难确定任何规范化或预期的行为。由于市场的流动性和市场参与者有限,它很容易受到价格剧烈、不可预测的波动。在短期“正常化”期间,TA分析可能最有效;但在加密领域,必须仔细监测这一战略,因为交易模式可能在瞬间和任何给定时间点发生重大而迅速的变化。
2. 套利
套利的概念很简单:低买高卖。这些机会有时是由于某种类型的市场混乱或效率低下而出现的。市场上的一些交易机器人致力于发现这些机会并采取行动。
套利策略示例:
简单套利:当不同交易所之间存在价格错位时,在一个交易所低买高卖。三角套利(Triangular arbitrage):初始货币换第二种,第二种货币换第三种,第三种货币换初始货币。例如,如果你持有ETH并试图套利ZRX:(1)用ETH购买ZRX,(2)为BTC出售ZRX,和(3)为ETH出售BTC。这个三角形arb将(a)ZRX-ETH交易转换为(a)ZRX-ETH+(b)ETH-BTC+(c)BTC-ZRX交易。通过引入一个看似不相关的变量(BTC),这一策略为价格错位创造了额外的可能性,因为三种货币对(a、b和c)是独立交易的。随着越来越多的参与者参与加密交易,套利机会稀缺,个人难以捕捉。即使机会偶尔出现,也往往是短暂的,因为交易者会立即利用这些不完美之处,直到不再存在价差。
3. 做市算法
做市是指向其他参与者提供即时流动性并获得补偿。你承担库存风险以换取正的预期价值。最终,做市商得到补偿有两个原因。首先,市场接受者有很高的时间偏好,想要即时性。反过来,那些为投资者提供流动性便利的做市商,会因他们较低的时间偏好和耐心而得到补偿。其次,做市商PnL的偏好是左偏的,通常大多数人都有右偏的偏好。换句话说,做市商类似于博彩市场、赌场、保险公司和国家彩票的博彩公司。他们常赢少输少。
在较高水平上,限价指令是写给市场其他部分的自由选择权。其他市场成员有权但没有义务以限价令的限价购买或出售资产。在完全知情的市场中,没有人会出售自由选择权。只是因为市场总体上没有完全了解出售自由选择权是没有意义的。另一方面,如果市场完全不知情,风险中性的做市商将愿意以最小的价差出售这些自由限价指令期权,因为所有交易都是噪音。显然,真正的市场是参与者的混合体,每个参与者都有独特的信息水平。
在应用做市算法时,有三个方面需要考虑:做市商、做市商信息和其他做市商信息。
做市商自己的观点由他们的库存来体现。如果你已经有太多的资产敞口,你可能会倾斜/扭曲你的报价,反之亦然,因为有太少的资产敞口。你这样做有两个不同的原因。首先,作为一家公司,你有一定程度的风险规避(可能比个人少,但你的资金效用仍然是凹的)。这个效用函数的形状有许多构造(例如CARA、CRRA、更一般的HARA等)。其次,作为市场上的被动流动性提供者,你会面临逆向选择风险。积极的流动性接受者可能知道一些你不知道的事情。基本上是把自由选择权卖给市场的问题。
订单流代表了市场参与者的观点。订单到达的体积加权频率作为书籍顶部深度的函数应该有几个关键属性。函数应该是1)递减的,2)凸的(这里的直觉很难解释,但这在经验上是明确的),3)随着深度变得无限,渐近接近0。一些公式要求这种强度函数连续两次可微,这是一个很好的合理假设,但最终也是不必要的。通常可以使用一些“公平的中间价格”或最好的出价和最好的出价为每一方。此外,做市商试图捕捉的买卖反弹是均值回归的最短期限版本。由于这种超短期均值回归是由本地波动率决定的,因此做市商在成交量高时扩大报价,在成交量低时收紧报价是有意义的。
其他做市商的观点通常会体现在order book中。很高的出价,这表明其他制造商更愿意出售资产,而不是购买资产。有可能是因为这些做市商的库存已经出现了巨大的正失衡,或者他们只是认为短期内价格下跌的可能性大于上涨的可能性。无论是哪种情况,作为做市商,你都可以根据帐面的倾斜程度调整报价。
最后,长期的方向信号可以叠加在做市算法上,做市算法的目标不再是保持库存的平稳或恒定,而是考虑到一些长期目标和相应的倾斜来实现它。
关于数字货币的交易策略更多话题, 欢迎加入FinTech社区交流!
上一篇:数字货币如何使用