首页 / 芷瀚动态 / 芷瀚观点

芷瀚动态

News

卷积神经网络与量化交易

2023-10-17

卷积神经网络与量化交易 在处理时间序列数据时,人们通常会使用LSTM模型,卷积神经网络CNN模型使用的较少,因为CNN主要被用于处理图像。但随着CNN在图像处理上被更广泛地使用和研究,或许将时间序列数据通过合理的方式以图像传入CNN来进行分析、预测也会有意想不到的效果。本文将简单介绍CNN的原理以及在量化交易中使用CNN的三个案例。 一.卷积神经网络 CNN 卷积神经网络(Convolutional Neural Network,CNN)是一种用于图像和语音识别、自然语言处理等任务的深度学习模型。与传统的全连接神经网络相比,卷积神经网络在处理图像等二维数据时具有更好的效果。 卷积神经网络的核心思想是利用卷积运算和池化操作对图像进行特征提取。具体来说,卷积神经网络通过多个卷积层和池化层级联组成,其中卷积层用于提取图像中的局部特征,而池化层则用于减小特征空间的大小,从而降低计算复杂度。 卷积层: 卷积运算可以理解为由原图和滤镜的相组合,提取出一个包含图像局部特征的特征图。假设有如下图所示的由0和1组成的5*5矩阵(原图)和3*3矩阵(滤镜): 将两个矩阵相乘,得到下图右侧的特征图。 实际效果: 池化层: 池化操作包括最大池化(Max Pooling)、平均池化(Average Pooling)与和池化(Sum Pooling),最大池化在每个池化区域内选择最大的特征值作为其输出,忽略其他特征值,通常用于提取输入数据中的最显著特征,例如物体的边缘和角点等。 平均池化在每个池化区域内计算特征值的平均值作为其输出,通常用于平滑输入数据,减少特征图中的噪声和冗余信息。和池化在每个池化区域内计算特征值的和作为其输出,与平均池化类似,但更少使用,通常用于对输入数据的特定情况进行建模。 在卷积和池化之后,将得到矩阵摊平成矢量传入全连接层,将特征映射到预测结果上。 由卷积层、池化层、全连接层组成的卷积层神经网络结构如下: 除了以上介绍的层外,卷积神经网络还可以包括其他类型的层,如批量归一化层、Dropout层等。批量归一化层用于加速训练过程和改善模型效果,Dropout层则用于防止过拟合。总体来说,卷积神经网络通过对图像进行卷积操作和池化操作实现对图像特征的提取和压缩,有效地降低了神经网络模型的复杂度,提升了模型的性能和鲁棒性,成为了当今图像识别领域最广泛应用的深度学习模型之一。 二.CNN在量化交易中的运用 案例一 使用CNN预测股票价格 O.B. Sezer与A.M.Ozbayoglu 将15个常用的技术分析指标(RSI, Williams %R, WMA, EMA, SMA, HMA, Triple EMA, CCI, CMO, MACD, PPO, ROC, CMFI, DMI, PSI)在DOW 30中的30支股票和常见的9支ETF从2002至2017的每日收盘价上应用,并将每15天的输出(1,0,-1 分别对应买入、持有、卖出),作为一个15*15的矩阵作为input放入CNN中,进行训练。 input生成的图像如下: CNN使用的两个卷积操作的公式如下(t代表time, I代表image, K代表kernel) 最后将CNN模型预测的买入、持有、卖出操作的值代入实际价格,将回测的年化利率与Buy & Hold(BaH)策略, RSI (14天,70-30)策略,SMA(50天)策略,LSTM,MLP回归策略回测的年化利率进行比较,结果如下: ETFs DOW 30中的股票 可见CNN对该实验中的大部分标的资产的预测能力相比其他常见的策略有显著的优势。 案例二 使用CNN分析LOB,并预测短期价格 在这项研究中,Tsantekidis使用的数据是limit order book上从买10到卖10的二十档的价格和成交量,用于测试的是10天5支股票共450万个LOB数据。再将数据进行z-score标准化后,将前中间价和下一个中间价进行平滑处理。 之后对所有数据按如下方式打标签,其中α是可以保证价格被判断为上涨或下跌的最小变动数。 进行以上数据处理之后,将n个100*40的矩阵作为input输入如下图的CNN模型(100指每个价格的预测用前100组数据,40是20档乘以2(价格、成交量)),以此预测mid price。 最终输出的结果的错误率(cost)、查准率(f1)和精确度(kappa)如下: 将CNN预测的结果与SVM和MLP模型进行比较: 我们发现CNN在绝大多数情况下的预测精准度明显高于SVM和MLP,不过此研究仅测试了5支股票10天的LOB数据,使用CNN的方法有一定参考性,但实际应用还需要更多的测试和比较。 案例三 使用CNN与LSTM构建一个GAN来预测股票价格 生成对抗网络(generativeadversarialnetwork, GAN)由一个生成器(generator)和判别器(discriminator)组成,其中生成器用来生成与真实样本相似的合成数据,判别器用来评估给定数据是否是真实数据还是生成的数据。GAN的训练过程是通过Generator和Discriminator之间的博弈来实现的。Generator试图生成更逼真的合成数据以欺骗Discriminator,而Discriminator则努力区分真实数据和合成数据。这个过程是一个动态的竞争和学习过程,最终目标是找到一个平衡点,使得生成器能够生成高质量的合成数据,并且判别器无法准确区分真实数据和合成数据。Staffini的深度卷积生成对抗网络(Deep Convolutional Generative AdversarialNetwork (DCGAN))使用CNN和LSTM构建了生成器,使用两个CNN构建了判别器,并使用这套模型在意大利的FTSE MIB指数中的10支股票从2005年至2021年的收盘价、开盘价、最高最低价、和成交量和一系列技术指标的结果(和案例一相似)上进行训练,并预测的收盘价。使用DCGAN可以模拟一个交易员的成长历程,从做出不切实际的股价预测(最初的生成器),通过自我矫正以及常年累月学习正确的研究方法(判别器的判别过程),最终成为一个高胜率的交易员(最终的生成器)。 最终将模型预测的结果与差分自回归移动平均模型(ARIMAX)、随机森林、LSTM、常规GAN的预测结果进行比较,结果如下: 可见DCGAN的预测效果更好,错误率明显更低。 从以上三个使用不同方法和数据运用CNN来预测股票价格的案例中我们可以看出,CNN在量化交易的实际运用中有一定的意义和效果,不过仍需要更多的检验。案例一和三中的数据输入均使用了一系列技术指标的结果,最终的预测结果还需要和使用同样指标的多因子模型进行相关性检测;案例二使用了LOB数据作为输入,但由于LOB数据过于庞大,只能使用5支股票10天的数据进行检测,选择的样本可能不具有普适性;案例三虽然选择的时间长度很长,但标的资产都是意大利的股票,该模型对国际主流的标的资产的预测能力还需要进行进一步的测试。 参考文献: Sezer O.B., Ozbayoglu A.M., 2018, Algorithmic financial trading with deep convolutional neuralnetworks: Time series to image conversion approach Tsantekidis, A., Passalis, N., Tefas, A., Kanniainen, J., Gabbouj, M., and Iosifidis, A.,2017, “Forecasting stock prices from the limit order book using convolutionalneural networks,” in 19th IEEE Conference on Business Informatics, Vol. 1 (Thessaloniki), 7–12. Staffini Alessio, 2022, Stock Price Forecasting by a Deep Convolutional Generative Adversarial Network, Front. Artif. Intell. Prabhu, 2018, ‘Understanding of Convolutional Neural Network (CNN) — Deep Learning,’ https://medium.com/@RaghavPrabhu/understanding-of-convolutional-neural-network-cnn-deep-learning-99760835f148

马尔科夫决策过程与做市策略

2023-09-19

低延迟均线LLT模型与交易择时

2023-08-21

投资如果能够准确把握市场的走势,那将是最为简单有效的。但是我们常常会面临:平滑性越好,也就是局部的波动性影响会变小,但是同时会产生很高的延迟。而LLT模型则很好的平衡了这个问题,在能够很好的把握市场整体变化的同时,并且能够凸显出转折点,降低延迟性。 一、传统均线 1. MA均线(传统移动平均线) (1)计算公式 (2)特点:MA均线采用前面n日价格的算数平均值,其中很好的刻画的价格趋势,但是n值越大,延迟性越高。 (3)近一年上证指数的变化以及MA均线示意图 2. EMA均线 (1)EMA均线是在MA均线的基础上面改进而来,通过对靠近计算日的价格赋予更高的权重,利用了趋势的连续性。 (2)计算公式 其中EMA(T)和EMA(T-1)分别代表EMA均线T和T-1日的价格。@表示0-1的参数 二、LLT模型简介 1. 模型理解: (1)EMA均线指标的计算,正是信号处理当中的一阶线性滤波处理器。而LLT模型是二阶低通滤波器。其延迟反应相比于EMA均线的有了很大的改进。 (2)数学原理:LLT模型采用Z变换。本质是离散时间的laplace变换。 其中z表示复频域,f(k)表示时域信号。 定义传输函数 传输函数定义为:输出信号z变换和输入信号z变换的比值。看作输出和输入强度的比值。得到EMA均线的传输函数: 传输函数是是指零初始条件下线性系统响应(即输出)量的拉普拉斯变换(或z变换)与激励(即输入)量的拉普拉斯变换之比。传输函数代表了输入和输出之间的联系,不受输入输出值的影响,可以用它来分析系统的动态特性等相关性质。 2. LLT模型的设计: LLT是一个二阶的滤波器,广发证券此研报作者做了四步转化将EMA一阶滤波器转化为LLT二阶滤波器: (1)为了使构造的高通滤波器,即不存在高频分量输出的1−H(z),首先修改EMA公式为: 将公式转换至频域以便于进行滤波,那么修改后的EMA滤波器变为 (2)构建一阶高通滤波器,其结构为 (3)完成二阶滤波函数的构建 2阶高通滤波器为: (4)得到了二阶高通滤波函数: (5)最后再经过Laplace逆变换得到LLT的公式为 (6)模型解释: 应该在LLT值大于LLT的上一值时大趋势来临,买入股票:当LLT值小于LLT前值时大趋势变为下降,卖出股票。 三、模型回测以及总结 在2005年-2023年对此策略进行回测,年化收益能够做到10%以上。发现部分细节上和大盘波动趋势相近。在控制回撤这方面能够前期做到相对比较好,尤其是在风险来临的时候。但是在2020年之后,模型收益较差。所以综上认为LLT模型可以作为风控模型,来控制回撤,辅助于其他模型。 资料来源: 1.广发证券:罗军、俞文冰、叶涛、安宁宁《低延迟趋势线与交易性择时——短线择时策略研究之三》 2. https://zhuanlan.zhihu.com/p/34097449

冲击成本

2023-07-19

一、冲击成本 冲击成本全称价格冲击成本。国际上通常用它来来衡量股市的流动性。它也可称为流动性成本,是指一定数量的委托(订单)迅速成交时对价格的影响,因此是一个包含即时性和合理价格两方面要素的指标。冲击成本被认为是大型机构无法摆脱的致命伤害。 通常而言,交易成本可以分为两部分,一部分是直接成本,这部分可以很方便的计算,包括国家对交易征收的税,交易的手续费和券商的佣金等。这部分通常难以避免,一般不会对这部分的内容进行优化。另一部分则是交易的间接成本,这部分没有明确的规定,产生于交易的过程当中,包括交易的冲击成本,交易时间延长产生的交易价格变动机会成本以及交易未执行的机会成本等。正常而言,一个好的交易策略应当在交易的冲击成本和交易的机会成本进行平衡。如图一为成交概率按照U型分布时,市场冲击成本和机会成本的关系。 图 1交易成本和冲击成本的关系 可以看出,只有当交易的机会成本和市场冲击成本完成平衡时才能实现总的交易成本的降低。本文主要考虑对市场的冲击成本的研究,不考虑交易的机会成本对总成本的影响。 二、冲击成本的影响因素 冲击成本的大小第一个影响因素是下单的手数。一般而言,下单的手数越大,冲击成本的就越大。所以当有一个大额的订单时,通常机构会选择将大额的订单拆分成不同大小的小订单在不同的时间进行交易,用于降低交易的冲击成本。但是不同的拆单的算法降低冲击成本的程度有所不同,本文将对部分拆单算法进行简单的介绍。 冲击成本的第二个影响因素是流动性的大小。市场的流动性越小,冲击成本越大。股票市场上每天的成交金额有几百亿元,看上去规模不小,流动性也可以。但那是上干只股票共同交易的结果,如果细分到不同的个股,不难发现其中一些股票的流动性还是很差的。相对而言,买卖股指期货的冲击成本就非常小,这是因为相应的股指期货合约只有几个,交易集中导致流动性非常强。这也是为什么通常在进行期货交易时,大多数人会选择主力合约,因为主力合约流动性较好,合约容易交易,同时下单时的冲击成本要更小。 冲击成本的第三个影响因素是市场波动性的大小。市场的波动性越大,所造成的冲击成本越大。可以考虑一个波动率很小的市场,当你将一个较大的订单下入这个市场时,由于市场的波动较小,所以不同的时间下入的订单价格的差异较小,因此冲击成本较小。而当市场的波动率较大时,不同的时间下入的订单价格的差异可能十分的巨大,这样冲击成本就较大了。 三、VWAP算法 VWAP(成交量加权平均价格)是指拆分大额委托单在约定时间段内分批执行,使得最终买入或卖出成交均价尽量接近该段时间内整个市场成交均价的算法交易策略。 图 2 VWAP计算方式 VWAP算法考虑了历史成交量,未来的成交量预测、市场动态总成交量和拆单的时间段(就是总共要将总单 拆分成多少单分别以怎样的时间频率交易)三个因子。Vwap算法是一种被动跟踪市场均价,市场占有率最高且十分隐蔽的算法交易策略。但是VWAP非常容易受到市场价格波动的影响。虽然VWAP处于市场价格波动的中心位置,但是这也意味着VWAP的价格可能会受到市场的波动影响。如果市场出现异常波动,交易者可能会买入或卖出超过他们预期的价格。而在开盘时,市场的波动通常较大,所以Vwap算法在开盘时和市场波动较大时很有可能失效。 针对VWAP算法在开盘和市场波动较大可能失效的问题,其实我们可以设置参数用于提升VWAP算法在开盘和收盘时的敏感程度,同时按照预测或历史日内成交量分布占比进行成交。通过这种方式,我们可以降低交易成本,通过最佳交易执行路径, 有效降低交易冲击成本。 Vwap算法除了可以用于拆单降低冲击成本,同时还可以作为交易者的技术指标、经纪商或交易所提供的订单选项以及基准。 四、TWAP算法 TWAP 全称是 time-weighted average price(时间加权平均价格)。它是一种定价算法,用于计算特定时期内资产的平均价格。TWAP 的计算方法是将一段时期内多个点的价格相加,然后将该相加之和除以价格点总数。 图 3TWAP算法计算公式 例如,假设我们想要使用 15 秒的价格点间隔计算一分钟内资产的 TWAP。如果价格在 0 秒时为 100 美元,在 15 秒时为 102 美元,在 30 秒时为 101 美元,在 45 秒时为 98 美元,在 60 秒时为 103 美元,那么为了计算 TWAP,我们将对所有价格点(100、102、101、99、 103) 然后将它们除以时间点数 (5)。在这个例子中,TWAP 是 101 美元。 TWAP 算法依赖于历史价格数据,使其成为固有的滞后指标。这种滞后可能导致资产 TWAP 的价格在高度波动期间与市场价格会不同步,并可能被攻击者利用。虽然 TWAP 计算可以通过使用更短时间跨度的价格点来减少这种滞后,但这将使资本市场的攻击者参与操纵的成本降低。 五、冰山算法 冰山算法的原理是探测出某机构有大额挂单到来时,吃掉较低价格挂单,迫使机构大额挂单向上移动,再以较高价格卖出持有仓位。这个算法的优势在于,它可以在不影响市场价格的情况下,获取到更好的交易价格。 冰山算法的执行步骤较为简单,而且并没有时间步长的概念。冰山算法主要根据快照和连续委托时间决定是否需要触发下单。每次下单若没有超过目标价格,则以对手盘一价下单,否则以目标价格下单。若一个快照时间内委托没有全部成交,则需要进行撤单,在连续委托时间后重新下单。若当前价格超过了目标价格,则 以目标价格下单,且不再进行撤单和重新下单,直到当前价格不再超过目标价格。 冰山算法虽然简单,但是其受到市场认可,应用也比较频繁,因为它能够减小股价的大范围波动。 六、总结 本文简单的介绍了冲击成本的影响因素和一些降低冲击成本的方法。一个好的降低冲击成本的方式,不仅要平衡冲击成本,还要考虑拆单后不同时间下单可能带来的机会成本。 参考文献 【1】燕汝贞,李平,曾勇.基于VWAP的价格冲击成本估计及其影响因素研究[J].管理工程学报, 2016(3):5.DOI:10.13587/j.cnki.jieem.2016.03.016. 【2】https://zhuanlan.zhihu.com/p/448924138大额交易如何降低冲击成本?

GRU

2023-06-26

1.GRU简介 GRU(Gate Recurrent Unit)是循环神经网络(Recurrent Neural Network, RNN)的一种。和LSTM(Long-Short Term Memory)一样,也是为了解决长期记忆和反向传播中的梯度等问题而提出来的。GRU和LSTM在很多情况下实际表现上相差无几,但是GRU相比LSTM更容易计算。 2.GRU 2.1GRU的输入输出结构 GRU的输入输出结构与普通的RNN是一样的。 有一个当前的输入x^t,和上一个节点传递下来的隐状态h^(t-1),这个隐状态包含了之前节点的相关信息。 结合和x^t和h^(t-1),GRU会得到当前隐藏节点的输出y^t和传递给下一个节点的隐状态h^t。 2.2GRU的内部结构 首先,我们先通过上一个传输下来的状态h^t-1和当前节点的输入x^t来获取两个门控状态。如下图2-2所示,其中r控制重置的门控(reset gate), z为控制更新的门控(update gate)。 得到门控信号之后,首先使用重置门控来得到“重置”之后的数据,h^(t-1)=h^(t-1)⊙r再将h^(t-1) 与输入x^t进行拼接,再通过一个tanh激活函数来将数据放缩到-1~1的范围内。即得到如下图2-3所示的h'。 这里的h'主要是包含了当前输入的数据x^t。有针对性地对h^t添加到当前的隐藏状态,相当于“记忆了当前时刻的状态”。类似于LSTM的选择记忆阶段。 最后介绍GRU最关键的一个步骤,我们可以称之为“更新记忆”阶段。 在这个阶段,我们同时进行了遗忘了记忆两个步骤。我们使用了先前得到的更新门控。 更新表达式:h^t=(1-z)⊙h^(t-1)+z⊙h' 门控信号Z的范围是零到一,信号值越接近一,代表网络记忆下来的数据越多,该数据对训练结果的影响也越大。GRU的门控单元相比LSTM较少,这时因为GRU使用同一个门控单元Z同时进行选择和遗忘记忆。 3.量化案例 GRU模型输入变量为开盘价减日内最高价,开盘价减日内最低价,开盘价 减收盘价和成交量,输入维度为4。训练数据为2013年11月20日至2018年12月10日的沪银期货交易数据。通过 GRU 神经网络模型对沪银期货第N+1 天开盘价相对于第 N 天收盘价的涨跌概率情况进行预测,并以此构建交易策略如下: 当预测涨跌概率大于 65%且小于 80%时,在第 N 天收盘时多头开仓,并且在第N+1 天开盘时平仓; 当预测涨跌概率大于 20%且小于 35%时,在第 N 天收盘时空头开仓,并且在第N+1 天开盘时平仓。 选择日期从 2018 年 12 月 11 日到 2021 年 1 月 20 日的上海商品期货交易所白银期货主力连续合约的相关数据进行量化交易回测。首先通过选择优化后的模型预测下一天的涨跌概率,验证集预测天数共 514 天。通过模型预测涨跌概率结果根据量化投资策略来进行量化交易回测。 回测结果如表,策略总胜率为63.73%,年化收益率为31.55%,最大回测9.71%,夏普比为1.28。 参考文献:[1]崔梦颖. 基于GRU神经网络的沪银期货量化投资策略[D].华中科技大学,2021.DOI:10.27157/d.cnki.ghzku.2021.002598.

当前是:2/9 共45条信息 首页 上一页 下一页 尾页 跳转到:第
021-5068 6619 hr@cosmostar.cn
© 2017 RUNNING RECORDS LLC. ALL RIGHTS RESERVED. 沪ICP备18015628号-1