FunCoder

FunCoder

原文:101 Formulaic Alphas By Zura KaKushadze

摘要

我们提供了101个真实的量化交易alpha的显式公式,这些公式也可以转化为计算机代码。
它们的平均持有期大约在0.6到6.4天之间。这些alpha之间的平均成对相关性较低,为15.9%。
这些回报与波动率强相关,但对换手率没有显著依赖,直接证实了一个基于更间接的经验分析的早期结果。
我们进一步发现经验上换手率对alpha之间的相关性解释能力较差。

引言

在现代量化交易中存在两种互补的趋势,而且在某种意义上甚至是相互竞争的。一方面,越来越多的市场参与者(例如,量化交易员等)利用复杂的量化技术挖掘alpha。这导致了越来越模糊和短暂的alpha出现。另一方面,技术进步使得基本上可以自动化(大部分)alpha收获过程。这带来了越来越多的alpha,其数量可能达到数十万甚至数百万,随着这一领域的指数级增长,这一数量在我们知道之前可能会达到数十亿。

Read more »

到了些年终总结的时候了,按照惯例,从2022年的展望部分开始,看看做的怎么样。

去年的展望

好好生活,多读圣经

这个算做了一半吧,确实努力在好好生活,但是圣经并没有读很多。

即便如此,我也意识到一个问题:如果我说我有信仰,却又没有通过圣经改变我,又有什么意义呢?
而圣经如何改变我呢?我需要不断地把神的话语(就是圣经)放在我心里。

Read more »

Python 构建相关工具主要包含三个部分:

其实很多工具并不只有一个功能,比如 Poetry 既可以管理依赖,也可以管理虚拟环境。Conda 是及三个功能于一身的。

版本管理

版本管理主要是用来管理同一个机器上的不同的 Python 解释器,每一个版本的解释器都可以产生独立的虚拟环境和包依赖。
这里我建议使用:pyenv: Simple Python version management
pyenv 支持主流操作系统,除了支持 CPython 的各大主流版本,还支持其他的 Python 实现,比如 Pypy。

Read more »

原文:https://learnpythonthehardway.org/book/intro.html
By Zed A. Shaw

泛泛的话:

Zed 是 《Learn Python the Hard Way》 的作者,这是他为这本书写的一个说明。
不过里面涉及的关于如何学习编程(甚至任何技能)的建议非常的棒:

  • (自律) 持之以恒、亲力亲为的练习
  • 关注细节和差异
  • 可以跳过不懂的部分,以后再看

Read more »

谈到存储我们有几个维度来看:

  • 存储速度
  • 读取速度
  • 空间占用
  • 检索性能
  • 可读性

目前可选的方案:

  • pickle
  • parquet
  • npy,npz
  • hdf5
  • lance

当然我们还有很多其他的方案,比如 csv,json,等等,甚至可以存到 SQL或者mongo等数据库里面。

Read more »

数据分析生态的活跃程度可能仅次于前端(一个坏笑话哈哈)。
我刚接触编程的那些年(大约是 2016 年),(大)数据分析人们主要谈论的是 Spark,逐渐放弃的是 Hadoop,
渐渐在讨论 Flink 这样的流处理平台。

这些平台有个共同点:都是跑在 JVM 上(好吧,又一个坏笑话,你读过 Spark 的异常信息码?信噪比低到令人发指)。
我觉得这些平台的共同点是:他们都是 Platform,而不是 library。什么意思呢?为了用这些平台分析数据,
首先,你需要安装对应的集群;然后,你需要把你的问题转化成对应平台的 API 来执行;最后,这些平台内部的
数据类型和数据结构是不兼容的。有时候,你会觉得你的问题用 Spark 有点高射炮打蚊子,又有些时候你觉得
Spark 的 API 好难用,并不是适合你的问题,而且它的运行时语义也不是你想要的,你需要各种 Hack。
很多时候,你只想把算任务派发到很电脑上,完成计算任务。

计算三要素:算、存、通讯。这些平台都有自己的算、存、通讯机制,导致相互共存非常困难。

如今,2023年,Spark Flink 仍然蓬勃发展,但是社区中似乎有了一些新的动向:

  • 去平台化,去JVM化
  • 统一数据格式( in memory / on disk)
Read more »

程序员这个职业蛮有意思:历史很短,却出现在各行各业。
很多传统职业,比如土木工程师,虽然也会去设计医院,但是土木工程师并不需要了解医疗技术。
但是,医疗行业的程序员(当然不是全部程序员,后面再说)却需要了解医疗技术,这样才能写出对应的软件。

程序员这个职业究竟是干什么的呢?
弄清这个问题需先问程序员为什么会出现?程序员的出现是伴随这电脑的出现。电子计算机是电气时代的重要里程碑之一。
显然,电子计算机刚出现的时候,是一个全新的工具,人们不知道它会发展成什么样子,也不知道:该如何更好的使用它。
程序员这个职业便诞生了。
程序员,就是会使用电子计算机的人。不过这是一个非常笼统的定义。
重点是:会使用计算机干什么事情。这里面有两个要素:其一是熟悉手上的工具,即计算机;其二是熟悉要做的事情,即领域知识。

通常,我们不会把一个使用 Word 编辑文档的作家称为程序员。为何?他很熟悉 Word 这个软件的事情,但是
他不熟悉计算机这个东西。


未完待续。。。。

Read more »

读书:《The Secret》

这个世界有个秘密叫做”吸引力法则^1。简单来说:你的思想会以某种方式影响物理世界,最终把你想到的事情,吸引到你周围。

当然,好的不好的事情都会被吸引。

很多名人、伟人或者说成功的人都知道或者用到(有意或者无意)这个法则。

无法证实,也无法证伪。显然这不是科学,但是。。。

Read more »

转眼 2022 年也快结束了,到了一年一度写总结的时候了!从哪里开始呢?索性我就从 2021 总结的展望部分开始吧!

去年的展望

  1. 好好生活,多读圣经

达成(?)。我的虎儿子在年根儿附近出生了,当了 9 个月的准爸爸,两个月的爸爸,心中确实是,嗯,用个不恰当的词:悲喜交加!不过也正是因为经历了这 10 多个月的担心,才让我更加学会如何谦卑、如何信靠。

  1. 强化计算机基础知识,逐渐为业务专精和第二专精服务。比如熟悉量化交易框架、输出文章、代码、视频。
  2. 强化量化知识,逐渐形成自己的职业细分专精方向:股票量化交易。
Read more »

之前的一篇文章讲述了我对分层信任模型的理解。很自然地我们会思考:分层信任模型会产生怎么样的软件架构?

分层架构

分层信任自然会导致分层架构。我们之前提到越是民主信任,其去中心化程度越高、抗审查能力越高;但是,相应的其效率也会随着共识程度需要而降低。这是一个不能两全的问题,必然是会获得一个,而牺牲另一个。

分层设计是软件工程,乃至整个工程学中重要的设计方法。分成设计的核心是:每一层专注一个功能,为上一层提供一些接口;越接近底层,功能应该越稳定;越接近上层,功能应该越丰富。

这种设计有如下优势:

Read more »
0%