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

从基础到实战的量化交易全流程学习:1.3 数学与统计学基础——概率与统计基础 | 数字特征

从基础到实战的量化交易全流程学习:1.3 数学与统计学基础——概率与统计基础 | 数字特征

在这里插入图片描述


第一部分:概率与统计基础
第2节:数字特征:期望值、方差、协方差与相关系数


一、期望值(Expected Value):用“平均值”预测未来

期望值是随机变量的“加权平均”,代表长期来看最可能的“平均结果”,是量化交易中评估策略收益的核心指标。

1. 数学定义与性质

  • 离散型随机变量
    E ( X ) = ∑ i = 1 n x i ⋅ P ( X = x i ) E(X) = \sum_{i=1}^n x_i \cdot P(X=x_i) E(X)=i=1nxiP(X=xi)
    例:抛一枚硬币,正面盈利100元(概率0.5),反面亏损50元(概率0.5),期望收益为:
    E ( X ) = 100 × 0.5 + ( − 50 ) × 0.5 = 25 元 E(X) = 100 \times 0.5 + (-50) \times 0.5 = 25 \ \text{元} E(X)=100×0.5+(50)×0.5=25 

  • 连续型随机变量
    E ( X ) = ∫ − ∞ + ∞ x ⋅ f ( x ) d x E(X) = \int_{-\infty}^{+\infty} x \cdot f(x) \, dx E(X)=+xf(x)dx
    f ( x ) f(x) f(x) 为概率密度函数,如股票收益率的正态分布)

  • 线性性质(关键!):

    • E ( a X + b Y ) = a E ( X ) + b E ( Y ) E(aX + bY) = aE(X) + bE(Y) E(aX+bY)=aE(X)+bE(Y) a , b a,b a,b 为常数)
    • 无论 X X X Y Y Y 是否独立,线性性都成立。

2. 量化交易中的应用

  • 投资组合预期收益计算
    假设持有30%的股票A(期望收益15%)和70%的债券B(期望收益5%),组合期望收益为:
    E ( R ) = 0.3 × 15 % + 0.7 × 5 % = 8 % E(R) = 0.3 \times 15\% + 0.7 \times 5\% = 8\% E(R)=0.3×15%+0.7×5%=8%

  • 策略有效性筛选
    通过回测计算策略的期望收益 E ( R ) E(R) E(R),若 E ( R ) < 0 E(R) < 0 E(R)<0(长期亏损),则直接排除。


二、方差(Variance)与标准差(Standard Deviation):用“波动”衡量风险

期望值相同的策略,风险可能差异巨大——方差描述收益围绕均值的离散程度,是量化风险的核心指标。

1. 数学定义与性质

  • 方差
    Var ( X ) = E [ ( X − E ( X ) ) 2 ] = E ( X 2 ) − [ E ( X ) ] 2 \text{Var}(X) = E\left[(X - E(X))^2\right] = E(X^2) - [E(X)]^2 Var(X)=E[(XE(X))2]=E(X2)[E(X)]2
    例:上述抛硬币策略,方差为:
    Var ( X ) = ( 100 − 25 ) 2 × 0.5 + ( − 50 − 25 ) 2 × 0.5 = 5625 \text{Var}(X) = (100-25)^2 \times 0.5 + (-50-25)^2 \times 0.5 = 5625 Var(X)=(10025)2×0.5+(5025)2×0.5=5625

  • 标准差(方差的平方根):
    σ = Var ( X ) \sigma = \sqrt{\text{Var}(X)} σ=Var(X)
    (单位与原变量一致,比方差更直观)

  • 性质

    • Var ( a X + b ) = a 2 Var ( X ) \text{Var}(aX + b) = a^2 \text{Var}(X) Var(aX+b)=a2Var(X)(常数 b b b 不影响波动)
    • 独立变量的和的方差: Var ( X + Y ) = Var ( X ) + Var ( Y ) \text{Var}(X+Y) = \text{Var}(X) + \text{Var}(Y) Var(X+Y)=Var(X)+Var(Y)(若 X , Y X,Y X,Y 独立)

2. 量化交易中的应用

  • 风险度量
    • 标准差越大,收益波动越剧烈,风险越高。
    • 例:策略A年均收益10%,标准差5%;策略B年均收益10%,标准差20%。虽然期望相同,但策略B的风险远高于策略A。

在这里插入图片描述

图1:标准差小(左)的收益更集中在均值附近,风险低;标准差大(右)的收益更分散,风险高。

  • 马科维茨有效前沿
    通过优化组合权重,在给定期望收益下最小化方差(或在给定方差下最大化期望收益),构建“风险-收益”最优的投资组合。

三、协方差(Covariance)与相关系数(Correlation):用“联动性”分析资产关系

单个资产的风险容易衡量,但多个资产的“互动”才是组合风险的关键——协方差和相关系数描述变量间的线性关联程度。

1. 协方差:衡量“同方向波动”的强度

  • 定义
    Cov ( X , Y ) = E [ ( X − μ X ) ( Y − μ Y ) ] = E ( X Y ) − μ X μ Y \text{Cov}(X,Y) = E\left[(X - \mu_X)(Y - \mu_Y)\right] = E(XY) - \mu_X \mu_Y Cov(X,Y)=E[(XμX)(YμY)]=E(XY)μXμY

    • 正协方差 X X X 增大时 Y Y Y 倾向于增大(如股票与股市指数)。
    • 负协方差 X X X 增大时 Y Y Y 倾向于减小(如股票与黄金)。
    • 绝对值越大:联动性越强;绝对值越小(接近0):联动性越弱。
  • 性质

    • Cov ( X , X ) = Var ( X ) \text{Cov}(X,X) = \text{Var}(X) Cov(X,X)=Var(X)(自身协方差即方差)
    • Cov ( X , Y ) = Cov ( Y , X ) \text{Cov}(X,Y) = \text{Cov}(Y,X) Cov(X,Y)=Cov(Y,X)
    • 独立变量协方差为0(反之不一定成立)。

2. 相关系数:“标准化”的协方差

  • 定义
    ρ X Y = Cov ( X , Y ) σ X σ Y ( ρ ∈ [ − 1 , 1 ] ) \rho_{XY} = \frac{\text{Cov}(X,Y)}{\sigma_X \sigma_Y} \quad (\rho \in [-1, 1]) ρXY=σXσYCov(X,Y)(ρ[1,1])

    • ρ = 1 \rho = 1 ρ=1:完全正相关(变量同步波动,如同一行业的两只股票)。
    • ρ = − 1 \rho = -1 ρ=1:完全负相关(变量反向波动,如期货对冲组合)。
    • ρ = 0 \rho = 0 ρ=0:无线性相关(可能存在非线性关系)。
  • 可视化:散点图与相关系数
    在这里插入图片描述

    图2:从左到右分别为 ρ = 1 \rho=1 ρ=1(严格正相关)、 ρ = 0.5 \rho=0.5 ρ=0.5(正相关)、 ρ = 0 \rho=0 ρ=0(无相关)、 ρ = − 1 \rho=-1 ρ=1(严格负相关)。

3. 量化交易中的应用

  • 资产配置分散风险

    • 若两只股票 ρ = 0.3 \rho=0.3 ρ=0.3,组合标准差会低于两者标准差的加权平均,实现“风险分散”。
    • 例:资产A( σ A = 20 % \sigma_A=20\% σA=20%)和资产B( σ B = 15 % \sigma_B=15\% σB=15%),等权重配置,若 ρ = 0.3 \rho=0.3 ρ=0.3,则组合标准差为:
      σ = ( 0. 5 2 × 0. 2 2 ) + ( 0. 5 2 × 0.1 5 2 ) + 2 × 0.5 × 0.5 × 0.3 × 0.2 × 0.15 ≈ 12.8 % \sigma = \sqrt{(0.5^2 \times 0.2^2) + (0.5^2 \times 0.15^2) + 2 \times 0.5 \times 0.5 \times 0.3 \times 0.2 \times 0.15} \approx 12.8\% σ=(0.52×0.22)+(0.52×0.152)+2×0.5×0.5×0.3×0.2×0.15 12.8%
      低于简单平均 ( 20 % + 15 % ) / 2 = 17.5 % (20\% + 15\%)/2 = 17.5\% (20%+15%)/2=17.5%
  • 多因子模型去冗余

    • 若两个因子的相关系数 ρ > 0.9 \rho>0.9 ρ>0.9,说明存在严重多重共线性,需剔除其中一个因子。

四、Python实战:计算投资组合的风险收益指标

import numpy as np# 资产参数:3只股票的期望收益、协方差矩阵、持仓权重
returns = np.array([0.12, 0.08, 0.06])  # 期望收益
cov_matrix = np.array([[0.04, 0.02, 0.01],[0.02, 0.03, 0.015],[0.01, 0.015, 0.02]
])  # 协方差矩阵
weights = np.array([0.5, 0.3, 0.2])     # 权重# 1. 计算组合期望收益
expected_return = np.dot(weights, returns)
print(f"组合期望收益: {expected_return:.4f}")  # 输出:0.1020 (10.2%)# 2. 计算组合方差与标准差
portfolio_var = np.dot(weights.T, np.dot(cov_matrix, weights))
portfolio_std = np.sqrt(portfolio_var)
print(f"组合方差: {portfolio_var:.4f}, 标准差: {portfolio_std:.4f}")  
# 输出:组合方差: 0.0229, 标准差: 0.1513 (15.13%)# 3. 计算资产间相关系数矩阵
corr_matrix = cov_matrix / (np.outer(np.sqrt(np.diag(cov_matrix)), np.sqrt(np.diag(cov_matrix))))
print("相关系数矩阵:\n", np.round(corr_matrix, 2))
# 输出:
# 相关系数矩阵:
#  [[1.  0.58 0.5 ]
#  [0.58 1.   0.75]
#  [0.5  0.75 1.  ]]

本节总结

  • 期望值 是收益的“指南针”,告诉我们长期平均结果。
  • 方差/标准差 是风险的“量尺”,衡量收益的波动程度。
  • 协方差/相关系数 是联动性的“温度计”,帮助我们分散风险、优化组合。

相关文章:

从基础到实战的量化交易全流程学习:1.3 数学与统计学基础——概率与统计基础 | 数字特征

从基础到实战的量化交易全流程学习&#xff1a;1.3 数学与统计学基础——概率与统计基础 | 数字特征 第一部分&#xff1a;概率与统计基础 第2节&#xff1a;数字特征&#xff1a;期望值、方差、协方差与相关系数 一、期望值&#xff08;Expected Value&#xff09;&#xff1a…...

【MySQL】数据类型和表的操作

目录 一. 常用的数据类型 1.数值类型 1.1 整形类型 1.2 浮点型类型 2.字符串类型 char和varchar的区别 如何选择char和varchar 3.日期类型 4.二进制类型 二. 表的操作 1.查看所有表 2.表的创建 3.查看表的结构 4.表的修改 4.1 添加新的列 4.2 修改表中现有的列 4…...

Tauri打包时出现WixTools以及NSIS报错

前言 Tauri构建时会通过github下载Wix和NSIS&#xff0c;由于国内网络限制&#xff0c;所以这个过程基本都会失败&#xff0c;而且你无法使用挂代理的方式解决此问题&#xff0c;唯一的办法就是先下载对于的库&#xff0c;然后把库丢到对应的文件夹内来解决此问题。。。 文章目…...

Linux操作系统学习---进程地址空间

前言: 在学习c,c这些偏底层的语言时,我们常常会对一个变量取地址,一遍对他进行一系列的操作 . 可是 , 这真的是真实的物理地址吗 ? 其实并非如此 , 通过了解进程地址空间,我们就能解开这个困惑. 一、虚拟地址空间的概念: 同地址,不同值的代码示例: 下面通过创建子进程来看一个…...

docker compose -p的踩坑经验

刚才启动ragflow解析了几百个文件&#xff0c;再次启动登录时报错 没有这个账户&#xff0c;心疼token几秒。。。 再次回顾之前的启动方式和当前的启动方式&#xff0c;才发现有出入。 问题&#xff1a; 第一次启动sudo docker compose up -d 第二次启动sudo docker compose -…...

深入理解 Linux 用户管理:从基础到实践

在 Linux 操作系统中&#xff0c;用户管理是确保系统安全、合理分配资源的核心环节。无论是个人开发者搭建本地开发环境&#xff0c;还是运维人员管理企业级服务器集群&#xff0c;熟练掌握 Linux 用户管理都是一项必备技能。本文将从用户管理的基础概念出发&#xff0c;结合实…...

Go语言之路————指针、结构体、方法

Go语言之路————指针、结构体、方法 前言指针结构体声明初始化使用组合引用结构体和指针结构体的标签 方法例子结合结构体总结 前言 我是一名多年Java开发人员&#xff0c;因为工作需要现在要学习go语言&#xff0c;Go语言之路是一个系列&#xff0c;记录着我从0开始接触Go…...

【漫话机器学习系列】227.信息检索与数据挖掘中的常用加权技术(TF-IDF)

在自然语言处理&#xff08;NLP&#xff09;、信息检索&#xff08;IR&#xff09;和数据挖掘&#xff08;DM&#xff09;领域中&#xff0c;TF-IDF 是一种非常经典且常用的加权技术。 无论是搜索引擎排序、文本挖掘&#xff0c;还是特征工程&#xff0c;TF-IDF都扮演着重要角色…...

【音视频】FFmpeg过滤器框架分析

ffmpeg的filter⽤起来是和Gstreamer的plugin是⼀样的概念&#xff0c;通过avfilter_link&#xff0c;将各个创建好的filter按⾃⼰想要的次序链接到⼀起&#xff0c;然后avfilter_graph_config之后&#xff0c;就可以正常使⽤。 ⽐较常⽤的滤镜有&#xff1a;scale、trim、over…...

硬盘损坏数据恢复后对python程序的影响

最近硬盘突然间坏掉了&#xff0c;让数据商恢复了2个月今天终于拿到了恢复后的数据。 但是一测试问题就来了&#xff1a; PS E:\geosystem> python manage.py runserver 0.0.0.0:5000 Unhandled exception in thread started by <function check_errors.<locals>.…...

Azure Devops - 尝试一下在Pipeline中使用Self-hosted Windows agent

1.简单介绍 Azure Devops是微软提供的辅助软件的开发&#xff0c;测试&#xff0c;部署以及计划和进度跟踪的平台&#xff0c;通过Azure Devops可以使开发者&#xff0c;项目经理&#xff0c;运维人员在软件的整个生命周期中更紧密地合作&#xff0c;同时借助Continuous Integ…...

Linux红帽:RHCSA认证知识讲解(十 四)分区管理、交换分区,创建逻辑卷与调整逻辑卷的大小

Linux红帽&#xff1a;RHCSA认证知识讲解&#xff08;十 四&#xff09;分区管理、交换分区&#xff0c;创建逻辑卷与调整逻辑卷的大小 前言一、分区管理&#xff0c;使用fdisk管理分区1.1 找到硬盘1.2 使用fdisk分区1.3 格式化分区1.4 挂载分区 二、创建逻辑卷&#xff0c;调整…...

详解 Unreal Engine(虚幻引擎)

详解 Unreal Engine&#xff08;虚幻引擎&#xff09; Unreal Engine&#xff08;简称 UE&#xff09;是由 Epic Games 开发的一款全球领先的实时渲染引擎&#xff0c;自 1998 年随首款游戏《Unreal》问世以来&#xff0c;已发展成为覆盖 游戏开发、影视制作、建筑可视化、汽车…...

【Linux网络】Http服务优化 - 增加请求后缀、状态码描述、重定向、自动跳转及注册多功能服务

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;博客仓库&#xff1a;https://gitee.com/JohnKingW/linux_test/tree/master/lesson &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &…...

Docker compose 部署微服务项目(从0-1出发纯享版无废话)

目录 一.Docker安装 &#xff08;1&#xff09;安装依赖 &#xff08;2&#xff09;安装Docker &#xff08;3&#xff09;启动Docker服务 &#xff08;4&#xff09;系统配置 &#xff08;5&#xff09;镜像加速配置 &#xff08;6&#xff09;验证安装 二.编写Docke…...

C#学习第19天:多线程

什么是多线程&#xff1f; 定义&#xff1a;多线程允许一个程序分成多个独立的执行路径来进行并发操作。用途&#xff1a;提高程序的执行效率&#xff0c;特别是在I/O操作、计算密集型任务和用户交互中。 多线程核心概念 1. 创建和管理线程 使用 Thread 类 using System; u…...

day7 python针对心脏病数据集预处理

在数据科学与机器学习领域&#xff0c;数据预处理与可视化是挖掘数据价值的关键前置步骤。本文以 heart1.csv 心脑血管疾病数据集为例&#xff0c;借助 Python 中的 pandas、matplotlib、seaborn 以及 scikit-learn 库&#xff0c;详细演示数据加载、缺失值处理、特征相关性分析…...

树莓派学习专题<9>:使用V4L2驱动获取摄像头数据--设定分辨率和帧率

树莓派学习专题&#xff1c;9&#xff1e;&#xff1a;使用V4L2驱动获取摄像头数据--设定分辨率和帧率 1. 设定分辨率2. 设定帧率3. 设定分辨率代码解析4. 获取与设定帧率代码解析5. 实测 1. 设定分辨率 使用如下代码设定摄像头的分辨率&#xff1a; #define CAMERA_RESOLUTI…...

模态链:利用视觉-语言模型从多模态人类视频中学习操作程序

25年4月来自谷歌 DeepMind 和斯坦福大学的论文“Chain-of-Modality: Learning Manipulation Programs from Multimodal Human Videos with Vision-Language-Models”。 从人类视频中学习执行操作任务&#xff0c;是一种很有前景的机器人教学方法。然而&#xff0c;许多操作任务…...

JAVAEE初阶01

个人主页 JavaSE专栏 JAVAEE初阶01 操作系统 1.对下&#xff08;硬件&#xff09;管理各种计算机设备 2.对上&#xff08;软件&#xff09;为各种软件提供一个稳定的运行环境 线程 运行的程序在操作系统中以进程的形式存在 进程是系统分配资源的最小单位 进程与线程的关…...

【网络安全】用 Linux 命令行 CLI 日志文件处理指南

Linux 命令行 CLI 神技回忆录&#xff1a;日志文件处理指南&#xff08;以 Zeek Logs 为例&#xff09; 1. CLI简介2. 基础操作3. 文件读取4. 查找与筛选5. 进阶操作6. Zeek 日志骚操作7. 结语 1. CLI简介 在数据分析的世界里&#xff0c;图形界面&#xff08;GUI&#xff09;…...

[C++] 高精度乘法

目录 引入: 大整数比较比较方法例题1-青蛙计数题目描述 输入描述输出描述输入输出样例AC代码 高精度乘法模版高精度运算小合集(这集乘法上集加法) 注意: 若还没有学过高精度运算的话先去看高精度加法 引入: 大整数比较 比较方法 大整数比较可以使用此方法比较(注释有讲解): …...

反事实——AI与思维模型【82】

一、定义 反事实思维模型是一种心理认知模型,它指的是人们在头脑中对已经发生的事件进行否定,然后构建出一种可能性假设的思维活动。简单来说,就是思考“如果当时……,那么就会……”的情景。这种思维方式让我们能够超越现实的限制,设想不同的可能性和结果,从而对过去的…...

Java学习手册:Java开发常用的内置工具类包

以下是常用 Java 内置工具包。 • 日期时间处理工具包 • java.time包&#xff08;JSR 310&#xff09;&#xff1a;这是 Java 8 引入的一套全新的日期时间 API&#xff0c;旨在替代陈旧的java.util.Date和java.util.Calendar类。其中的LocalDate用于表示不带时区的日期&…...

JAVA多线程(8.0)

目录 线程池 为什么使用线程池 线程池的使用 工厂类Executors&#xff08;工厂模式&#xff09; submit 实现一个线程池 线程池 为什么使用线程池 在前面我们都是通过new Thread() 来创建线程的&#xff0c;虽然在java中对线程的创建、中断、销毁、等值等功能提供了支持…...

通过门店销售明细表用Python Pandas得到每月每个门店的销冠和按月的同比环比数据

假设我在本地有Excel销售表&#xff0c;包含ID主键、门店ID、日期、销售员姓名和销售额&#xff0c;需要用Pandas统计出每个月所有门店和各门店销售额最高的人&#xff0c;不一定是一个人&#xff0c;以及他所在的门店ID和月总销售额。 步骤1&#xff1a;导入数据并处理日期 …...

详解最新链路追踪skywalking框架介绍、架构、环境本地部署配置、整合微服务springcloudalibaba 、日志收集、自定义链路追踪、告警等

1.skywalking介绍 多种监控手段&#xff0c;可以通过语言探针和service mesh 获得监控数据支持多种语言自动探针&#xff0c;包含java/net/nodejs轻量高效&#xff0c;无需大数据平台和大量的服务器资源模块化&#xff0c;UI、存储、集群管理都有多种机制可选支持告警优秀的可…...

【OSG学习笔记】Day 11: 文件格式与数据交换

OSG 常用文件格式简介 在开始转换前,先了解 OSG 生态中常见的文件格式: .osg:OSG 标准二进制格式,存储场景图数据,体积小、加载快,适合实时渲染。 .ive:OSG 标准文本格式,可读性强,便于手动编辑或调试场景图结构(本质是 XML 格式的文本描述)。 .osgb:OSG 二进制格…...

2025.04.26-美团春招笔试题-第二题

📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围OJ 02. 曼哈顿距离探测器 问题描述 K小姐正在研发一种城市交通探测器,该探测器能够检测城市中任意两个位置之间的曼哈顿距离是否恰好为特定值。曼哈顿距离是在直角坐标系中,两点之间…...

搭建基于火灾风险预测与防范的消防安全科普小程序

基于微信小程序的消防安全科普互动平台的设计与实现&#xff0c;是关于微信小程序的&#xff0c;知识课程学习&#xff0c;包括学习后答题。 技术栈主要采用微信小程序云开发&#xff0c;有下面的模块&#xff1a; 1.课程学习模块 2.资讯模块 3.答题模块 4.我的模块 还需…...

05--Altium Designer(AD)的详细安装

一、软件的下载 Altium Designer官网下载 1、临近五一的假期&#xff0c;想着搞个项目&#xff0c;且这个项目与PCB有关系&#xff0c;所以就下这个软件来玩玩。下面保姆级教大家安装。 2、选择适合自己的版本下载&#xff08;我安装的是24的&#xff09; 3、软件安装 1.下…...

药监平台上传数据报资源码不存在

问题&#xff1a;电子监管码上传药监平台提示“导入的资源码不存在” 现象&#xff1a;从生产系统导出的关联关系数据包上传到药监平台时显示&#xff1a; 原因&#xff1a;上传数据包的通道的资源码与数据包的资源码不匹配。 解决方法&#xff1a;检查药监平台和生产系统的药…...

DeepSeek预训练追求极致的训练效率的做法

DeepSeek在预训练阶段通过多种技术手段实现了极致的训练效率,其中包括采用FP8混合精度训练框架以降低计算和内存需求 ,创新性地引入Multi-head Latent Attention(MLA)压缩KV缓存以提升推理效率,以及基于Mixture-of-Experts(MoE)的稀疏计算架构以在保证性能的同时显著降低…...

Windows11系统中GIT下载

Windows11系统中GIT下载 0、GIT背景介绍0.0 GIT概述0.1 GIT诞生背景0.2 Linus Torvalds 的设计目标0.3 Git 的诞生&#xff08;2005 年&#xff09;0.4 Git 的后续发展0.5 为什么 Git 能成功&#xff1f; 1、资源下载地址1.1 官网资源1.2 站内资源 2、安装指导3、验证是否下载完…...

Maven的概念与初识Maven

目录 一、Maven的概念 1. 什么是Maven 2. 项目构建&#xff1a;从代码到部署的标准化流程 2.1 Maven构建生命周期 2.2 传统构建 vs Maven构建 3. 依赖管理&#xff1a;解决“JAR地狱”的利器 3.1 依赖声明 3.2 依赖传递与冲突解决 4. Maven仓库&#xff1a;依赖的存储…...

【Android】app调用wallpaperManager.setBitmap的隐藏权限

这是一个杞人忧天的问题&#xff0c;app中&#xff0c;可以通过wallpaperManager.setBitmap来设置壁纸&#xff0c; private void setWallpaper() {// 获取 WallpaperManager 实例WallpaperManager wallpaperManager WallpaperManager.getInstance(getApplicationContext());t…...

ORACLE数据库备份入门:第四部分:2-备份场景举例

下面以4个常见的场景为例&#xff0c;介绍如何规划备份方案。备份方案没有标准答案&#xff0c;需要根据实现情况来制定&#xff0c;也和管理员的个人使用习惯有很大相关性。 1 交易型数据库备份 以银行的交易系统为例&#xff0c;除了前一章节提到的关于RPO和RTO的指标外&am…...

STL中emplace实现原理是什么?

template <class... Args>void emplace_back (Args&&... args);这个是vector的emplace_back方法&#xff0c;用到的c11的语法有三个&#xff0c;分别是万能引用、完美转发、参数包。 参数包中的参数是用来构造vector<T>中的T对象。 假如我直接传的就是一个…...

血泪之arduino库文件找不到ArduinoJSON.h: No such file or directory错误原因

#include <ArduinoJson.h> 始终报这个错误&#xff0c; C:\techxixi_project\Arduino\test\camer\camertoserver\camertoserver.ino:6:10: fatal error: ArduinoJSON.h: No such file or directory 6 | #include <ArduinoJSON.h> | ^~~~~~~~~…...

通过门店销售明细表用PySpark得到每月每个门店的销冠和按月的同比环比数据

假设我在Amazon S3上有销售表的Parquet数据文件的路径&#xff0c;包含ID主键、门店ID、日期、销售员姓名和销售额&#xff0c;需要分别用PySpark的SparkSQL和Dataframe API统计出每个月所有门店和各门店销售额最高的人&#xff0c;不一定是一个人&#xff0c;以及他所在的门店…...

【前后端分离项目】Vue+Springboot+MySQL

文章目录 1.安装 Node.js2.配置 Node.js 环境3.安装 Node.js 国内镜像4.创建 Vue 项目5.运行 Vue 项目6.访问 Vue 项目7.创建 Spring Boot 项目8.运行 Spring Boot 项目9.访问 Spring Boot 项目10.实现 Vue 与 Spring Boot 联动11.安装 axios12.编写请求13.调用函数请求接口14.…...

图解 Redis 事务 ACID特性 |源码解析|EXEC、WATCH、QUEUE

写在前面 Redis 通过 MULTI、EXEC、WATCH 等命令来实现事务功能。Redis的事务是将多个命令请求打包&#xff0c;然后一次性、按照顺序的执行多个命令的机制&#xff0c;并且在事务执行期间&#xff0c;服务器不会中断事务而该去执行其他客户端的命令请求。 就像下面这样&#…...

w~嵌入式C语言~合集3

我自己的原文哦~ https://blog.51cto.com/whaosoft/13870307 一、单片机多任务事件驱动 单片机的ROM与RAM存贮空间有限&#xff0c;一般没有多线程可用&#xff0c;给复杂的单片机项目带来困扰。 经过多年的单片机项目实践&#xff0c;借鉴windows消息机制的思想&#xff…...

CMCC RAX3000M CH EC 算力版刷机(中国移动 RAX3000M 算力版)刷机

刷机前面的工作参考&#xff1a; https://blog.csdn.net/asdcls/article/details/147434218 刷机 eMMC Flash instructions: 1. SSH to RAX3000M, and backup everything, especially factory part. (data partition can be ignored, its useless.) 2. Write new GPT tabl…...

cron定时任务

cron定时任务 一、Cron表达式的定义 基础结构 Cron表达式是由空格分隔的6或7个字段组成的字符串&#xff0c;格式为&#xff1a; 秒 分 时 日 月 星期 [年]其中&#xff0c;年通常可以被省略 字段说明&#xff1a; 秒&#xff08;0-59&#xff09; 秒字段表示每分钟的哪一…...

1.4 大模型应用产品与技术架构

目录 一&#xff0c;产品架构 1.1 AI Embedded产品架构 1.2 AI Copilot产品架构 1.3 AI Agent产品架构 二&#xff0c;技术架构 2.1 纯Prompt 2.2 Agent Function Calling 2.3 RAG &#xff08;Retrieval-Augmented Generation 检索增强生成&#xff09; 2.4 Fine-tu…...

Android HAL HIDL

1 Android HAL HIDL 1.1 Android中查看有哪些HIDL HAL HIDL是Treble Interface的一部分。 adb root adb shell # lshal 1.2 Android打印C调用栈 #include <utils/CallStack.h> 在需要打印的地方加如下的定义。 android::CallStack stack("oem"); logcat | g…...

std::mutex底层实现原理

std::mutex是一个用于实现互斥访问的类&#xff0c;其具备两个成员函数——lock和unlock 锁的底层实现原理 锁的底层实现是基于原子操作的&#xff0c;这些原子操作是由指令支持的&#xff0c;因为单个指令是不能被中断的 一些与锁的实现有关的原子指令为&#xff1a; 待补充…...

性能提升手段--池化技术

看到hadoop代码里有ByteBufferPool,使用池子来避免频繁创建、销毁ByteBuffer,减轻GC压力,提高性能。 顺便总结一下池化技术 一、什么是池化技术?​​ ​​池化(Pooling)​​ 是一种资源管理策略,通过​​预先创建并复用资源​​(如数据库连接、线程、内存对象等)来提…...

精益数据分析(28/126):解读商业模式拼图与关键指标

精益数据分析&#xff08;28/126&#xff09;&#xff1a;解读商业模式拼图与关键指标 在创业和数据分析的探索旅程中&#xff0c;每一次深入研究都可能带来新的启发和突破。今天&#xff0c;我们依旧带着共同进步的初心&#xff0c;深入解读《精益数据分析》中关于商业模式的…...