Python 算法交易实验85 QTV200日常推进-钳制指标与交易量

说明

继续保持思考与尝试

最近挺有意思的,碰到很多技术上的问题,其解决方案都类似“阴阳两仪”的概念。

"阴阳两仪"是中国古代哲学中的一个重要概念,源自《易经》(又称《周易》)。它是对宇宙间最基本对立统一规律的概括,用以描述事物存在的两种基本状态或属性。
阴阳最初是指日光的向背,向日为阳,背日为阴。后来,阴阳的概念被广泛应用于自然界和社会生活的各个方面,成为解释自然现象和社会现象的一种基本理论。阴阳两仪认为,宇宙间的一切事物都是由阴阳两种对立而又相互依存、相互转化的力量构成的。
在阴阳学说中,阴阳并不是孤立存在的,而是相互作用、相互制约、相互转化的。例如,白天与黑夜、热与冷、动与静、男与女等都是阴阳对立的体现。阴阳之间的平衡是自然界和人类社会和谐的基础,一旦阴阳失衡,就可能导致各种问题的出现。
阴阳两仪的概念也被用于中医学、风水学、武术、书法、绘画等多个领域,成为中国传统文化中不可或缺的一部分。

在量化方面,恰好也由于近两年市场的反常,导致策略失效,颇有点“刚才开翅膀,风却变沉默”的感觉。这也促使我思考,怎样才能找到那个恒定的方法。

内容

最初做qtv100时,我发现回测效果很好的策略,结果在过去一年表现并不好(差不多持平的状态,看起来像白干)。特别是到了最近,4个混合的结果已经亏损了。大概在4月的时候还是盈利的。小盘成分还行,蓝筹和医药真是BBQ。这里有两个简单结论:

  • 1 过去一段时间的模式挺重要的,为什么会扭盈为亏?
  • 2 技术上讲,如果通过强化学习,输的自然被压抑,结果应该还是有救的
    在这里插入图片描述
    从一个更大的层面分析,问题出在哪?

我对于策略的期待是:如果是对的,可以自行合理放大交易。如果出师不利,可以自动冬眠,不造成,或者少造成损害。

最初,我简单的认为是由于判别模型的目标设定错误,“双刃剑模型”倾向于造成这种结果。

近期,我用SMA策略测试,发现无论以何种参数,在近3年都不可能获利。所以,这看起来并不是微观层面的问题,而是宏观上,在这个大周期内,原来的规律失效了

所以,问题等价为:我们如何能够判定当前是否是合适的模式呢?

在做这样的判定之前,我想先引入“钳制指标”的概念。这个名字挺难起的,我的本意是想表达一对双生的,此消彼长的指标。这个其实就很符合“阴阳”的概念。之前我自己总是用“一对对冲子”的称呼来指代这个概念,也还是感觉拗口。但我想,先有这么个模糊的概念,然后用具体的例子来明确。

在机器学习中,基本的度量方法是基于混淆矩阵提出的。

在这里插入图片描述

其中,Precision和Recall就是一对钳制指标:当一个指标上升时,另一个指标下降。F1则是一个(阴阳)调和的指标,很像我们说的阴阳平衡。

在有一段时间里,我自己对于Recall也是没有感觉的。比如我做了一个模型,我关心这个模型准不准,因为模型不准其实就废了。全不全的问题在某些业务里有时候也不容易度量和观察到Recall。例如信贷业务,我们可以知道模型预测为不违约(放贷),最终实际不违约的人数。分子是不违约人数,分母是总放贷人数。知道这个,其实是可以开展业务的,所以我会忽略掉recall的问题。实际上,一批人,特别是被拒绝的人群,我们知道实际上的不违约人数(比例)吗?不知道。如果要想分析,可能得要选择一批样本,然后去跟踪他们的表现,这样的代价很高,而且结果也可能不一样。例如,客户向国有行申请信贷,被拒绝后去向第三方金融公司借款,最终违约了。但是这可以等于当时向国有行申请获批后会违约吗?不一定。因为如果银行贷款违约,直接上征信黑名单,代价很高。而第三方金融公司的违约成本则较低,所以即使是样本违约了,也很难说明问题。

但是,在另一类问题里Recall是非常明显的。如果我们要从1000篇新闻中识别实体,模型给出了500篇新闻的实体,准确率是95%,这很容易判别。然后交给人去打标,发现剩下的500篇里还有300篇可以提取实体。这个场景下,模型的Recall同样重要,也很容易判别。在这种场景下,Precision和Recall都是重要的指标,因为我们会假设每篇新闻都是我们的business,都会以同样的概率被客户观察到。

回到量化领域,我们会假设每一分钟都可能交易。所以这时候不仅需要Precision,也需要Recall。

理解了钳制指标的意义后,我会觉得量化领域,更应该通过一系列的钳制指标来进行整体的度量和判断。回到最初的问题,我们怎么知道什么时候策略可用,什么时候策略不可用?

这里会有另外一对钳制指标:置信度(Confidence)和支持度(Support)。

在这里插入图片描述

我们通常关心模型预测的涨跌,这可以认为是置信度问题。当置信度高,就有理由相信我的买入和卖出盈利或者避免亏损的可信度高,从而进行决策。

现在的问题是:为什么一贯置信度高的策略失效了呢?

这就要关联到支持度问题。价格曲线是一直存在的,甚至只要成交1个亿也会有一条完整的价格曲线。但是成交量是不同的,我们经常看到的“量价”,是否应该分成“量”和“价”。量不是一定需要特别高,但是低于一定程度,或者可以认为是支持度降到一定水平,价的策略是否也就失效了呢?

或者从贝叶斯的信念角度理解,市场价格是多方博弈后的最终结果。但是player如果感觉到大家都收力了,是否也就会改变自身的发力,进而导致”口是心非“的局面?

交易量

所以我们来看看怎么分析全市场的交易量。

在这篇文章里提到了抓取每日交易量数据的接口。

我稍微调研了一下,这些免费的平台似乎都没有整个市场的交易量接口。我大致想了想,要么还是自己去抓取所有股票单日的交易数据,然后自己汇总。

  • 1 A股大概5000只股票左右
  • 2 按交易日统计

具体的内容:

  • 1 明确使用ak查询股票列表和获取日数据的接口,按照股票获取所有日期数据,每只股票大概最多也就几千个交易日
  • 2 使用clickhouse,声明ORM数据模型
  • 3 每次执行后,将数据存到数据库内,最后进行按日统计
  • 4 使用cufflinks 可视化统计

这些下次再写吧。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java数据结构(七)——优先级队列与PriorityQueue

文章目录 优先级队列与PriorityQueue堆基本概念和性质建堆堆的插入堆的删除堆的应用 PriorityQueuePriorityQueue的构造方法PriorityQueue的常用方法PriorityQueue的模拟实现 经典TopK问题 优先级队列与PriorityQueue 优先级队列是一种特殊类型的队列,其中元素按照…

audiocraft - 免费文本转音乐、AI音乐生成、AI音乐创作工具,Facebook开源,本地一键整合包下载

AudioCraft 是一个由Facebook Research开发的PyTorch库,专注于深度学习在音频生成领域的研究。这个强大的工具包集成了两个最新的AI音频生成模型:AudioGen和MusicGen,能够产生高质量的声音和音乐。 今天的一键包也包含了 AudioGen 和 MusicG…

java一键生成数据库说明文档html格式

要验收项目了,要写数据库文档,一大堆表太费劲了,直接生成一个吧,本来想用个别人的轮子,网上看了几个,感觉效果不怎么好,自己动手写一个吧。抽空再把字典表补充进去就OK了 先看效果: …

如何使用Smart-Doc高效生成Java WebSocket接口文档

前言 Smart-Doc 是一款强大的文档生成工具,可以帮助开发者轻松地为Java 项目生成清晰、详细的 API 文档。随着WebSocket技术的普及,Smart-Doc 在3.0.7版本开始也增加了对 WebSocket 接口的支持。本文将详细介绍如何使用 Smart-Doc 生成 Java WebSocket …

最简单监控方案:域名、证书 SSL、服务器全搞定!发送钉钉告警消息

需求 有时候域名太多,时间一长,你会不记得快要续期了服务器太多,需要监控,这应该是刚需证书申请来申请去,自动续签鬼知道会不会出问题 痛点 监控还要安装各种东西,会出岔子,折腾够呛&#xf…

C++ 洛谷 哈希表(对应题库:哈希,hash)习题集及代码

马上就开学了,又一个卷季,不写点东西怎么行呢?辣么,我不准备写那些dalao们都懂得,熟练的,想来想去,最终还是写哈希表吧!提供讲解&题目&代码解析哦! 奉上题目链接…

软件测试——论坛系统测试用例

功能测试 其他测试 测试用例 用例编号 用例描述 优先级 预置条件 操作步骤 测试数据 预期结果 测试结果Bug ID软件版本测试员SNS_User_Register_001注册成功使用合法的数据成功注册一个新账号P11、已打开注册页面 2、准备一个未注册用户信息1、输入用户昵称 2、输入用户名 3、…

【前端开发必备小技巧】前端代码规范Vue篇

文章目录 🟢 前端代码规范🟢 一、前端代码规范Vue篇👉1、Vue编码基础👉1.1、组件规范👉1.2、模板中使用简单的表达式👉1.3、指令都使用缩写形式👉1.4、 标签顺序保持一致👉1.5、必须…

【IEEE独立出版 | 往届快至会后2个月检索】2024年第四届电子信息工程与计算机科学国际会议(EIECS 2024,9月27-29)

2024年第四届电子信息工程与计算机科学国际会议(EIECS 2024)将于2024年9月27日至29日在中国延吉举行。会议由长春理工大学主办,延边大学、长春理工大学电子信息工程学院、长春理工大学计算机学院、长春理工大学人工智能学院承办,多…

生产环境变态开启devtools(redux篇)

前沿 默认都安装了谷歌的redux-devtools插件哦 没有亮,说明关闭了生产环境的redux devtools工具, 接下来跟着博主一起变态启用它 如果看了我上一篇的小伙伴,应该会很熟练了,如果没有看上一篇的,也没关系,博主会手摸手的教你们打开它。 正常的解决方案(适用内部开发人员…

学院个人信息|基于SprinBoot+vue的学院个人信息管理系统(源码+数据库+文档)

学院个人信息管理系统基于SprinBootvue的学院个人信息管理系统 一、前言 二、系统设计 三、系统功能设计 系统功能实现 后台模块实现 管理员模块实现 学生模块实现 教师模块实现 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获…

浅谈常见的分布式ID生成方案

一、UUID UUID是通用唯一标识码的缩写,其目的是让分布式系统中的所有元素都有唯一的辨识信息,而不需要通过中央控制器来指定唯一标识。 优点: (1)降低全局节点的压力,使得主键生成速度更快; &…

青蛙跳台阶与汉诺塔问题

hello,各位小伙伴们上次我们复习了C语言小tip之函数递归,这次我们来使用函数递归来完成青蛙跳台阶和汉诺塔问题! 青蛙跳台阶问题 青蛙跳台阶问题:一只青蛙跳n阶台阶,一次可以跳1阶或者两阶,问有多少种情况…

list类底层逻辑实现

list的底层逻辑是一个双向带头链表。那么list的底层其实就跟我们之前实现的带头双向链表相同,都是开辟一个一个单独的节点,最后再通过指针将各个单独的节点链接起来即可。 我们来类比之前编写的双向带头链表实现具体的内容。 创建一个list类的主体 就像我…

Bazel 快速入门与核心知识

Bazel 快速入门与核心知识 Bazel 简介 Bazel 是一款与 Make、Maven 和 Gradle 类似的开源构建和测试工具。 它使用人类可读的高级构建语言。Bazel 支持多种语言的项目 (C/C, Java, Python, …),可为多个平台构建输出。Bazel 支持跨多个代码库和大量用户的大型代码…

ncnn之yolov5(7.0版本)目标检测pnnx部署

一、pnxx介绍与使用 pnnx安装与使用参考: https://github.com/pnnx/pnnxhttps://github.com/Tencent/ncnn/wiki/use-ncnn-with-pytorch-or-onnxhttps://github.com/Tencent/ncnn/tree/master/tools/pnnx 支持python的首选pip,否则就源码编译。 pip3 …

opencv/c++的一些简单的操作(入门)

目录 读取图片 读取视频 读取摄像头 图像处理 腐蚀 膨胀 调整图像大小 裁剪和缩放 绘制 绘制矩形 绘制圆形 绘制线条 透视变换 颜色检测 轮廓查找 人脸检测 检测人脸 检测嘴巴 可适当调整参数 读取图片 读取路径widows使用vis sto一定是\斜杠 #include <o…

界面控件Telerik UI for ASP.NET Core 2024 Q2亮点 - AI与UI的融合

Telerik UI for ASP.NET Core是用于跨平台响应式Web和云开发的最完整的UI工具集&#xff0c;拥有超过60个由Kendo UI支持的ASP.NET核心组件。它的响应式和自适应的HTML5网格&#xff0c;提供从过滤、排序数据到分页和分层数据分组等100多项高级功能。 本文将介绍界面组件Teler…

【服务对接】✈️SpringBoot 项目整合华为云 obs 对象存储服务

目录 &#x1f44b;前言 &#x1f440;一、环境准备 &#x1f331;二、整合实现 1.依赖引入 2.准备 AK 和 SK ​ 3.配置类 4.obs 工具类封装 &#x1f49e;️三、测试使用 &#x1f37b;四、 obs 客户端 &#x1f4eb;五、章末 &#x1f44b;前言 小伙伴们大家好&…

Oracle查询优化--分区表建立/普通表转分区表

本文介绍了Oracle表分区的方法&#xff0c;将已有的非分区表转化为分区表&#xff0c;也可以直接建立新的分区表&#xff0c;从而实现大表查询的优化。主要通过DBMS_REDEFINITION 和 alter table xxx modify 方法&#xff0c;DBMS_REDEFINITION 适用于所有版本&#xff0c;操作…