2024年度回顾
2024年应该是目前为止我人生中最重要的一年。
1月,结束了第一段量化领域的实习,懵懵懂懂地开始了数字货币投资,正好赶上牛市前夕。
2月,过年,随着比特币冲击前高6w7后的插针,人生中第一次经历爆仓,三十倍收益一夜归0。
3月,一边捣鼓量化交易在数字货币市场的应用,一边海投各家私募。9号收到第二段量化实习的实习offer,因为工资足够在上海生活而不是生存激动了一下午。
4月,正式入职,同时开启陆家嘴金融鼠鼠&研0的体验卡——白天上班夜里上课。因为无法同时兼顾学业与职业发展,萌生退学的想法。卡着ddl递交了gzs的申请。
5月,和同事们一起去欢乐谷团建,成功确诊“过山车绝缘体质”。晚上的课程开始跟不上,每次学校考试前疯狂失眠。
6月,和npy去了上海迪士尼,完成了人生一大心愿。回校参加毕业典礼,彻底告别本科。
7月,开始远程办公,综合再三决定放弃入学,交了gzs的留位费。与此同时,数字货币策略开始实盘,体验了一把PM的感受。
8月,和好朋友一起去了韩国旅游,填补了没有毕业旅行的遗憾。成功涨薪。
9月,入学gzs,一边上课一边实习,基本一整个月都忙着调参。
10 ...
数字货币截面回测框架
Motivation
最近在数字货币市场主观投资收益反反复复,实在是有些顶不住了,加之复习周无聊,心血来潮想开个项目记录一下自己重构数字货币的截面回测框架的过程。
暂时的思维导图是
构建格式化标准数据。具体标准参考asim_io
使用格式化数据进行向量化回测
改进方案:
使用rust or C++ 对alpha values 作事件驱动型回测。
项目进度:
2024-12-3
重构build数据的代码。
2024-11 随笔
今天是2024-11-17,距离我第一次在xytz进行量化实习已经一年多了,距离我进入lhzc实习也有7个多月了,临近final请了一个月长假,也算是终于有时间写一写目前我的一些想法与感受。既是为了对这一年多的实习经历做一个阶段性总结,也是为了与未来的我对话给我一些新的思考。
股票方面,我掌握了从wind推送的原始数据构建三维财务报表的方法,重构了公司的基本面数据库,但是在真正使用的时候仍然卡在“如何将基本面与量价因子结合”上,之前茂源的pm说“为了用好的价格买到好的公司”,我觉得是一句非常精妙的总结。写因子的时候我还是会要东抄抄西抄抄,看paper看研报,我潜意识觉得可能还是需要展开自己的研究,至少需要培养自己展开研究的能力并养成这种习惯,但是目前明显双线程的我没有这种闲情雅致(以后会有的吧)。。我做的K线图识别模型马上就要实盘了,看起来到24年9月底的效果都还不错,希望OS能好到让我留用,不然就得继续重复枯燥无味的训练了
数字货币方面,今年九月之前一直在忙着和quantgroup的朋友们完善统计套利策略,但是其实从下单算法、止损止盈上都还有很大的优化空 ...
CNN识别K线图
1.AlexNet识别K线
模型的结构
Code
import torch
from torch import nn
net = nn.Sequential(
# 这里使用一个11*11的更大窗口来捕捉对象。
# 同时,步幅为4,以减少输出的高度和宽度。
# 另外,输出通道的数目远大于LeNet
nn.Conv2d(1, 96, kernel_size=11, stride=4, padding=1), nn.ReLU(),
nn.MaxPool2d(kernel_size=3, stride=2),
# 减小卷积窗口,使用填充为2来使得输入与输出的高和宽一致,且增大输出通道数
nn.Conv2d(96, 256, kernel_size=5, padding=2), nn.ReLU(),
nn.MaxPool2d(kernel_size=3, stride=2),
# 使用三个连续的卷积层和较小的卷积窗口。
# 除了最后的卷积层,输出通道的数量进一步增加。
# 在前两个卷积层之后,汇聚 ...
统计学习 学习记录
作为非科班出身的金数人,在学习机器学习模型时我发现自对一些最基础、最本质的概念理解不够深入,所以打算写一篇blog,记录一下自己在学习的时候遇到的零零散散的问题。
1.极大似然估计(MLE)和损失函数的关系
若变量服从高斯分布,MLE的结果是OLS
若变量服从伯努利分布,MLE的结果是logistic回归
若变量服从多项式分布,MLE的结果是softmax
2.当我们对损失函数正则化时,我们在做什么?
做正则化的目的就是为了提高训练出模型的泛化能力。影s响模型泛化能力的是权重
\(w\) 和偏置 \(b\) 。
参考:“L1和L2正则化”直观理解
2.1 拉格朗日对偶角度
所谓正则化,就是在损失函数中加上Lp范数。
为什么说L1正则化(右)可以带来稀疏性,就是因为L1正则化后的极值点容易出现在坐标轴上,而出现在坐标轴上意味着其他某些维度的值为0,比如要用胡子和毛色区分猫咪和狗,L2正则化(左)可能只是赋予两个特征不同的权重,\(\lambda\)的作用是来调节权重大小,而L1正则化就可能只考虑胡子,而不考虑毛色,这就带来了稀疏性。·+
\(x\ ...
从零开始在vscode上配置C++运行环境
从零开始在vscode上配置C++运行环境
本文用于记录我在配置C++时遇到的坑。之前在配置的时候是花钱找tb帮忙做的,这次打算记录下来这个过程,以便后续复现。
1.安装MinGW编译器
需要从SourceForge.net处下载MinGW编译器.
1.1 选择合适的版本
image-20240206200640071
img
1.2 配置系统环境
将(比如我的是D:_64-8.1.0-release-posix-seh-rt_v6-rev0)添加入电脑系统环境
image-20240206201139096
1.3 验证是否成功安装
打开cmd,输入gcc -v
image-20240206201212569
出现上述内容说明安装成功
2.在vscode中安装C/C++插件
image-20240206200423060
3.配置C/C++环境
img
可以先建立 .vscode文件夹
3.1 配置编译器
(在.vscode文件夹含有c_cpp_propertie ...
Barra CNE5
Barra CNE5
1.前言
本文旨在记录自己在学习和使用Barra CNE5模型的过程,方便未来回忆。
2.CNE5模型简介
CNE5 是 Barra
的最新一代面向中国股票市场的多因子模型。该模型考虑了一个国家因子、多个行业因子以及多个风格因子。假设市场中共有
N 支股票,P 个行业,以及 Q
个风格因子。在任意给定时间点,该模型使用因子暴露和个股收益率构建截面回归(cross-sectional
regression)如下:
\(\begin{aligned} &
{\left[\begin{array}{c}r_1-r_f \\ r_2-r_f \\ \vdots \\
r_N-r_f\end{array}\right]=\left[\begin{array}{c}1 \\ 1 \\
1\end{array}\right] f_C+\left[\begin{array}{c}X_1^{I_1} \\ X_2^{I_1} \\
\vdots \\ X_N^{I_1}\end{array}\right]
f_{I_1}+\cdots+\le ...
学习资源整理
用于记录我找到的好的学习资源,以便厘清学习的优先度
一、量化平台&框架
1.BackTrader
QuantWorld2022/backtrader
(github.com)
2.Vnpy
vnpy/vnpy_algotrading:
VeighNa框架的算法交易模块 (github.com)
3.Qlib
[microsoft/qlib: Qlib is
an AI-oriented quantitative investment platform that aims to realize the
potential, empower research, and create value using AI technologies in
quantitative investment, from exploring ideas to implementing
productions. Qlib supports diverse machine learning modeling paradigms.
including supervised lea ...
第一次高频交易比赛赛后感悟
第一次高频交易比赛赛后感悟
我的第一次量化比赛参赛之旅在今天画上了句号,总共350+队伍只有前50能进复赛,我最后以rank
60止步初赛,感觉十分可惜。为了不浪费我这半个月来在高频研究熬的好几个夜,我决定赶在自己参赛经历淡忘前,趁热打铁写下我参加这个高频交易比赛的感悟。(2023.12.10,希望2024.12.10的我能干到决赛一雪前耻)。
本次参赛的感悟可分为技术栈、微观实盘、宏观策略和未来学习方向。
一、技术栈
这是我第一次与其他人合作代码,深刻认识到使用git进行代码协作的必要性。在版本回滚和合并多人工作成果方面,git的存在简直是雪中送炭,如果不使用这个工作流很可能项目会存在大量的bug和代码沟通障碍。
此外,cpp是进行高频交易必不可少的语言,即使使用并行、异步、numba等库能大大提高python语言的运行速度,但是归根到底还得是c
&
cpp。在获取远程交易所信息的时候,需要熟悉如何使用并行、异步等库来减少请求等待时间。
二、微观实盘
这个方面是导致我止步初赛最关键的原因。在高频交易中,我认为因子很可能是一个黑箱 ...
股票形态相似度研究
1.东财数据+供应链数据
2.对东财数据降噪处理,计算簇内
3.在某一个时间节点,我们回看过去已知的概念数据or供应链数据
机器学习做出来的效果不好,所以尝试对数据进行降噪处理
11.27
具体操作
将概念算出来之后,得到每一天每个概念内股票的关系强度(比如等权的pearson系数),和宽基指数内的关系强度进行对比。
可以尝试将concept内关系最弱的股票剔除,看概念内股票的关系有没有明显增强。
先上手计算欧氏距离
欧氏距离为常见的计算时间序列相似度的方法,该方法可以直接衡量两个时间序列之间的距离,其计算公式为:
\[
D=\sqrt{\sum_{i=1}^N\left(X_i-Y_i\right)^2}
\]
其中 \(\mathrm{N}\) 为序列 \(\mathrm{X}\) 和序列 \(\mathrm{Y}\) 的长度。 由上述公式可以看出,
若要计算两个序列之间的欧氏距离, 有两个局限性: 1、两个序列的长度需要相同,
但在实际研究工作中, 找到满足上述条件的序列并非易事。
2、该方法也无法进行异步相似度计算,因此会对实际上较为相似的两个时 ...