A. 单一模型和融合模型区别
长期以来,期货市场的稳定运行一直是交易所关注的重点,对于期货品种的功能发挥起到重要作用。合约交易持仓量是期货市场运行的重要指标,也是利用期货管理风险的基础指标。为增强对市场趋势的了解,提高运行预判能力,本文基于合约历史运行规律及风控措施参数,开展数据分析,提取历史数据及风控参数作为输入特征,建立基于多个机器学习算法的融合模型,利用网格搜索方式设置最优参数,进行期货合约未来五日交易量、持仓量的预测。实验结果显示,本文构建的算法模型预测交易量平均准确率接近70%、持仓量平均准确率达到83%。同时,本文以案例分析的形式证实了融合模型和网格搜索技术对于预测准确率的提升存在显著效果。
一、项目背景
期货交易是现货市场的晴雨表,为商品远期定价提供基准,具有护航实体经济稳健运行的重要意义。期货交易价格由不同参与主体共同报价撮合而成。套期保值者利用市场锁定利润管理价格波动风险,投机者尝试判断行情获取利润。当市场交易过热时,期货价格会失真并偏离现货价格,可能给投资者和套保企业带来损失;反之,当缺乏流动性时,期货价格无法准确反映市场参与者的“共识”。因此,稳定的市场参与度是期货交易合理定价的重要基础。预判市场热度对于调节市场情绪,合理利用风控措施稳定行情至关重要。本文将核心问题定义为预测市场热度,即预测品种的交易持仓情况。通常来说,期货市场交易持仓趋势受到多方面因素的影响,如期货标的价格变化,突发舆情事件,政策影响等。多因素影响下,简单的规则算法难以有效预测交易持仓情况。基于此,本文尝试从多个维度提取有效特征,并利用三个独立的机器学习模型捕捉数据之间的不同关系。最后,利用网格搜索方法将三个模型的结果进行加权融合输出最终的预测结果。本文组织架构如下:第二章针对历史运行数据开展分析,研究了风控参数、结算价等与交易持仓量的关系;第三章就特征提取及三个单一模型的构建进行了详细介绍;第四章描述了模型融合及权重网格搜索技术;第五章设计实验验证模型有效性并设计方法解释模型结果;第六章为模型可解释性研究;第七章为总结与展望。
二、历史运行分析
机器学习相关问题中,数据分析是整个数据建模的基础,决定了特征提取质量与模型最终效果。数据分析对于深入了解目标问题起到重要作用,并指导模型的迭代构建。本文数据分析涵盖了众多维度,下面挑选四个方面对交易所历史数据简要分析。
(一)主力合约的生命周期(双峰现象)
回溯历史数据,所有合约在挂牌摘牌整个周期中,都会经历交易持仓量逐渐放大随后下降的过程。其中,有较大比例的主力合约(接近40%)在挂牌摘牌的整个周期会呈现“双峰”现象。“双峰”现象即合约在成为主力之后,交易量与持仓量会经历两个峰值,其中交易量尤为明显。我们以图1、2分别展示玻璃期货1705与棉花期货1801两个合约的交易持仓走势。从图中可以看出,虽然玻璃、棉花分属于非农与农两个类别,但是交易量上都呈现出较为典型的双峰形态。该现象产生原因可能一是当合约成为主力合约之后,交易资金会快速流入,导致交易持仓量快速放大;二是前主力合约进入交割摘牌阶段,主力合约因此达到第二个高峰。双峰现象的周期性规律对于我们掌握品种运行规律及预测交易持仓起到指导性作用。
图1.玻璃1705合约交易持仓走势图
图2.棉花1801合约交易持仓走势图
(二) 品种交易持仓量与价格关系
为探索交易、持仓量的影响因素,本文着重分析价格波动与交易持仓量之间的关系。交易市场上存在一种“共识”,即认为价格的波动会引起交易持仓量的放大。因此,本文尝试计算价格波动与交易持仓量变化之间的皮尔森相关系数1 ,研究从长期运行维度来看价格波动是否会实质上引起交易量与持仓量的放大。我们定义如下三个指标:
其中T表示当前日期,N表示时间差,PT表示T日结算价格,VT表示T日交易量,HT表示T日持仓量;相应的,PT-N、VT-N、HT-N分别表示T-N日的对应数值;Pdelta表示以T日与T-N日之间价格波动比例的绝对值,Vdelta表示对应的交易量波动比例实际值,Hdelta表示持仓量波动比例实际值。我们分别计算当N设置为[1-5]日时,Pdelta与Vdelta、Hdelta之间的皮尔森系数。实验中,我们选取了2016-2018年郑商所已上市的所有品种,并对品种下的全部挂牌合约进行汇总。具体情况见下表。
表1.价格波动与交易持仓变化相关系数表
表1中PD1-HD1表示当N值取1时,Pdelta与Hdelta之间的关联系数;PD1-VD1表示当N值取1时,Pdelta与Vdelta之间的关联系数,以此类推。从表中易知,在不同N的取值下,所有品种的相关系数均为正。因此,交易持仓量的变化与价格波动的绝对值之间确实存在着正向关系。但是,学术界一般认为,当相关系数|r|>0.8时,两变量间存在高度相关性;当0.6<|r|<0.8时,可以认为两变量具备较强相关性;当0.4<|r|<0.6时,两变量具备中等相关性;当0.2<|r|<0.4时,可认为两变量相关性较弱。从表中可发现,除少数蓝色区域(大于0.4),大多数品种交易持仓量的变化与价格波动幅度的关系均较弱,且间隔日期N的长短对于结论也无较明显影响。整体来看,价格波动对于交易量、持仓量趋势均有一定正向影响。在提取特征时,需要将价格波动相关数据引入模型,但需要设计模型结构捕捉非线性关系提高数据价值。
(三) 品种交易持仓与风控措施参数的长期关系
除价格波动外,本文同时研究风控参数对于交易持仓量的长期影响。风控参数的设置拟在调节市场热度,平抑行情变化。考虑到保证金、手续费等参数与交易持仓量的变化量纲不同,在分析相关参数与交易持仓量变化波动相关性时,本文决定采用变异系数(Coefficient of Variation)来衡量不同风控参数下交易、持仓量的运行情况。具体计算方式如下。
变异系数越大,交易持仓相比其平均值波动幅度越大。本文以2016-2018年各品种的相关数据为基础,分别计算不同品种运行的变异系数,并利用皮尔森系数计算风控参数与变异系数之间的关系。本文以保证金与平今仓手续费为代表进行重点分析。具体结果见表2、3。考虑到相关系数的计算要求相关风控参数经历过多次调整,因此表2、3仅保留了所选区间内符合条件的品种进行分析。
表2.保证金与品种长期波动的变异系数
表3.平今仓手续费与品种长期波动的变异系数
从表2、3可发现,整体来看,保证金及平今仓手续费数值大小与交易持仓波动变异系数的关系为负相关。当保证金或平今仓手续费增大,对应品种的交易持仓量波动比率相对更小,具体数值因品种差异而有较大的变化。观察表格,发现存在部分品种的相关系数为正的情况,可能是因为调整点聚集在单边行情或大波动行情下。基于上述分析,我们决定将风控措施参数引入特征序列,作为预测的基础。
(四) 品种交易持仓行情与风控措施参数的短期关系
除长期维度外,本文以2016-2018年相关数据为基础,尝试探索风控参数的短期变化对市场运行的影响。经数据分析,从全市场角度来看,保证金及手续费变化对于交易持仓量的短期影响较为随机,没有显著规律。基于此,本文决定根据交易特征将客户分为四个群体,如长线客户、短线客户、大客户及小客户2 。整体来看,保证金对于持仓量影响较明显,而平今仓手续费对于交易量影响更显著。具体见图3、4。图3中四个小图分别代表四个客户群体下保证金调整幅度与持仓量之间的关系。x轴表示保证金调整前后数值变化的大小,y轴表示保证金调整前后五日内持仓量均值的变化幅度。图中每一个点均代表历史上一次真实调整。图4中,x轴代表平今仓手续费调整幅度,y轴表示调整前后五日内交易量均值变化幅度。观察图3可知,当保证金上调时,大客户及长线客户持仓量呈现降低趋势;当保证金下调时,小客户及短线客户的持仓量呈现上涨趋势。观察图4可知,平今仓手续费上调对于短线客户交易量减少的影响较为明显,也符合普遍认知;相应的,下调手续费对于短线及小客户交易量促进有一定作用。
短期来看,风控措施参数对于不同客户群体的交易持仓有一定影响。因此,本文将风控参数措施的变化值也引入特征向量。
图3.不同客户群体下保证金调整幅度与调整点前后五日持仓量均值变化关系
图4.不同客户群体下平今仓手续费调整幅度与调整点前后五日交易量均值变化关系
三、特征工程与模型构建
基于上述分析,交易持仓量受到多重因素的影响,不同因素影响程度不一而同。本文尝试利用多模型融合方式捕捉数据之间的不同关系,挖掘深层价值,并对未来交易持仓量进行预测。具体问题定义为:针对任一合约,第T日收盘后,根据当日现行风控措施参数及历史运行数据,预估未来5个交易日的交易量与持仓量。
数值预测相关问题中,特征选择是模型构建的重要基础,决定了模型效果。本文经过数据分析及实验迭代,最终决定选择包含结算参数、行情特征、客户特征及合约特征等四大类共317维特征。其中,结算参数包含如历史价格波动、合约间价差等多维度特征;行情特征包含了历史交易持仓相关数据特征;客户特征包含不同属性客户的特征数据及不同客户群体的交易特征;合约特征重点提取了合约运行特征及合约阶段,约束预测结果。
表4.数据特征表
上述317维特征中,7维为合约约束性特征,310维为历史交易相关的时序特征。完成特征提取后,本文开始构建三个机器学习模型。具体细节如下。
(一)整合移动平均自回归(ARIMA)
在统计与经济相关领域,ARIMA(Autoregressive integrated moving average)模型是一种常用的时间序列预测算法,该模型通常应用于平稳时间序列,或通过差分平稳过程消除均值方程的非平稳性的序列。其中,自回归(AR)是统计上处理时间序列的一种方法,衡量序列自身在不同时刻随机变量的相关性,利用变量以往时刻的取值来预测当期时刻的取值,并假设它们为线性关系。该方法被广泛的应用于金融序列相关的建模问题中。移动平均模型(MA)是另一种对单一变量进行时间序列建模的方法。因本文的问题较为契合ARIMA的常用场景,因此决定利用它捕捉交易持仓量序列的时序关系。
(二)基于支持向量机的回归模型(SVR)
ARIMA模型是基于捕捉时序相关性直接预测未来交易量持仓量,同时我们希望利用更多的信息量以求获得更好的预测效果。我们决定利用支持向量机来预测未来交易量持仓量的涨跌幅度作为补充。支持向量机(Support Vector Machine)是一种广泛应用于分类与回归问题中的机器学习模型。该方法的核心是将低纬度不可分特征使用“核函数”有效的进行非线性处理,映射到高维特征空间。通过寻找高维空间中的超平面对数据进行分类或回归。
(三)序列到序列模型(Seq2Seq)
Seq2Seq模型,全称为Sequence to Sequence,是由谷歌大脑团队和Yoshua Bengio团队提出的一种广泛运用在翻译、文本自动摘要及一些回归预测问题上的深度神经网络。在提出之初,Seq2Seq主要被用来解决自然语言处理相关的问题。但因其强大的时序关系挖掘能力,近年来也被逐渐应用于数值型序列的预测问题中。如图所示,本文所用网络通过编码器(Encoder)与解码器(Decoder)两个过程将过往十日的行情特征作为输入序列,将其映射为未来五日的交易量或持仓量序列。编码器利用非线性函数将输入序列组合为隐藏层的隐藏向量,该向量具备表达输入序列信息及潜在关系的能力。解码器将传递来的隐藏向量进行解码,并结合输入的T~T+4日的市场行情特征,逐日预测未来T+1~T+5日的交易持仓情况。
图5.Seq2Seq模型流程图
四、多算法融合模型构建
期货市场行情瞬息万变,客户群体的交易持仓行为受到众多因素的影响,因此单一模型容易对历史数据产生过拟合现象,并且面对来
B. 期货合约的主要条款
期货合约是一种标准化的合约,具有以下特点:
期货合约的商品品种、数量、质量、等级、交货时间、交货地点等条款都是既定的,是标准化的,唯一的变量是价格。期货合约的标准通常由期货交易所设计,经国家监管机构审批上市。
期货合约是在期货交易所组织下成交的,具有法律效力。期货价格是在交易所的交易厅里通过公开竞价方式产生的。国外大多采用公开喊价方式,而我国均采用电脑撮合成交。
期货合约的履行由交易所担保,不允许私下交易。
期货合约可通过交收现货或进行对冲交易履行或解除合约义务。
③报价单位:每计量单位的货币价格。国内期货都是以人民币报价,但不同品种计量单位有所区别,大部分都是元/吨,个别特殊,如黄金是元/克,白银是元/千克。
④最小变动价位:合约每计量单位报价的最小变动数值。在期货交易中,每次报价的最小变动数值必须是最小变动价位的整数倍。最小变动价位×交易单位,就是该合约价值的最小变动值(也即通常所说的1手合约每一跳资金变动多少)。例如1手螺纹钢期货合约的最小变动值是1元/吨×10吨=10元。
⑤涨跌停板幅度:每日价格最大波动限制(又称涨跌停板)是指期货合约在一个交易日中的交易价格不得高于或者低于规定的涨跌幅度,超过该涨跌幅度的报价将被视为无效,不能成交。涨跌停板幅度是计算每个交易日涨跌停价的依据,涨跌停价=昨结算价*(1±涨跌停板幅度)。
需要注意的是,交易所官方期货合约里的涨跌停板幅度都不能作为计算依据,官方数据都是合约刚上市时固定的标准,但涨跌停板幅度后期会有变动,官方合约则未做修改,故投资者应该:①以交易所实时公布的结算参数为标准;②交易软件进入具体合约行情界面,按F10
⑥合约交割月份:指该合约到期进行实物交割的月份。
⑦交易时间:由交易所统一规定,交易者只能在规定的交易时间内进行交易。(具体交易时间这里不再叙述)
⑧最后交易日:指某一期货合约在合约交割月份中进行交易的最后一个交易日,过了这个期限的未平仓期货合约,必须按规定进行实物交割或现金交割。
需要注意的是,不是所有合约客户都能进入交割月交易该品种,同时也不是所有品种客户都能在最后交易日进行交易。大连、郑州的临近交割月份的合约自然人不可以进入交割月份,即自然人客户在持有大连郑州的临近交割月份的合约客户必须在合约进入交割月份的前一交易日将该合约平仓处理。上海的临近交割月份的合约自然人可以进入交割月份,但是必须满足交易所规定的持仓手数规则,同时,客户在交割月交易该合约时,不能交易到合约的最后交易日当天,必须在最后交易日的前两个交易日前将该合约进行平仓处理。股指合约客户可以一直交易到合约的最后交易日当天,客户当天不平仓,则该持仓将直接由交易所在收盘后按照当天的交割结算价撮合进行现金交割。
⑨最后交割日:指合约标的物所有权进行转移,以实物交割或现金交割方式了结未平仓合约的时间。
⑩交割品级:指由期货交易所统一规定的、准许在交易所上市交易的合约标的物的质量等级。期货交易发生实物交割时,交易双方无须对标的物的质量等级进行协商,按交易所期货合约规定的质量等级进行交割。
11)交割地点:由期货交易所统一规定的进行实物交割的指定地点。金融期货交易不需要指定交割仓库,但会指定交割银行。
12)最低交易保证金:期货交易中,买卖双方必须按照其所买卖期货合约价值的一定比率缴纳保证金,用于结算和保证履约。交易所根据合约特点设定最低保证金标准,并可根据市场风险状况等调节保证金水平。
13)交割方式:期货交易的交割方式分为实物交割和现金交割两种。商品期货、国债期货采取实物交割,股指期货采用现金交割。
14)交易代码:每个期货品种都有其唯一的代码,如螺纹是RB。
C. 商品期货的结算价是盈利可却按收盘价扣费
首先大家要知道,期货有一个当日无负债结算制度,用最通俗的话说就是交易所每天按照结算价进行“清算”扣除相应的费用和相应资金的划转!那么我们的账单就是按照这个逐日盯市来计算的,下面的各种公式!
逐日盯市:依据当日无负债结算制度,每日计算当日盈亏。
① 上日结存:上一交易日结算后客户权益
② 当日存取合计=出入金=当日入金-当日出金
③ 平仓盈亏=平当日仓盈亏+ 平历史仓盈亏
平当日仓盈亏=当日开仓价与平仓价之差×平仓手数×交易单位(合约乘数)
平历史仓盈亏=平仓价与昨日结算价之差×平仓手数×交易单位(合约乘数)
④ 持仓盯市盈亏(浮动盈亏)=当日持仓盈亏 + 历史持仓盈亏
持当日仓盈亏=当日结算价与当日开仓价之差×手数×交易单位
持历史仓盈亏=当日结算价与昨日结算价之差×手数×交易单位
⑤ 当日盈亏=③+ ④ = 平仓盈亏 + 持仓盈亏
⑥ 当日手续费:具体计算见前文
⑦ 当日结存=上日结存+ 出入金+ 平仓盈亏 + 持仓盯市盈亏 - 当日手续费
⑧ 客户权益=当日结存
⑨ 保证金占用:具体计算见本公众号的保证金的算法一栏
⑩ 可用资金=客户权益- 保证金占用
⑪ 风险度=持仓保证金占用/客户权益×100%
该风险度越接近于100%,风险越大。
若客户没有持仓,则风险度为0;
若客户满仓,则风险度为100%,同时也表明客户的可用资金为0。
若风险度大于100%,说明可用资金为负,这是不被允许的,此时期货公司便有权对客户的持仓进行强行平仓(以市价成交),直至可用资金为正。
⑫ 追加保证金:指客户当保证金不足时须追加的金额,追加至可用资金大于等于零
注:盈亏计算方式不同,不影响当日出入金、当日手续费、客户权益、质押金、保证金占用、可用资金、追加保证金、风险度等参数的金额或数字;
例:
某投资者16年11月28日帐户入金30,000元,当天在3200点时买进开仓RB1705合约5手,当日结算价为3281点。该投资者的手续费为成交金额的万分之1.2,双边收取,平今时平仓收取成交金额的万分之6,交易保证金比例13%(交易单位10吨/手)。
11月28日帐户情况:
手续费=3200×10×0.00012×5=19.2
持仓盯市盈亏=(3281-3200)×10×5=4050(即公式④)
客户权益=30000+4050-19.2=34030.8(即公式⑦⑧)
保证金占用=3281×10×13%×5=21326.5 (即公式⑨)
可用资金=34030.8-21326.5=12704.3(即公式⑩)
风险度=21326.5÷34030.8×100%=62.67%(即公式⑪)
11月29日该投资者在3250点又买进开仓RB1705合约5手。当RB1705合约期货价格跌到3150点时,卖出平仓2手(上期所品种默认先平今仓,故今仓还剩3手),当日RB1705合约结算价为3226点。
11月29日帐户情况:
手续费=3250×10×0.00012×5 + 3150×10×0.0006×2=57.3
平仓盈亏=(3150-3250)×10×2= - 2000(即公式 ③)
持仓盯市盈亏=(3226-3250)×10×3+(3226-3281)×10×5= - 3470(即公式④)
客户权益=34030.8-2000-3470-57.3=28503.5(即公式⑦⑧)
保证金占用=3226×10×13%×(5+3)=33550.4(即公式⑨)
可用资金=28503.5-33550.4=- 5046.9(即公式⑩)
风险度=33550.4÷28503.5×100%=117.71%(即公式⑪)
追加保证金(使可用资金≥0)= 5046.9
对于如螺纹钢这样的有夜盘品种,如果该投资者在当日晚上20:50以前未将不足保证金(即5046.9元)汇入其期货账户,在20:55分后公司将有权执行强制平仓。
对于没有夜盘的品种,如果投资者在下一个交易日上午8:50以前未将不足保证金汇入其期货账户,在8:55分后公司将有权执行强制平仓。
11月29日晚上20:50前该投资者帐户入金30000元,11月30日无任何操作,当日RB1705合约结算价为3040。
11月30日帐户情况:
持仓盯市盈亏=(3040-3226)×10×8= - 14880(即公式④)
客户权益=28503.5+ 30000-14880=43623.5(即公式⑦⑧)
保证金占用=3040×10×13%×8=31616(即公式⑨)
可用资金=43623.5-31616=12007.5(≥0)(即公式⑩)
风险度=33550.4÷28503.5×100%=72.47%(即公式⑪)