当前位置: 首页 > news >正文

Python 算法交易实验88 QTV200日常推进-关于继续前进的思考

说明

念念不忘,必有回响

最初的时候,完全不了解架构方面的东西。后来决定要搞好这一块的时候,也就是不断的琢磨,到现在4年的时间,改变已经非常大了。现在习以为常的,都是当初梦寐以求的,而且在可见的未来 ,架构方面会达到一个足够完善的程度(数据库、中间件、调度、监控、自动化部署、微服务、分布式计算、分布式IO、并发…),现在大概是在偏运维领域进行补全。

总之,应该算达到当初期望的,架构足以支撑一个巨大的算法体系。

量化则是一个更早、更大的目标。某种程度上说,搞架构和算法,一个里程碑式的成果是一个强大的量化体系,一套完全自主控制的体系。在我设想中的量化系统,是一个精简,但是内容很多的系统。首先是长期、大量的存储与计算基础,这部分我举得可以视为达到了;其次是算法体系。强化框架、优化算法、判别模型 、近似计算、模式识别、规则引擎、推荐算法、推理模型、特征提取算法、图算法… ,这部分的进度现在反而比架构要慢一些,但是结构和领域划分是清晰的。所以未来几年,我会在算法领域聚焦,达到预设的目标。

有了基础的架构和算法之后,就需要结合具体的业务进行实现。首先我一定是技术派,然后可以分为宏观层面和微观层面来讨论实现。去年我速速做了一版微观层面的尝试(qtv100), 结果其实还行,但是这一年来行情不行。当然,qtv100还有一些本身的问题,这也是停下来反思和调整的原因。宏观层面是最近才开始触碰的,整体感觉就量化整体来说,有很多常识性的东西我还是欠缺的。

这里,做一些总结,明确后续的路径。

内容

从务实的角度出发

不要只停留在很抽象的层面思考量化,这和做白日梦差不多。一种务实的方式是从一些最基础的事开始做起,比如说先收集数据,然后分析数据。而且我觉得可以先粗后细,粗的到天,细的到分钟,应该就够了。

1 数据维度

从市场数据看,有哪些数据是最相关的?

A股的指数,首先是交易所级别的:沪市、深市;然后是板块级别的:房地产、半导体;之后就是各个ETF的值。

除了A股,还有全球市场交易所级别的数据。

这些数据按天获取应该没有难度,但其实并不简单,后面还有很复杂的处理。(所以,先按天这个频率是对的,有助于快速的原型构建、验证)

紧密相关的金融数据

融资融券数据,银行间拆借利率,债权类数据,金融类舆情数据

公共数据

用电量数据,进出口数据,就业数据,主导性媒体舆情

当这些基础数据都完成时,整体的常识会上一台阶。所以在收集数据的过程中,我还需要了解每一部分数据的含义,关联。

2 数据处理

数据会撒谎

真正有难度的地方在于数据处理。首先,我们只考虑一个数据源的情况。例如市场指数,我们只从东财的接口获取。我们获得的数据,其实又可以称为观察(Observations), 并不是直接的真相。但是通过这些观察,我们可以推断出真相,这才是这部分工作的难度。

这个是之前我设计的一个处理框架:
在这里插入图片描述
大体上,获得数据后,首先会存库,这是第一层。这一层讲究尽可能全、即时的获取逻辑上应当获得的所有数据。确保我们存储的数据与数据源在那一刻一致即可。忠实的记录下数据即可。

接下来,数据会进行清洗,存储到数据库中。清洗是将原始材料规整化的过程。一种情况是数据大体上是好的,通过清洗使得数据从基本可用到完全可用;一种情况则是数据大体上是坏的,清洗是提取出其中一部分好的部分。本质上,这里是用强规则处理数据。

对很多公司而言ETL之后就开始使用了,如果数据之后出了问题,大抵是责备供应商,然后换一个;又或者是反思ETL哪里还没做好。我觉得这两种方法是对的,但是很快就会无可改进。数据源就那些,ETL则会跟着不同的数据源变化,还会和各种例外情况打交道,永无停止之日。

所以需要第三层,这层的空间大小甚至可能是前两层的数千倍。

第三层主要通过假设+推断的方式,会生成大量的假设空间。当各个不同为的数据在Tier2(Clean Data)汇集完成后,首先要进行主数据合并。这里已经不是之前的简单的规则可以搞定的了,例如,某条数据是 {name:leo, age:13, gender:male} ,后来又有一条数据 {name:leo, age14, skill:python} ,那么这两条需要合并为一条吗?age需要更新吗? 我们希望的是,如果两条数据真的都是某个leo的,那么应该会有一个唯一的entid来指代,且gendor来自第一条,skill来自第二条,而age通过两条数据,甚至可以推断出一个birth_date,然后抛弃掉age这个值。这就是主数据。

如果现实的数据非常复杂,我们甚至不知道那个是对的,此时就会产生多个假设空间。 每个假设空间后面又会有更多的假设空间,例如当有了主数据之后,我们需要提取特征,所以在主数据空间之后,会连接特征空间。然后特征空间本身又会有多种假设(算法)进而产生更多的假设空间:为了更好的表达状态、行为、属性等的模式或者可辨别属性。

决策是基于这些像树状展开的空间进行,可以使用git的分支数据结构来理解和描述这大量的空间。

我们永远也不可能获得真理,但可以无限逼近

通过大量的推断、模型,我们最后可以获得一个可靠的决策,从而实现我们的目标。整体上,很像我们的显示器从黑白、彩色、CRT、LCD、LED这么一路发展而来,分辨率从1080p到2k,4k,视网膜… 不断提升。到多少才够呢?不同的人、不同的场景有不同的需求,够用就好。

所以,假设原始数据是1,那么要达到目标所维持的假设空间大小可能是10000

除了空间大(这个好解决,花钱就行),为了达到逻辑上的可靠,所牵涉的算法复杂才是最难的。例如:

  • 1 这条数据有问题吗? (逻辑上,怎么判定问题,有可能是通过假设-验证来判定)
  • 2 这个推断可靠吗? (概率分布)
  • 3 这种提取、变换是合适的吗?(特征计算方法)
  • 4 这个假设空间可以用于这个决策吗?(强化框架)
  • 5 如何更准确的判别?(判别模型)
  • 6 可以进行模拟来帮助作出决策(以及验证)吗?(生成模型)
  • 7 如何找到更好的特征生成方法?(优化算法,如遗传算法)

所以,保持一个相对简单的数据,有助于搭建并验证真正的数据处理框架(这也是抽象上,一个理性人所作出的动作)。

我好像明白未来一段时间要做的事了。

3 数据指标

数据指标(Data Metrics)是用于衡量、评估和监控特定业务、流程或系统性能的量化标准。它们通过收集和分析数据,帮助组织了解当前状态、识别趋势、发现问题并做出基于数据的决策。数据指标通常是具体的、可量化的,并且与组织的战略目标或业务需求紧密相关。

常见的数据指标类型

  1. 业务指标

    • 收入:总收入、月度收入、季度收入等。
    • 利润:毛利润、净利润、利润率等。
    • 客户获取成本(CAC):获取一个新客户的平均成本。
    • 客户终身价值(CLV):一个客户在整个生命周期中为企业带来的总价值。
  2. 运营指标

    • 生产效率:单位时间内的生产量、生产周期时间等。
    • 库存周转率:库存周转的速度,衡量库存管理的效率。
    • 订单履行率:按时完成订单的比例。
  3. 市场营销指标

    • 点击率(CTR):广告点击次数与展示次数的比率。
    • 转化率:访问者转化为客户的比率。
    • 客户满意度(CSAT):客户对产品或服务的满意程度。
  4. 产品指标

    • 活跃用户数:在特定时间段内使用产品的用户数量。
    • 用户留存率:在特定时间段内继续使用产品的用户比例。
    • 功能使用率:特定功能被使用的频率。
  5. 财务指标

    • 资产回报率(ROA):衡量公司利用其资产创造利润的效率。
    • 股东权益回报率(ROE):衡量公司利用股东投资创造利润的效率。
    • 流动比率:衡量公司短期偿债能力的指标。

数据指标的重要性

  • 决策支持:数据指标为决策提供了客观依据,减少了主观判断的风险。
  • 绩效评估:通过数据指标,组织可以评估其业务流程和战略的有效性。
  • 趋势分析:数据指标帮助识别业务趋势,预测未来发展方向。
  • 问题识别:通过监控数据指标,组织可以及时发现问题并采取纠正措施。

选择数据指标的注意事项

  • 相关性:选择的指标应与组织的战略目标和业务需求紧密相关。
  • 可操作性:指标应易于收集和分析,以便及时采取行动。
  • 可理解性:指标应简单明了,便于所有相关人员理解。
  • 可比性:指标应能够在不同时间段或不同部门之间进行比较。

通过合理选择和使用数据指标,组织可以更好地理解其业务状况,优化运营,并实现其战略目标。

上面是来自deepseek的回答,主要是帮我们预先reload一些mindset。

假设是一个量化系统,我想指标应该可以围绕几个部分:

  • 1 基本数据信息。例如数据的条数,价格曲线这些,背后的逻辑是帮助我们确定系统是在正常运转的。
  • 2 机会数据。例如通过CV,判断沪深300是否可能处在行情期,或者是失去焦点的状态。这是偏宏观的。
  • 3 风险数据。例如通过银行间拆借利率,发现流动性大幅收紧。
  • 4 持仓情况。确保持仓的时间、空间分布是合理的。
  • 5 交易数据。近期发起的交易数据的频率、交易额是否符合预期。
  • 6 策略表现。当前活动策略的分类、排名。
  • 7 研究数据。如当前执行中的算法计算进度。
  • 8 回测数据。大量假设策略无差别运行所产生的数据,辅助判断当前策略选择的合理性。

4 总结

自顶向下,自底向上

过去的很多行为是自底向上的,现在则是自顶向下。过去的经验告诉我,final solution 会在这个过程中产生。两种方向的探索,会在中间的某一个部分融合,达到一个兼顾、平衡的体系。

Go ! Go ! Go!

相关文章:

  • 打破AI壁垒-降低AI入门门槛
  • 【扇贝编程】使用Selenium模拟浏览器获取动态内容笔记
  • 【苍穹外卖】Day 6 HttpClient、wx小程序
  • 用Boot写mybatis的增删改查
  • AI prompt(提示词)
  • 【Python报错已解决】 AttributeError: ‘move_to‘ requires a WebElement
  • 【论文阅读】DETRs Beat YOLOs on Real-time Object Detection
  • [项目][CMP][直接向堆申请页为单位的大块内存]详细讲解
  • Spring 中使用的设计模式全面解析
  • 自动化表格处理的革命:智能文档系统技术解析
  • 目标检测-YOLOv6
  • 四个pdf软件分享,你更爱哪一款?
  • 数学基础 -- 线性代数之格拉姆-施密特正交化
  • 【AcWing】852. spfa判断负环
  • 数据赋能(198)——开发:数据应用——技术方法、主要工具
  • __proto__ 和 prototype的关系
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • Android 架构优化~MVP 架构改造
  • echarts的各种常用效果展示
  • JavaScript学习总结——原型
  • RxJS: 简单入门
  • Sass Day-01
  • Selenium实战教程系列(二)---元素定位
  • 大数据与云计算学习:数据分析(二)
  • 给Prometheus造假数据的方法
  • 前端面试总结(at, md)
  • 我有几个粽子,和一个故事
  • 新版博客前端前瞻
  • 在electron中实现跨域请求,无需更改服务器端设置
  • 责任链模式的两种实现
  • FaaS 的简单实践
  • HanLP分词命名实体提取详解
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • #预处理和函数的对比以及条件编译
  • $nextTick的使用场景介绍
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (STM32笔记)九、RCC时钟树与时钟 第二部分
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (万字长文)Spring的核心知识尽揽其中
  • (转)甲方乙方——赵民谈找工作
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .NET项目中存在多个web.config文件时的加载顺序
  • //usr/lib/libgdal.so.20:对‘sqlite3_column_table_name’未定义的引用
  • [ C++ ] 类和对象( 下 )
  • [ 云计算 | AWS 实践 ] Java 如何重命名 Amazon S3 中的文件和文件夹
  • [] 与 [[]], -gt 与 > 的比较
  • [Android]Android开发入门之HelloWorld
  • [Android]常见的数据传递方式
  • [BIZ] - 1.金融交易系统特点
  • [C#] 基于 yield 语句的迭代器逻辑懒执行
  • [c#基础]值类型和引用类型的Equals,==的区别