【1-3】 区块链量化投资系列课程 - 跨期套利
NO.1 QUANT.LA 量化干货聚集地 宽客在线
索罗斯在1987年撰写的《金融炼金术》 一书中,曾经提出过一个重要的命题:I believe the market prices are always wrong in the sense that they present a biased view of the future.
图片来源:网络
市场有效假说只是理论上的假设,实际上市场参与者并不总是理性的,并且在每一个时间点上,参与者不可能完全获取和客观解读所有的信息,再者就算是同样的信息,每个人的反馈都不尽相同。
也就是说,价格本身就已经包含了市场参与者的错误预期,所以本质上市场价格总错误的。这或许是套利者的利润来源。
NO.2 QUANT.LA 量化干货聚集地 宽客在线
根据上述原理,我们也就知道,在一个非有效的期货市场中,不同时期交割合约之间受到市场影响也并不总是同步,其定价也并非完全有效的原因。
那么,根据同一种交易标的的不同时期交割合约价格为基础,如果两个价格出现了较大的价差幅度,就可以同时买卖不同时期的期货合约,进行跨期套利。

image
图片来源:网络
与商品期货一样,数字货币也有与之相关的跨期套利合约组合。如在 OkEX 交易所中就有:ETC 当周、ETC 次周、ETC 季度。
举个例子,假设 ETC 当周和 ETC 季度的价差长期维持在 5 左右。如果某一天价差达到 7,我们预计价差会在未来某段时间回归到 5。那么就可以卖出 ETC 当周,同时买入 ETC 季度,来做空这个价差。反之亦然。
NO.3 QUANT.LA 量化干货聚集地 宽客在线
尽管这种价差是存在的,但是人工操作耗时、准确性差以及价格变化的影响,人工套利往往存在诸多不确定性。
通过量化模型捕捉套利机会并制定套利交易策略,以及程序化算法自动向交易所下达交易订单,快速准确捕捉机会,高效稳定赚取收益,这就是量化套利的魅力所在。

image
图片来源:网络
本篇将会教大家如何在数字货币交易中,利用发明者量化交易平台和 OkEX 交易所中 ETC 期货合约,以一个简单的套利策略,来演示如果捕捉瞬时的套利机会,把握住每一次可以看得到的利润,同时对冲有可能遇到的风险。
NO.4 QUANT.LA 量化干货聚集地 宽客在线
创建一个数字货币跨期套利策略
难易度:普通级

image
图片来源:网络
策略环境
交易标的:以太经典(ETC)
价差数据:ETC 当周 - ETC 季度(省略协整性检验)
交易周期:5 分钟
头寸匹配:1:1
交易类型:同品种跨期
策略逻辑
做多价差开仓条件:如果当前账户没有持仓,并且价差小于 boll 下轨,就做多价差。即:买开 ETC 当周,卖开 ETC 季度。
做空价差开仓条件:如果当前账户没有持仓,并且价差大于 boll 上轨,就做空价差。即:卖开 ETC 当周,买开 ETC 季度。
做多价差平仓条件:如果当前账户持有 ETC 当周多单,并且持有 ETC 季度空单,并且价差大于 boll 中轨,就平多价差。即:卖平 ETC 当周,买平 ETC 季度。
做空价差平仓条件:如果当前账户持有 ETC 当周空单,并且持有 ETC 季度多单,并且价差小于 boll 中轨,就平空价差。即:买平 ETC 当周,卖平 ETC 季度。
NO.5 QUANT.LA 量化干货聚集地 宽客在线
上面是一个简单的数字货币跨期套利策略逻辑描述,那么如何在程序中实现自己的想法呢?我们试着在发明者量化交易平台先把框架搭建起来。
策略框架:

image
图片来源:发明者量化(QUANT.LA 量化干货聚集地 宽客在线
接下来,我们就需要根据实际交易流程和交易细节,在策略框架里面填充必要的细节代码。
一、交易前预处理
第1步:在全局环境中,声明必要的全局变量。
- 声明一个配置图表的 chart 对象
var chart = { } - 调用 Chart 函数,初始化图表
var ObjChart = Chart ( chart ) - 声明一个空数组,用来存储价差序列
var bars = [ ] - 声明一个记录历史数据时间戳变量
var oldTime = 0
第2步:配置策略的外部参数。

image
图片来源:发明者量化
第3步:定义数据处理函数
基础数据函数:Data ( )
创建一个构造函数 Data,并定义它的内部属性。包括:账户数据、持仓数据、K线数据时间戳、套利A/B合约的买/卖一价、正/反套价差。

image
图片来源:发明者量化
获取持仓函数:mp ( )
遍历整个持仓数组,返回指定合约、指定方向的持仓数量,如果没有就返回 false

image
图片来源:发明者量化
K线和指标函数:boll ( )
根据正/反套价差数据,合成新的K线序列。并返回由boll指标计算的上轨、中轨、下轨数据。

image
图片来源:发明者量化
下单函数:trade ( )
传入下单合约名称和下单类型,然后以对价下单,并返回下单后的结果。由于需要同时下两个不同方向的单子,所以在函数内部根据下单合约名称对买/卖一价做了转换。

image
图片来源:发明者量化
取消订单函数:cancelOrders ( )
获取所有未成交订单数组,并逐个取消。并且如果有未成交的订单就返回false,如果没有未成交的订单就返回true。

image
图片来源:发明者量化


雷达卡








京公网安备 11010802022788号







