量化
-
北京大学R语言教程(李东风)第12章: R矩阵和数组
矩阵用matrix函数定义,实际存储成一个向量,根据保存的行数和列数对应到矩阵的元素,存储次序为按列存储。定义如 A <- matrix(11:16, nrow=3, ncol=2); print(A) ## [,1] [,2] ## [1,] 11 14 ## [2,] 12 15 ## [3,] 13 16 B <- matrix(c(1,-…
-
北京大学R语言教程(李东风)第11章:列表类型
R中列表(list)类型来保存不同类型的数据。一个主要目的是提供R分析结果输出包装:输出一个变量,这个变量包括回归系数、预测值、残差、检验结果等等一系列不能放到规则形状数据结构中的内容。实际上,数据框也是列表的一种,但是数据框要求各列等长,而列表不要求。 列表可以有多个元素,但是与向量不同的是,列表的不同元素的类型可以不同,比如,一个元素是数值型向量,一个元…
-
北京大学R语言教程(李东风)第10章: R因子类型
因子 R中用因子代表数据中分类变量, 如性别、省份、职业。有序因子代表有序量度,如打分结果,疾病严重程度等。 用factor()函数把字符型向量转换成因子,如 x <- c(“男”, “女”, “男”, “男”, “女”) sex <- factor(x) sex ## [1] 男 女 男 男 女 ## Levels: 男 女 attribute…
-
北京大学R语言教程(李东风)第9章: R日期时间
R日期和日期时间类型 R日期可以保存为Date类型,一般用整数保存,数值为从1970-1-1经过的天数。 R中用一种叫做POSIXct和POSIXlt的特殊数据类型保存日期和时间,可以仅包含日期部分,也可以同时有日期和时间。技术上,POSIXct把日期时间保存为从1970年1月1日零时到该日期时间的时间间隔秒数,所以数据框中需要保存日期时用POSIXct比较…
-
北京大学R语言教程(李东风)第8章: R数据类型的性质
存储模式与基本类型 R的变量可以存储多种不同的数据类型,可以用typeof()函数来返回一个变量或表达式的类型。比如 typeof(1:3) ## [1] “integer” typeof(c(1,2,3)) ## [1] “double” typeof(c(1, 2.1, 3)) ## [1] “double” typeof(c(TRUE, NA, FAL…
-
北京大学R语言教程(李东风)第7章: R向量下标和子集
在R中下标与子集是极为强大的功能,需要一些练习才能熟练掌握,许多其它语言中需要多个语句才能完成的工作在R中都可以简单地通过下标和子集来完成。 7.1 正整数下标 对向量x, 在后面加方括号和下标可以访问向量的元素和子集。 设x <- c(1, 4, 6.25)。x[2]取出第二个元素;x[2] <- 99修改第二个元素。x[c(1,3)]取出第1…
-
北京大学R语言教程(李东风)第6章:字符型数据及其处理
字符型向量 字符型向量是元素为字符串的向量。字符串在程序中写成用两个双撇号包围或者用两个单撇号包围的内容。如 s1 <- c(‘abc’, ”, ‘a cat’, NA, ‘李明’) 注意空字符串并不能自动认为是缺失值,字符型的缺失值仍用NA表示。 字符串内容一般从文件、网络、数据库获得,在程序中直接用双撇号或者单撇号写出只是输入字符串的办法之一。 …
-
北京大学R语言教程(李东风)第5章:逻辑型向量及其运算
逻辑型向量与比较运算 逻辑型是R的基本数据类型之一,只有两个值TRUE和FALSE,缺失时为NA。逻辑值一般产生自比较,如 sele <- (log10(15) < 2); print(sele) ## [1] TRUE 向量比较结果为逻辑型向量。如 c(1, 3, 5) > 2 ## [1] FALSE TRUE TRUE (1:4) &…
-
我们都是宽客,系统投资的新时代
关键点 系统或算法方法对投资决策施加冷静的纪律,但也带来了某些挑战。 系统性策略可能无法快速适应市场的结构性变化。 算法方法可能会导致投资经理毫无根据或夸大地声称采用最新的人工智能或机器学习工具。 由缺乏经验的研究人员进行的回测可能会过度拟合,导致令人失望的现场表现。 抽象的 在这个计算成本低廉、数据庞大、系统或算法驱动的时代,投资越来越受欢迎。系统性策略出…
-
北京大学R语言教程(李东风)第4章: 数值型向量及其运算
数值型向量 向量是将若干个基础类型相同的值存储在一起,各个元素可以按序号访问。如果将若干个数值存储在一起可以用序号访问,就叫做一个数值型向量。 用c()函数把多个元素或向量组合成一个向量。如 marks <- c(10, 6, 4, 7, 8) x <- c(1:3, 10:13) x1 <- c(1, 2) x2 <- c(3, 4…
-
北京大学R语言教程(李东风)第3章: 常量与变量
常量 常量是指直接写在程序中的值,包括数值、字符串等。 数值型常量包括整型、单精度、双精度等,一般不需要区分。写法如123, 123.45, -123.45, -0.012, 1.23E2, -1.2E-2等。为了表示123是整型,可以写成123L。 字符型常量用两个双撇号或两个单撇号包围,如”Li Ming”或’Li Ming’。字符型支持中文,如”李明”…
-
北京大学R语言教程(李东风)第2章:R语言入门运行样例
启动R软件后进入命令行界面,每输入一行命令,就在后面显示计算结果。可以用向上和向下箭头访问历史命令;可以从已经运行过的命令中用鼠标拖选加亮后,用Ctrl+C复制后用Ctrl+V粘贴(这是MS Windows下的快捷键组合),粘贴的目标是当前命令行。 如果使用RStudio软件,有一个“Console窗格”相当于命令行界面。在RStudio中,可以用New F…
-
北京大学R语言教程(李东风)第1章: R语言介绍
R的历史和特点 R的历史 R语言来自S语言,是S语言的一个变种。S语言由Rick Becker, John Chambers, Alan Wilks等人在贝尔实验室开发,著名的C语言、Unix系统也是贝尔实验室开发的。 S语言第一个版本开发于1976-1980,基于Fortran;于1980年移植到Unix, 并对外发布源代码。1984年出版的“棕皮书” (…
-
彭博:量化公司 Man Numeric 的目标是到 2025 年信贷交易实现 100% 电子化
在其他金融市场出现多年之后,电子交易革命终于降临到公司债券上。 全球最大的上市对冲基金管理公司曼恩数字 (Man Numeric) 的量化投资部门就是这么认为的。该公司 90% 的高收益和投资级交易是通过数字平台执行的,预计两年内将达到 100%。一年前,其垃圾债券交易中只有约三分之一是电子化的,其余的则通过电话或消息平台进行。 资金管理者的转变表明,电子平…
-
北京大学Julia语言讲义第26章: 概率统计应用
概率论例子 取帽子问题 问题介绍与推导 设 n个人都戴了帽子参加聚会,聚会时摘下帽子弄乱了,散会时随机抽取一顶。问:所有人都没有取到自己的帽子的概率是多少? 令 Ai表示第 i个人取对自己的帽子,要求概率的事件为 B=⋂i=1nAic. 由概率论的Jordan公式, P(B)=1−P(Bc)=1−P(⋃i=1nAi)=1−[∑iP(Ai)−∑i<jP(…
-
北京大学Julia语言入门讲义第25章: Julia编程示例–动态规划
动态规划(dynamic programming)不完全是数学规划(最优化)问题的算法。它能解决如下问题:问题可以分解为子问题,子问题多次重复出现,就可以将已经出现的子问题记住,从而大大减小计算量。 Fibonacci数列 Fibonacci数列满足 F0=F1=1, Fn=Fn−1+Fn−2, n=2,3,…。 显然,可以写成简单的递归函数: functi…
-
北京大学Julia语言入门讲义第24章: Julia编程示例–单词和文本
词典中单词的练习 二分法查词 设dict是一个字符串数组,包含了许多单词,按字典序排列。为了检查字符串word是否在dict中,可以用word in dict的写法,但是这样会进行线性搜索,效率较低。因为词典dict是按升序排序的,可以用二分法搜索。程序如下: function indict(dict, word) a = 1 b = length(dict…
-
北京大学Julia语言入门讲义第23章: Julia编程示例–递归趣例
23.1 汉诺塔问题 设有三根柱子A, B, C,有大小依次为1,2,…,𝑛的𝑛个空心圆盘,在A柱子上依次从低向上穿了𝑛,𝑛−1,…,1大小的圆盘。任务是要把这𝑛个圆盘移动到C柱子上,仍按照从低向上越来越小的次序。移动的要求为: 每次仅移动一个圆盘到另一个柱子上; 每次的移动,都不能使得增加一个圆盘的柱子上的大圆盘压在小圆盘上。 这个问题是典型的递归问题: …
-
北京大学Julia语言入门讲义第22章: Julia编程示例–自然数处理
在Julia中用Int64保存整数,如果需要许多位的整数就用BigInt类型。 从整数值拆分各个数字 编写一个函数,从一个正整数如12345,拆分成各个数字的数组[1,2,3,4,5]。 输入: n: 要拆分的值。 base: n的进制。 ndigits: 输出的位数,不足时在左边添加0,超过时出错。 function todigits(n, base = …
-
北京大学Julia语言入门讲义第21章: Julia编程示例–科学计算问题
用迭代计算平方根 求某个正数 x的平方根,相当于求解方程 f(u)=u2−x=0。利用一阶泰勒展开式 f(u)=f(u0)+f′(u0)(u−u0)+o(u−u0),其中 f′(u)=2u,令 f(u)=0得 u≈u0−f(u0)f′(u0), 将其作为迭代公式 un=un−1−f(un−1)f′(un−1)=un−1−un−12−x2un−1=12(un−…
-
北京大学Julia语言入门讲义第20章: Julia统计图形—Gadfly
介绍 Julia语言没有内建作图能力,作图需要通过扩展包提供,因为Julia语言的历史还比较短,现在有多种作图用的扩展包但是没有一个占绝对优势的包。比较常用的有Gadfly, Plots, PyPlot包。Julia还在快速发展阶段,功能的兼容性不够稳定,作图功能尤其如此。本文演示Gadfly包作图。 本文作者先安装了Anaconda3,然后安装Julia1…
-
北京大学Julia语言入门第19章: Julia统计图形–Plots库
介绍 Julia语言没有内建作图能力,作图需要通过扩展包提供,因为Julia语言的历史还比较短,现在有多种作图用的扩展包但是没有一个占绝对优势的包。比较常用的有Plots, Makie, Gadfly, PyPlot包。其中Makie出现较晚,功能比较强大,后端安装容易。 本文演示Plots包。参见: https://docs.juliaplots.org/…
-
北京大学Julia语言入门讲义第18章: Julia程序效率介绍
Julia的语言特点 Julia语言是一种历史很短的计算机语言,公开发布于2012年。其设计理念就是希望兼有Python、R、Matlab这样的动态语言的易用性,以及C、C++、Java这样的静态语言的运行速度。所以Julia很适合用来做统计和金融计算。 Julia语言的特点有: 动态语言; 使用基于LLVM的动态编译技术,可以动态生成高效的运行代码; 不需…
-
北京大学Julia语言入门讲义第17章: 离散事件模拟SimJulia
对于离散事件系统模拟,比如排队系统的模拟,SimJulia包可以很容易地建模进行模拟。 一般的独立样本抽样、重要性抽样等可以直接利用Julia的随机数发生器模拟。 贝叶斯推断问题一般使用MCMC,Julia的Stan包调用Stan程序库进行MCMC计算,Stan程序会将模型转换为C++然后编译成本地二进制代码运行。 Julia的Mamba包是纯Julia语言…
-
北京大学Julia语言入门讲义第16章: 随机模拟
介绍 在用数学模型, 包括概率统计模型处理实际应用中的问题时,我们希望建立的模型能够尽可能地符合实际情况。但是,实际情况是错综复杂的, 如果一味地要求模型与实际完全相符,会导致模型过于复杂, 以至于不能进行严格理论分析,结果导致模型不能使用。所以,实际建模时会忽略许多细节, 增加一些可能很难验证的理论假设,使得模型比较简单,可以用数学理论进行分析研究。 这样…
-
北京大学Julia语言入门讲义第15章: 统计计算
这一部分介绍如何靠自己编写Julia程序进行定制化的统计计算。从自己编写程序作统计计算的角度简单介绍Julia中与统计计算编程有关的功能,如向量、矩阵计算,最优化,随机模拟,并行计算等。 Julia比较适合用作数值计算,编程既有Python、R、Matlab这样的语言的简洁,又有C++这样的编译语言的运行效率。统计数据分析、作图需要用到许多复杂的算法,有些算…
-
北京大学Julia语言入门讲义第14章: 统计学习介绍
这一部分介绍一些机器学习(统计学习)方法。 参考: McNicholas and Tait(2019) Data Science Using Julia, CRC Press. Jose Storopoli, Rik Huijzer, Lazaro Alonso(2022) Julia Data Science. https://cn.julialang.o…
-
弥合基本面与量化的鸿沟
如今,大多数大型主动基金管理公司都拥有基本面和量化投资团队。从历史上看,这两个群体一直处于不同的孤岛,并且有充分的理由:他们对投资流程有不同的方法,并且使用不同的日常语言。 分歧的根源在于各自的教育基础。基本面投资者研究经济学并学习自下而上的投资过程,旨在确定单一股票的未来价值。量化分析师学习数学和工程学,并从大量市场数据开始,采用自上而下的方法进行投资决策…
-
北京大学Julia语言入门讲义第13章: 基本统计功能
这一部分介绍描述统计、估计、置信区间、假设检验和一些模型。 参考: McNicholas and Tait(2019) Data Science Using Julia, CRC Press. Jose Storopoli, Rik Huijzer, Lazaro Alonso(2022) Julia Data Science. https://cn.jul…
-
北京大学Julia语言入门讲义第12章: Makie包作图
这一部分介绍用Julia的Makie包作图方法。 参考: Jose Storopoli, Rik Huijzer, Lazaro Alonso(2022) Julia Data Science. https://cn.julialang.org/JuliaDataScience/ Makie: https://makie.juliaplots.org/sta…