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

本文主要是介绍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 可视化统计

这些下次再写吧。

这篇关于Python 算法交易实验85 QTV200日常推进-钳制指标与交易量的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1126212

相关文章

Python实现Excel批量样式修改器(附完整代码)

《Python实现Excel批量样式修改器(附完整代码)》这篇文章主要为大家详细介绍了如何使用Python实现一个Excel批量样式修改器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录前言功能特性核心功能界面特性系统要求安装说明使用指南基本操作流程高级功能技术实现核心技术栈关键函

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Python实现批量CSV转Excel的高性能处理方案

《Python实现批量CSV转Excel的高性能处理方案》在日常办公中,我们经常需要将CSV格式的数据转换为Excel文件,本文将介绍一个基于Python的高性能解决方案,感兴趣的小伙伴可以跟随小编一... 目录一、场景需求二、技术方案三、核心代码四、批量处理方案五、性能优化六、使用示例完整代码七、小结一、

Python中 try / except / else / finally 异常处理方法详解

《Python中try/except/else/finally异常处理方法详解》:本文主要介绍Python中try/except/else/finally异常处理方法的相关资料,涵... 目录1. 基本结构2. 各部分的作用tryexceptelsefinally3. 执行流程总结4. 常见用法(1)多个e

Python中logging模块用法示例总结

《Python中logging模块用法示例总结》在Python中logging模块是一个强大的日志记录工具,它允许用户将程序运行期间产生的日志信息输出到控制台或者写入到文件中,:本文主要介绍Pyt... 目录前言一. 基本使用1. 五种日志等级2.  设置报告等级3. 自定义格式4. C语言风格的格式化方法

Python实现精确小数计算的完全指南

《Python实现精确小数计算的完全指南》在金融计算、科学实验和工程领域,浮点数精度问题一直是开发者面临的重大挑战,本文将深入解析Python精确小数计算技术体系,感兴趣的小伙伴可以了解一下... 目录引言:小数精度问题的核心挑战一、浮点数精度问题分析1.1 浮点数精度陷阱1.2 浮点数误差来源二、基础解决

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方

深度解析Python中递归下降解析器的原理与实现

《深度解析Python中递归下降解析器的原理与实现》在编译器设计、配置文件处理和数据转换领域,递归下降解析器是最常用且最直观的解析技术,本文将详细介绍递归下降解析器的原理与实现,感兴趣的小伙伴可以跟随... 目录引言:解析器的核心价值一、递归下降解析器基础1.1 核心概念解析1.2 基本架构二、简单算术表达

从入门到精通详解Python虚拟环境完全指南

《从入门到精通详解Python虚拟环境完全指南》Python虚拟环境是一个独立的Python运行环境,它允许你为不同的项目创建隔离的Python环境,下面小编就来和大家详细介绍一下吧... 目录什么是python虚拟环境一、使用venv创建和管理虚拟环境1.1 创建虚拟环境1.2 激活虚拟环境1.3 验证虚