DRL-VWAP算法

news2024/11/24 13:15:27

在这里插入图片描述

摘要

在量化策略的交易端,为了更好的扩大策略的资金容量必须要考虑策略冲击陈本的降低。本文梳理了传统 VWAP 存在的诸多弊端,主要在于对于日内交易信息的缺失与忽略市场行情的影响。本文梳理了传统VWAP 算法存在的主要弊端,并改写了传统 VWAP 算法的公式,运用 DRL 的方式综合考虑交易量份额、行情信息、个股信息之间的互动,给出最优的子区间成交份额不仅要求策略的VWAP 买入价格与市场 VWAP 价格相一致,而且还要使得买入的总体价格处于目标交易区间的较低位置

在面对策略执行中的冲击成本问题,本文提出了DRL-VWAP算法,在传统 VWAP 算法的基础上,引入了动态冲击成本控制与冲击成本交易成本权衡机制,以更好实现对市场 VWAP 的跟踪与最终策略交易成本的降低。

意义

在实盘交易中,当资金量增大时冲击成本是一个非常现实的问题,可能会制约策略的资金量与收益能力。 VWAP 策略是缓解冲击成本的传统办法,但是仍有机动性不强以及无法合理降低交易成本的问题。本文把VWAP 策略转换为一类动态规划与控制的问题,企图再次运用强化学习方法做出改进,以求降低强化学习等一系列机器中高频算法交易过程中因为资金容量增大而产生的冲击成本的问题,在实盘交易过程中具有重要意义。

冲击成本

冲击成本,又称价格冲击成本、流动性成本,是指一定数量的委托订单迅速成交时对价格的影响,是套利成本套利成败与否的关键因素之一。更通俗的说法就是在迅速大规模地买进或者卖出证券,未能按照预定价位成交,从而多付出的成本就被称作冲击成本,一般在大机构中容易出现冲击成本过高的问题。举例而言,机构投资者看好了A股市场的某个标的资产,希望尽快建仓入场,但是市面上的以锚定价格挂的卖单并不多(当资金量足够大的时候,在一个单一价位的卖单供不应求几乎是必然的)。因此为了达到预期的仓位,大机构不得不承受更高价格的卖单完成全部的成交,由此比预期的建仓成本高的部分就是冲击成本。随着量化策略在市场上的资金规模越来越大,冲击成本也成了量化投资机构不得不考虑的严峻问题。原因在于,一量化交易策略在扩大资金容量的过程中非常容易造成实盘的买入成本大于预期成本,造成策略失效;二量化交易策略偏向相对高频的自动化交易把我稍纵即逝的交易机会,对交易的速度有着更高的要求,与此同时,瞬时的卖单数量可能小于买单时那么冲击成本就不可避免,因此许多量化交易策略必须评估策略执行时可能的冲击成本同时在收益与冲击成本做平衡。

简言之,一个直观的多头方的例子,当以约定价格期望成交的买单量大于市场上该价格总共所有的买单量时,期望买入成交量的剩余部分如果还期望成交那么就不再可能以该价格成交了,而往往是高于期望价格的价格,此时的多出的价差就是多头方需要额外支付的买入成本,也称作冲击成本。因此冲击成本和策略的资金量以及交易的频率息息相关

VWAP算法

VWAP(交易量加权平均价格)是指在一段时间内的证券的均价,也就是总的成交金额除以成交量。VWAP 代表的是证券在一个时间段内的市场平均价格。

VWAP 算法(成交量加权)是在量化投资领域的交易端是最早也是最经典的拆单算法,其基本思想就是通过将较大的交易单拆分成交小的交易单逐笔交易匹配市场真实的成交量分布,从而减少冲击成本,获得和市场一直的 VWAP 价格。以买入交易为例,其主要原理是,通过将大单分解为小单逐笔买入的方式,尽量使得资产的买入的VWAP 与市场的VWAP 之间的偏差最小,不会给交易带来额外的冲击成本。传统的VWAP算法,通过移动平均方法预测模型交易日的成交量分布,不考虑资产当日的盘内情况与市场整体情况,另外在买入算法的研究上,除了尽量降低VWAP 偏差,还可以加入一些交易增强的手段,进一步压低交易成本,因此传统的VWAP 算法也亟需改进来进一步适应更高频率与更大金额的交易。

  • VWAP 价格(以开盘后半小时的成交量加权为例)与开盘价格虽然单日会有偏离波动,但是纵观全年合计下来,这样的偏离实际上是非常小的

决定因素

一是日内成交量分布的预测,二是日内VWAP 价格的预测,两者都决定了最终的买入 VWAP 是否能够与市场VWAP偏离较小。

日内成交量分布的预测

  • 一个是拆分法,将影响日内成交量的因素分成共性与单独分别做预测。将日内的交易量分解为两个部分平均水平与特殊波动,平均水平代表了来自市场整体成交量波动给资产成交量带来的基准水平,而特殊波动反映了个股的自身因素带来的成交量波动,于是使用了 ARMA(1,1)和 SETAR模型分别对两部分进行预测,最终在 CAC40指数上应用,比传统 VWAP 策略减少了 7%的跟踪误差
  • 第二类,是预测模型上的创新,Alvim 使用 15 分钟成交量结合了支持向量机(SVM)以及偏最小二乘(PLS)方法预测日内成交量在开盘交易降低了 17.4%收盘交易降低了 45.66%的与传统 VWAP 相比的跟踪误差[22]。季怡轩等(2021)提出了局部波动模型,在处理高频数据与交易量较低波动的情形下具有一定优势基于模型的改进的方法比较少,同时也少有应用深度强化学习的方法的改进VWAP[23].

现有的缺点(价格不变性,日内静态性)

  • 传统VVWAP 假定了子区间的交易价格是不变的。价格是十分难以预测的因素,尤其是日内的时段价格,本身就具有较大的噪音,较难被准确预测。因此传统的方法往往是简单而奏效的,就使用时段左侧的时刻 VWAP 价格。但是如果换一个角度去考虑价格,或许可以从交易增强的方式给出合理的交易操作。比如,时段的涨跌趋势往往比瞬时的价格点更好预测。后文会围绕这点给出传统 VWAP 的优化算法。
  • 其次,传统 VWAP 对于成交量的分布的预测是在日内的静态,换言之,在交易日之前,交易时日的成交量分布预测与划分依据被设计好了,所有的交易量预测只是基于了前几日的区间成交量信息,而忽视了交易当日实时的日内走势与市场的整体环境。这使得传统 VWAP 算法并不够灵活,不能够依照当日的个股与市场环境调整成交量的分布。这样的成交量分布预测很难保证和市场一致。因此,必须运用日内的个股与市场信息动态地考虑市场子区间成交量分布的预测,这也是后文的改进算法提出的出发点。

综上所述,现有的 VWAP 算法改进方法大多没有考虑交易当日的盘口情况,另外也少有应用在金融时间序列中预测效果较好的深度学习,更没有能够体现市场与个体间交互的强化学习方法。和先前大多数研究,市场和个股自身特征都是影响其交易日 VWAP 价格的重要因素,

步骤

  • 第一步,依据需要完成交易的总区间划分子区间;
  • 第二步,预测交易资产在每个子区间内的市场交易量分布;
  • 第三步,依据成交量不同子区间的不同分布分配每个子区间的订单数量:
  • 第四步,在每个交易的子区间执行交易单。

具体修改

本文针对传统VWAP在交易机动性,预测成交量分布准确性中的弊端结合了 DRL 算法提出了动态的 DRL-VWAP 算法

1、不仅利用了交易当日的实时市场与个股信息帮助判断交易子区间成交量份额,追踪市场 VWAP 价格,控制冲击成本,

  • 依据实时的市场整体环境与个股走势,给出下个子区间最优的成交量份额,由此生成动态预测的子区间成交量。

2、还引入了价差惩罚,尽量在价格下降趋势的子区间分配较多成交量,达到交易增强、控制买入成本的目的

  • 引入子区间两端价格的差乘上策略分配在该区间的子单成交额做惩罚项,旨在帮助最优化方向不仅向着策略 VWAP 和市场 VWAP 差最小,还要带有价格方向判断的因素,即尽量在模型判断价格具有下降趋势的子区间内分配更多的成交量

目标

因为和一般的策略追求策略 VWAP 价格(VWAP_s)和市场 VWAP 价格(VWAP_m)的最小偏差不同,本文的动态 VWAP 策略还考虑交易增强部分,因此,最终的成本评定指标不仅要考虑策略 VWAP 价格和市场 VWAP 价格的绝对偏差,还需要考虑买入区间的最终买入总成本,也就是是否可以以低于市场VWAP 的价格买入该资产

  • 最终买入总成本上本文使用买入总区间的实际买入交易金额代表总共的买入成本,因为本文改进的策略可能会在价格下行的时刻分配比传统 VWAP算法更多的成交量,所以即便 VWAP 的偏差较大但是交易的最终成本会最终下降

具体实现

特别的是,DRL-VWAP 算法使用的是在线学习模式,具体而言就是将每日开盘后的 30 分钟分成3 个子时间段,每个时间段 10 分钟,在交易当日,逐段的预测每个子区间的成交量比例,在预测第 N+1 个子区间时,第 N 个子区间的市场环境特征与个股特征也参与了新的训练与预测中。

控制方程对比

传统的VWAP方程
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1583021.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

20240409在全志H3平台的Nano Pi NEO CORE开发板运行的Ubuntu Core更新boot.img(eMMC启动)

20240409在全志H3平台的Nano Pi NEO CORE开发板运行的Ubuntu Core更新zImage内核 2024/4/9 9:21 一、生成zImage: 参考资料: http://wiki.friendlyelec.com/wiki/index.php/NanoPi_NEO_Core/zh#.E7.83.A7.E5.86.99.E5.88.B0eMMC NanoPi NEO Core/zh 6 FriendlyCore…

【leetcode面试经典150题】37. 矩阵置零(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主,题解使用C语言。(若有使用其他语言的同学也可了解题解思路,本质上语法内容一致&…

大数据相关组件安装及使用

自学大数据相关组件 持续更新中。。。 一、linux安装docker 1、更新yum sudo yum update2、卸载docker旧版本 sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine3、…

菜鸟IPO折戟背后:估值大幅下降,阿里巴巴为“分拆之痛”买单

撰稿|行星 来源|贝多财经 近日,阿里巴巴集团(下称“阿里巴巴”或“阿里”)发布公告,称其物流子公司菜鸟(同菜鸟物流、菜鸟网络)撤回在港交所的首次公开发行及上市申请,并计划收购菜鸟少数股东…

LeetCode31. 下一个排列(Java)

题目: 整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。 例如,arr [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。 整数数组的 下一个排列 是指其整数的下一个字典序更大的排列…

鸿蒙实战开发-如何实现查看系统相册、最近删除、收藏夹操作功能

介绍 本示例主要展示了相册相关的功能,使用ohos.file.photoAccessHelper 接口,实现了查看系统相册、创建用户相册、查看相册照片、用户相册文件添加和删除、以及预览图片、最近删除、收藏夹操作等功能; 效果预览 使用说明 主界面:查询显示…

一本想教会你滤波算法书

一本想教会你滤波算法书 从今天开始,这个博客系列会翻译一本 500 页左右的滤波算法的书,该书的原文连接我会放到后面的文中。翻译这本书不仅能继续我的英语学习(水平有限,有问题我留言我马上改!)而且可以跟…

如何合理利用Vue 3中的ref和reactive

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

大话设计模式——24.迭代器模式(Iterator Pattern)

简介 提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部实现。(Java中使用最多的设计模式之一) UML图 应用场景 Java的集合对象:Collection、List、Map、Set等都有迭代器Java ArrayList的迭代器源码 示例 简…

堆 和 优先级队列

目录 一、堆 二、优先级队列 1、初识优先级队列 2、实现一个优先级队列 3、PriorityQueue (1)实现了Comparable接口,重写了compareTo方法 (2)实现了Comparator接口,重写了compare方法 4、 Prio…

WordPress 图片压缩插件:Compress JPEG PNG images 使用方法

插件介绍 Compress JPEG & PNG images是一款非常好用的图片压缩插件:,非常值得大家安装使用;特别是图片类型网站。其实我们很多服务器磁盘空间是不在乎多那么几十 MB 大小的,但是压缩了图片能提升网站速度,节省宽带&#xff…

Linux网络名称空间之独立网络资源管理

Linux网络名称空间是一种强大的虚拟化技术🛠️,它允许用户创建隔离的网络环境🌐,每个环境拥有独立的网络资源和配置。这项技术对于云计算☁️、容器化应用📦和网络安全🔒等领域至关重要。本文将详细介绍在L…

python如何写入csv

在使用python对文件操作的过程中,你肯定碰到过对csv文件的操作,下面就python对csv文件的操作进行详述。 CSV(Comma-Separated Values)逗号分隔符,也就是每条记录中的值与值之间是用分号分隔的。 打开CSV文件并写入一…

第36篇:分频器<三>

Q:这一期我们介绍以计数器方式实现四分频的概念原理。 A:计数器分频有分频系数和占空比这两个参数。待分频时钟的频率为f1,分频后时钟的频率为f2,分频系数为Nf1/f2。 计数器分频电路通过对时钟信号计数来实现分频。根据分频系数可…

医院管理系统!(免费领取源码)

今天给大家分享一套基于SpringbootVue的医院管理系统源码,在实际项目中可以直接复用。(免费提供,文中自取) 系统运行图(设计报告和接口文档) 1、后台管理页面 2、排班管理页面 3、设计报告包含接口文档 源码免费领取方式 后台私信…

基于 SMM 汽车交易系统(源码+配套文档)

摘要 电子商务的兴起不仅仅是带来了更多的就业行业。同样也给我们的生活带来了丰富多彩的变化。多姿多彩的世界带来了美好的生活,行业的发展也是形形色色的离不开技术的发展。作为时代进步的发展方面,信息技术至始至终都是成就行业发展的重要秘密。不论…

如何彻底删除node和npm

如何彻底删除node和npm 前言: 最近做个项目把本地的node更新了,之前是v10.14.2更新至v16.14.0 ,想着把之前的项目起来下,执行npm install 结果启动不了,一直报npm版本不匹配需要更新本地库异常… 找了几天发现是npm 和…

【优选算法专栏】专题十三:队列+宽搜(一)

本专栏内容为:算法学习专栏,分为优选算法专栏,贪心算法专栏,动态规划专栏以及递归,搜索与回溯算法专栏四部分。 通过本专栏的深入学习,你可以了解并掌握算法。 💓博主csdn个人主页:小…

java常用API_正则表达式_在一段文本中查找满足要求的内容(爬虫)——练习及代码演示

练习一: 根据下面这段文本,爬取所有的JavaXX Java自从95年问世以来,经历了很多版本,目前企业中用的最多的是Java8和Java11,因为这两个是长期支持版本,下一个长期支持版本是Java17,相信在未来不久…

基于微信小程序的苏州博物馆文创产品售卖系统

前言 基于小程序的苏州博物馆文创产品售卖系统的设计与实现能够通过互联网得到广泛的、全面的宣传,让尽可能多的用户了解和熟知基于小程序的苏州博物馆文创产品售卖系统的设计与实现的便捷高效,不仅为群众提供了服务,而且也推广了自己&#…