本文整理并介绍了从初步了解到入门上手密码货币量化交易的所有关键知识点,包含市场特性分析、交易买卖平台选择、工具框架、技术指标、交易策略、量化程序搭建部署在内一整条知识脉络。在阅读学习完本文之后,读者将可使用 Python 语言开发出一个最小可用版本的密码货币量化交易机器人程序。
经历过 2018 年,相信加密货币和区块链的概念对于互联网和金融投资圈的朋友们已不再陌生。量化交易的概念乍听起来可能比较高端,而实际上只是利用计算机算法替代人来进行决策交易。在传统的金融及衍生品交易市场中,作为一个普通人,我们要么拿不到交易接口的权限,或者根本达不到资金门槛。然而密码货币交易市场的出现,为每一个技术极客通过量化交易赚取聪明钱提供了可能。
加密货币市场没有交易时间上的限制,不存在开市休市以及法定节假日。任何价格波动会直接在市场中实时体现,不存在股市当中的跳空高开或者盘前跳水,买入卖出也没有一点时间上的限制。这对于一样能24小时连轴运转的量化交易程序来说,是一条非常有价值的优势特点。
你可以用任何主流国家的法币兑换成任意数量的密码货币,不存在股市当中“一手”交易的说法。加密货币市场也没有最低入金门槛,无需动辄几十万上百万的启动资金才可以有效的进行量化交易。
没有基金交易中的高昂手续费,也没有股市券商的佣金。密码货币交易的手续费非常低廉,甚至一些交易买卖平台还会为交易者提供手续费反佣,或者直接推出专对于量化做市商的合作计划。
相比较以年为单位的股票市场,密码货币市场有更高的波动频率;相比较外汇市场,密码货币市场有更高的波动幅度。更多资源+而且如今密码货币交易已经有了较为成熟的期货、现货、做多做空的平台和工具,相比较传统交易市场,有着更高频次的交易机会。
密码货币交易市场是一个总市值非常小的新兴交易市场,无需担心与过多华尔街顶级量化团队竞争,任何一名技术极客都有机会凭借自己的才智在加密货币市场中赚取聪明钱。
币安是目前活跃用户数最多,交易深度最好的加密货币现货交易买卖平台。平台也提供了非常完善的市场数据和交易 API 供量化程序使用,同时也有阶梯式的交易手续费优惠。
BitMEX 是目前全球最为专业,交易量最大的比特币期货交易平台,提供了非常完善的杠杠做空做多的工具。同样也很有完善的 API 支持,并提供交易手续费反佣。
目前社区中已然浮现了非常多密码货币量化交易相关的的工具类库,涵盖了市场数据收集、数据分析、策略回测、交易 API 整合所有的环节。在此仅推荐一些优秀的项目供读者参考:
套利策略主要是指利用平台间差价(俗称:搬砖)、期货之间或期货与现货差价(跨期套利,期现套利)、交易对间差价(三角套利,多边套利)等捕捉差价赚取利润的策略。此类策略获利空间小,同时风险也较小。
不过必须要格外注意的是,当前市场中已然浮现了非常多的各类型套利交易系统,拿跨平台套利来说,各个交易所之间的差价可能会在几秒内,甚至毫秒级别的时间差上就被抹平。因此套利量化策略更多的是在量化系统性能上的竞争。
趋势策略则是指通过制定一系列出入市规则,由算法来代替人做决策,参与市场的涨跌波动来获取利润的量化策略。
本文后续的内容主要讨论的也是此类策略。趋势策略通过计算机自动根据交易市场的一些关键技术指标数值来判断买入、卖出的时机。这些基于数值数据的逻辑判断,也即是“量化”的含义所在。
当下的趋势策略大多是基于技术指标做固定模式判断交易的机械策略,也有利用机器学习算法,根据量化策略在市场中的实际表现,优化调参的做法,然而此类机械策略仍然是量化策略的核心。
想要开发基于趋势策略的量化程序,自然要对技术指标知道。所谓技术指标,就是指描述市场量价关系的数学公式或数学模型,这些公式或模型通常以图形化的方式在交易图表当中展示。
本文将通过 Tradingview 平台,使用 Pine Script (在 Tradingview 平台上用于开发技术指标和交易策略的脚本语言)对几个常用的技术指标进行介绍。
移动平均线是指 N 个单位时间内的平均价格线 个单位时间的平均价格线,计算公式为:
移动平均线将最基本的统计学概念平均数引入到了量价分析当中,也是技术分析中最常使用的一项技术指标。移动平均线可以同价格趋势直接作比较,也能组合多条不同单位时间的移动平均线来判断当前趋势。
简称 MACD 的异同移动平均线指标是由移动平均线衍生出来的。MACD 使用 DIF 和 DEA 两条线以及 Histogram 柱状图来描述价格趋势运行的速度。
其中 DIF 线表示快慢两条指数移动平均线(EMA)的差值,正常的情况下,快线,慢线 。
Histogram 则是 DIF 与 DEA 直接的差值,在交易图表中一般以柱状图形态表示。MACD 指标的计算代码如下:
布林带是一种利用均值回归原理设计出的价格通道指标,通过价格的均值和标准差描述价格运行的区间范围。布林带的计算代码如下:
接下来,本文将综合上述介绍过的所有知识点,开发出一个最小可用的量化交易机器人程序。此程序将在 Linux 环境下使用 Python 语言进行开发,我们会使用到之前介绍过的一些类库。为了尽最大可能避免不必要的兼容性问题,请读者选用相近的开发环境进行调试。
在示例程序中,我们选用 BitMEX 作为交易买卖平台,它除了有非常完善的 API 支持以外,还提供了测试网络,方便开发和调试。
之后我们应该使用获取到的市场数据,运用技术指标进行计算分析。而后根据计算的结果,设定一系列条件判断,也是所谓的量化策略。
TA-Lib 内含 200 多种常用的技术指标算法,已经完全能满足我们的需求。
下单需要获取到账户权限,因此我们应该在交易买卖平台上创建一个拥有下单权限的 API 密钥。
我们能够正常的使用 supervisor 守护程序来长久运行开发好的量化机器人程序。
程序开始运行后,发出交易信号时,也可以在交易买卖平台看到自动下单成交的效果: