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

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!


http://www.kler.cn/news/294845.html

相关文章:

  • 爆改YOLOv8|利用MobileNetV4 的UIB改进C2f模块-yolov8改进
  • 【0324】Postgres内核 Shared Buffer Access Rules (共享缓冲区访问规则)说明
  • 数据结构代码集训day15(适合考研、自学、期末和专升本)
  • GraphPad Prism 10 for Mac/Win:高效统计分析与精美绘图的科学利器
  • 【Qt】文件对话框QFileDialog
  • 设计模式大全和详解,含Python代码例子
  • 基于“SRP模型+”多技术融合在生态环境脆弱性评价模型构建、时空格局演变分析与RSEI 指数的生态质量评价及拓展应用
  • 编写vue的输入框的自定义指令研究
  • 力扣9.7
  • 最新版 Java 网络编程经典案例:IM 系统、网络拷贝|万字笔记
  • 软件工程-图书管理系统的概要设计
  • 网络层ip协议
  • echarts 水平柱图 科技风
  • 单北斗新时代,遨游通讯四款防爆手机筑牢安全防线
  • Java数组(详解版)
  • Windows .NET8 实现 远程一键部署,几秒完成发布,提高效率 - CICD
  • Rust : 从事量化的生态现状与前景
  • 漫谈设计模式 [17]:状态模式
  • 调研-libevent
  • VitePress 自定义 CSS 指南
  • docker基础命令总结
  • 流程图符号速查:快速掌握流程图绘制要点
  • Kafka【十二】消费者拉取主题分区的分配策略
  • NISP 一级 —— 考证笔记合集
  • RISC-V (十二)系统调用
  • python网络爬虫(五)——爬取天气预报
  • 风趣图解LLMs RAG的15种设计模式-第一课
  • 自然语言处理系列六十二》神经网络算法》MLP多层感知机算法
  • 【C/C++】web服务器项目开发总结【请求 | 响应 | CGI】
  • 活动系统开发之采用设计模式与非设计模式的区别-非设计模式