• Archive by category "金融"

Blog Archives

2018南京信息工程大学:R语言与计量经济学

跨界知识聚会系列文章,“知识是用来分享和传承的”,各种会议、论坛、沙龙都是分享知识的绝佳场所。我也有幸作为演讲嘉宾参加了一些国内的大型会议,向大家展示我所做的一些成果。从听众到演讲感觉是不一样的,把知识分享出来,你才能收获更多。

关于作者

  • 张丹(Conan), 程序员/Quant: Java,R,Nodejs
  • blog: http://blog.fens.me
  • email: bsspirit@gmail.com

转载请注明出处:
http://blog.fens.me/meeting-nuist-20181201

前言

学生面临毕业的竞争,如何能脱颖而了,不仅需要有良好的知识储备,更要具有动手能力,同时了解市场的需求是什么。很多同学,在学校读书学习,最后都变成了,“死读书,读死书”,完成不知道社会是什么样的,只是把书本上和老师教的内容掌握,这是完全不行的!!!

当老师充分的认识到,学生需要更多的知识来源时,就会选择与行业专家来合作,从而打开学生的视野。那么,本次的教学就是这样的一个目的,南京信息工程大学经济管理学院的鲁老师找到我,希望我给他的学生带来一次,R语言与计量经济的培训,让学生不仅学到知识,更多看看外面的世界是什么样子的。

目录

  1. 我的培训主题:基于R语言的数据挖掘与计量经济学
  2. 会议体验和照片分享

1. 我的培训主题:基于R语言的数据挖掘与计量经济学

50人的小班课程,定位就是把R语言和计量经济学的知识结合起来,让学生们提高动手能力,掌握一门技能,提高毕业时求职的竞争力。本次培训的活动主页

课程大纲:2018年全国高校计量经济学及R语言应用师资培训大纲

本期培训内容以“计量经济学及应用”考核大纲为基础,重点讲解R语言编程、金融数据计算、数据分析与可视化等内容,并对2018年度计量经济学及应用试题进行实操演练。

经过2天的密集的授课,让同学们从3个维度获得了提升:

  • IT思维:熟悉的R语言编程
  • 统计思维:把计量经济学的模型通过R语言落地
  • 金融市场思维:了解金融市场,把书里上的知识与市场进行了对接。

2. 会议体验和照片分享

我的介绍和照片分享。

张丹,青萌数海CTO,微软MVP,资深R语言技术专家,,《R的极客理想-量化投资篇》作者,微软MVP。10年编程经验,获得10项SUN及IBM技术认证。前民生银行大数据分析师。个人博客 http://fens.me, Alexa全球排名70K。

2.2 会议体验证和相关照片

本次的场地南京信息工程大学经济管理学院,由学院的鲁老师负责制定整体的教学计划。整体来说,课程安排的很紧很充实,也很累。嗓子疼!!又赶上了南京的大雾霾天,和北京真是有的一比了。

大合照

我在讲课

上课啦

动手实践,讨论问题

教师里问问题的学生

学校正门

体育场

图书馆

据说全国排名1-2的气象学院

野鸭湖

最后,课程获得了,同学们和老师的好评!希望同学们能消化吸收,未来的世界是属于你们的。

转载请注明出处:
http://blog.fens.me/meeting-nuist-20181201

打赏作者

矩阵数字经济智库专访: 顶层设计决定行业基础

架构师的信仰系列文章,主要介绍我对系统架构的理解,从我的视角描述各种软件应用系统的架构设计思想和实现思路。

从程序员开始,到架构师一路走来,经历过太多的系统和应用。做过手机游戏,写过编程工具;做过大型Web应用系统,写过公司内部CRM;做过SOA的系统集成,写过基于Hadoop的大数据工具;做过外包,做过电商,做过团购,做过支付,做过SNS,也做过移动SNS。以前只用Java,然后学了PHP,现在用R和Javascript。最后跳出IT圈,进入金融圈,研发量化交易软件。

架构设计就是定义一套完整的程序规范,坚持架构师的信仰,做自己想做的东西。

关于作者:

  • 张丹(Conan), 程序员/Quant: Java,R,Nodejs
  • blog: http://blog.fens.me
  • email: bsspirit@gmail.com

转载请注明出处:
http://blog.fens.me/architect-matrix-interview

前言

受矩阵数字经济智库邀请,做一起对于行业发展的专访。专访的过程,涉及了大数据,区块链,宏观经济,个人转型等多个领域,我也是根据个人的理解,对上述的一些问题做了总结。

2018年,我经历了很多,大病初愈,去了微软总部参观,从从银行的舒适区出来,经历区块链快速下跌的市场,关注金融改革,了解中美贸易的影响,看到国内经济的从乱序到稳定。

总结一句话:2018市场的变化真是太快了,各行各业都缺少顶层设计者。

目录

  1. 专访背景
  2. 如何从技术转型
  3. 量化投资,更需要规范的市场环境
  4. 顶层设计,是行业发展先行条件

1. 专访背景

十年前,银行核心系统的升级改造促进了大数据的积累;十年后,数字化转型的需求使得大数据在各个行业广泛应用。经过十年的数据积累和科技分析能力的提升,金融大数据的分析和应用已经进入到了一个新的层次,金融改变人们的生活,生活也会改变着金融,而大数据已经成为改变人们的生活和金融行为的重要手段和方式,大数据的应用让金融和人们的生活更加了解、互相改进和互相适应。

应矩阵数字经济智库之约,我们邀请到青萌数海CTO张丹,国内顶尖的R语言专家,金融大数据专家,曾在民生银行等金融机构工作,积累了丰富业务经验和对金融数据深刻理解,共同探讨国内大数据的未来发展。官方文章发布地址

2. 如何从技术转型

从最初的编程技术入手,作为国内顶尖的R语言专家,张丹无论在技术水平还是作品产出都居于一线水准。之后进入金融领域做量化投资,而目前主要做数据科学相关的行业研究,发现数据规律。

一路跨界,从IT技术到量化投资再到数据科学,张丹认为当一个人在一个领域取得了很深入的理解,包括技术能力、思维模式、业务思路、整个产业的上下游企业关系等,将知识理解形成系统的方法论,作为基础再进入一个新的领域,也会很快成为新领域的专家。

作为技术出身的张丹,对待新事物的认知往往采取理性的态度。对于目前热议的区块链金融,他认为金融是指银行、证券、信托、保险、基金等金融领域,而区块链金融仅仅是利用币的交易属性进行流通。因此,区块链金融应该是金融业务对区块链的金融支持,而不是颠覆传统金融,单独以区块链为基础的金融。只有当投资银行、商业银行、信托等金额机构,对整个区块链的账户体系,资金流转,信用体系等,提供各种各样的金融服务支撑之后,才能开展基于区块链的金融类型服务。

在谈及自己深入研究的大数据领域时,张丹认为大数据是基于技术领域衍生出来的一个概念,同时也是社会所需要的技术。大数据带来了一次生产力的变革,大数据会成为一个长期的机会。在未来,数据会成为每个人所必须的知识。

当我们以大数据的视角去看待日常的生活时,会为我们带来很多的改变。将大数据结合人工智能、物联网等技术,在多方面可以提高人的工作效率。人工智能领域突破,如AlphaGo,会打破了人类固有的认知,进而形成的新的思维方式,是人类应该学习的。

张丹曾在金融行业设计和开发智能投顾系统,他认为的智能投顾是利用已有的金融市场交易规则和评判标准,帮助外行人做投资决策。而之所以可以这样做,是因为投资方法是建立在西方的现代金融学理论之上的,有固定的规则、评价方法、运作模式且已经得到市场的认可,基于这个市场基础,可以利用算法进行建模,提升收益。但国内推出智能投顾问服务,更多是站在卖方市场,缺少对买方的利益的保障。

3. 量化投资,更需要规范的市场环境

张丹所认为的量化投资是对传统投资的提升,并不能代替传统投资的模式。量化投资应与传统投资相辅相成,量化本身不能量化一切东西,还需要人的思考,用量化的工具进行辅助决策,会极大地提升工作效率。

张丹认为近两年中国市场的管制逐渐加强,使得很多可以通过量化、程序化的交易通道被堵塞,导致量化投资受到政策上的影响和限制,但并不影响量化的决策继续进行。对于数字货币交易市场,还处于鱼龙混杂的时期,区块链生态都面临着洗牌,量化投资可以帮助币市恢复理性。让纯投机的人离场,通过更多的数据指标支撑,重新建立数据货币的秩序。

4. 顶层设计,是行业发展先行条件

当谈及金融大数据的未来时,张丹乐观的认为,金融数据会不断延伸到各行各业,及至个人的生活交易。金融大数据也会衍生出各种的数据,在数据量和数据维度方面不断的进行拓展。金融数据的未来会成为一个机会,在如何把握这样的机会上,张丹认为我们应明确区分金融属性的数据和金融业的数据,在此基础上抓住未来的发展机会。

而对于未来区块链行业发展的方向上,他提出,行业内最需要精英进行顶层设计,技术资源和资本是相对丰富的,但真正能调配这些资源的顶层设计者是难求的。

他通过研究公链上数据的交易行为,来评价公链项目的优劣。每条公链都有自己的使命和独特的性质。公链上数据所呈现的行为,应该是反映这个项目的价值观。通过数据分析验证公链项目的言行一致,是判断公链是否是空气项目的重要标准。

行业的发展瞬息万变,但一个行业的发展离不开站在顶端看世界的人,高瞻远瞩的布局会奠定行业的趋势。未来的大数据和区块链等行业会如何发展,让我们拭目以待。

转载请注明出处:
http://blog.fens.me/architect-matrix-interview

打赏作者

宽客挑战赛: 量化投资基础知识12题

跨界知识聚会系列文章,“知识是用来分享和传承的”,各种会议、论坛、沙龙都是分享知识的绝佳场所。我也有幸作为演讲嘉宾参加了一些国内的大型会议,向大家展示我所做的一些成果。从听众到演讲感觉是不一样的,把知识分享出来,你才能收获更多。

关于作者:

  • 张丹(Conan), 程序员R,Nodejs,Java
  • weibo:@Conan_Z
  • blog: http://blog.fens.me
  • email: bsspirit@gmail.com

转载请注明出处:
http://blog.fens.me/meeting-quant-20180315

前言

本次与“量化投资与机器学习”微信公众号合作,进行宽客挑战赛(第二期)!我来出题,大家大回答!

这期的挑战有点难度哦,全答对算你厉害!!

目录

  1. 答题规则
  2. 答题开始
  3. 公布答案
  4. 获奖名单

1. 答题规则

本次与“量化投资与机器学习”微信公众号合作,进行宽客挑战赛(第二期),答题页的链接

参与规则

  1. 请点击文末写留言,将答案发送至后台。
  2. 我们会根据后台用户提交答案的时间顺序,选出全部回答正确的前5位用户,并免费赠送这本丛书。
  3. 我们会在2017.03.19—07点公布答案(第一条置顶留言)

本次奖励,我的新书:《R的极客理想:量化投资篇》



2. 答题开始

1、black-litterman 的统计学算法基础是?

a. 均值方差模型

b. 贝叶斯模型

c. arima模型

d. 神经网络

2、哪个包是R语言中,用于计算技术指标的?

a. xts

b. WindR

c. quantmod

d. TTR

3、基于APT理论进行配对交易时,错误配对方法是?

a. 沪深300指数基金,IF股指期货合约

b. 铜CU1804合约,铜CU1805合约

c. A股工商银行,H股工商银行

d. 国债指数,回购GC001

4、可转债的负溢价率套利,正确的描述是?

a. 正股价格大于可转债价格

b. 正股价格小于可转债价格

c, 转股价值大于可转债价格

d, 转股价值小于可转债价格

5、2个人a和b合伙投资炒股,开始各入金50w股权各占50%,6个月后赚了50w,b继续追加投资60w,问a和b的股权比例?

a. a:b=5:12

b. a:b=5:11

c. a:b=5:9

d. a:b=5:7

6、对线性回归模型进行调优进时,不需要看指标是?

a. AIC

b. ROC

c. p-value

d. R-squared

7、某只指数跟踪的量化基金,其beta合理取值为?

a. 0.5

b. 1

c. 1.5

d. 2

8、期货交易时,人为降杠杠的方法是?

a. 用现货对冲

b. 只用1/n的资金交易,留有大部分现金,n为杠杠倍数

c. 同时开多单和空单,双向操作

d. 要求期货公司开通不加杠杠的通道

9、股票分红时,10派10转10,错误的描述是?

a. 转10,是指公司用资本公积金对于股东每10股转增10股。

b. 派10,是指公司用未分配利润每10股现金分红10元。

c. 你有100股,分红后,你将变成200股和100元现金

d. 分红后,股票价格会下降

10、用机器学习的方法建模,回测很好为什么实盘会不好?

a. 过拟合

b. 未来函数

c. 滑点

d. 以上都有可能

11、假设赌局: 你赢的概率是60%,下注1元,赢时可获得2元,输时下注的1元就没了。你的本金是100元,赌局可无限次,根据凯里公式最优的仓位比例是多少?

a. 10%

b. 20%

c. 40%

d. 60%

12、标普500的期望收益率是12%,无风险利率为5%,下面投资组合回报率最高的是哪个?

a. beta=0.2

b. beta=0.5

c. beta=1.1

d. beta=1.4

3. 公布答案

2017.03.19—07点公布答案!!

1-6: BDDCCB
7-12: BBCDBD

4. 获奖名单

请查看主办方的公众号,链接, 在微信里看。

注大家答题愉快!

写文章很辛苦,如果需要获得本文源代码或加入量化投资社群,请扫下面二维码,请作者喝杯咖啡。

转载请注明出处:
http://blog.fens.me/meeting-quant-20180315

打赏作者

用R语言解读凯利公式

用IT技术玩金融系列文章,将介绍如何使用IT技术,处理金融大数据。在互联网混迹多年,已经熟练掌握一些IT技术。单纯地在互联网做开发,总觉得使劲的方式不对。要想靠技术养活自己,就要把技术变现。通过“跨界”可以寻找新的机会,创造技术的壁垒。

金融是离钱最近的市场,也是变现的好渠道!今天就开始踏上“用IT技术玩金融”之旅!

关于作者:

  • 张丹(Conan), 程序员R,Nodejs,Java
  • weibo:@Conan_Z
  • blog: http://blog.fens.me
  • email: bsspirit@gmail.com

转载请注明出处:
http://blog.fens.me/finance-kelly

前言

职业做投机交易的人,应该都听说过凯利公式,这是一个通过计算胜率和赔率,来选择最佳投注比例的公式,目的是长期获得最高的盈利。

只要找到长期看必胜的局,接下来就是让时间帮我们赚钱了。

目录

  1. 开始赌局
  2. 凯利公式
  3. 赌局的最优解
  4. 让时间帮我们赚钱

1. 开始赌局

设游戏赌局,你赢的概率是80%,输的概率是20%,赢时的净收益率是100%,输时的亏损率也是100%。如果赢,你每赌1元可以赢得1元;如果输,则每赌1元将会输掉1元。赌局可以进行无限次,每次下的赌注可由你自己任意定。如果你的初始资金是100元,那么怎么样下注,才能使得长期收益最大?

对于胜率80%,从感觉上应该是很有把握的事情了。那么我们先主观判断一次,用90%的仓位去赌一下,看看结果怎么呢?如果下注10次,按80%胜率,8次胜,2次负。我们来算一下最后的结果。


# 设置胜负,1胜,0负
> win<-c(1,1,1,0,1,1,0,1,1,1)
 
# 分别按投注计算每回合的剩余资金 
> a1<-(1+0.9)*100
> a2<-a1*(1+0.9)
> a3<-a2*(1+0.9)
> a4<-a3*0.1
> a5<-a4*(1+0.9)
> a6<-a5*(1+0.9)
> a7<-a6*0.1
> a8<-a7*(1+0.9)
> a9<-a8*(1+0.9)
> a10<-a9*(1+0.9)
 
> dat<-c(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)
> df<-data.frame(win,dat)

# 打印剩余资金列表
> df
   win      dat
1    1 190.0000
2    1 361.0000
3    1 685.9000
4    0  68.5900
5    1 130.3210
6    1 247.6099
7    0  24.7610
8    1  47.0459
9    1  89.3872
10   1 169.8356

10次交易后,赢了8次,只输了2次,我们从100元本金,上升到了169元,收益率为69%,还是不错的。最高的时候,资金为685元,收益率为685%,赚了6倍多。最低则是只剩下24元,真是赔的好惨啊!

接下来,画出资金曲线。这是一个过山车式的曲线,赚钱的时候非常猛,一旦赌输了,就产生了巨大的亏损。


# 画出资金曲线 
> plot(df$dat,type='l')

曲线很陡峭,波动很大,回撤也很大,完全就是在赌博。

怎么样才能让资金曲线好看一些呢?如果每次下注用少一点资金,是不是会更好呢?那么我继续试一下。分别计算每次下注资金为 60%,40%,20%,10%的4个维度的仓位的情况。


> library(magrittr)

# 定义现金流量函数:win=胜负结果,b=赔率,pos=仓位
> postion<-function(win,b=1,pos=0.6){            # 省略代码
+ }
 
# 设置胜负,1胜,0负
> win<-c(1,1,1,0,1,1,0,1,1,1) 
> prob<-0.8                      # 胜率
> n<-10                          # 赌局数
> b<-1                           # 赔率
> caption<-100                   # 金额
 
# 分别计算不同仓位的剩余现金
> pos90<-postion(win,b,0.9)*caption
> pos60<-postion(win,b,0.6)*caption
> pos40<-postion(win,b,0.4)*caption
> pos20<-postion(win,b,0.2)*caption
> pos10<-postion(win,b,0.1)*caption

# 合并到数据框
> df1<-data.frame(win,pos90,pos60,pos40,pos20,pos10)

# 打印计算结果
> df1
   win    pos90   pos60   pos40   pos20   pos10
1    1 190.0000 160.000 140.000 120.000 110.000
2    1 361.0000 256.000 196.000 144.000 121.000
3    1 685.9000 409.600 274.400 172.800 133.100
4    0  68.5900 163.840 164.640 138.240 119.790
5    1 130.3210 262.144 230.496 165.888 131.769
6    1 247.6099 419.430 322.694 199.066 144.946
7    0  24.7610 167.772 193.617 159.252 130.451
8    1  47.0459 268.435 271.063 191.103 143.496
9    1  89.3872 429.497 379.489 229.324 157.846
10   1 169.8356 687.195 531.284 275.188 173.631

我们看到,只是简单地调整了交易的仓位比例,那么交易10次后,你剩余的现是就是有很大的不同的。其中pos60列,即60%仓位的交易,获得的回报最高为687元,而90%的仓位获得的回报,是这里面最少的。而且非常有意思的是,后面的4种仓位设置,每次交易后的资金都大于100元的原始本金。

画出资金曲线


> library(ggplot2)
> library(scales)
> library(reshape2)

# 数据转型 
> df1$num<-1:nrow(df1)
> df<-melt(df1[,-1],id.vars="num")
 
# 画图 
> g<-ggplot(df,aes(x=num,y=value,colour=variable ))
> g<-g+geom_line()
> g

从图中可以看到,对于高胜率的情况,大的仓位是可以有高回报的,但是风险也大;小仓位是相对平稳的增长。

2. 凯利公式

那么多少的仓位是最优的呢?接下来的问题,就是凯利公式会告诉我们的。

在概率论中,凯利公式(The Kelly Criterion)是一个用以使特定赌局中,拥有正期望值之重复行为长期增长率最大化的公式,由约翰·拉里·凯利于1956年在《贝尔系统技术期刊》中发表,可用以计算出每次游戏中应投注的资金比例。

除可将长期增长率最大化外,此公式不会在任何赌局中,有失去全部现有资金的可能,因此有不存在破产疑虑的优点。公式中,假设货币与赌局可无限分割,只要资金足够多,长期一定是会赚到钱的。

凯利公式的最一般性陈述为,寻找能最大化结果对数期望值的资本比例f,即可获得长期增长率的最大化。对于只有两种结果的简单赌局而言,即 输失去所有本金,胜获得资金乘以特定的赔率。

可以用下面公式来表示:

其中

  • f* 投注的比例
  • b 赔率,盈亏比,即平均一次盈利与一次亏损两者的比例
  • p 胜率
  • q 败率,即 1 – p

用凯利公式对上面的例子进行测试,胜率p=0.8,失败率q=1-p=0.2,赔率b=1,失败则下注资金完全损失,计算下注比例为


f* = (b*p-q)/b = (1*0.8-0.2)/1=0.6

所以,赌客应在每次机会中下注现有资金的60%,可以获得最大化资金的长期增长率。

通过数学变型,可以很容易得到凯利公式的另一种表达式


Kelly % = W – [(1 – W) / R]

其中Kelly % 就是上式中的f*,W就是p胜率,R就是b赔率。两者看似不同,其实完全等效一致。

对于上面的例子,我们可以计算


Kelly % = W – [(1 – W) / R] = 0.8-[(1-0.8)/1] = 0.6 

凯利公式,有一个优化的变型。如果每次下注失败后,不是全部亏损,只是亏损部分,我们对上面公式可以做一个优化,增加亏损比例参数c,公式改写为下面格式


f* =  (b*p-c*q)/c*b

其中

  • f* 投注的比例
  • b 赔率,盈亏比,即平均一次盈利与一次亏损两者的比例
  • p 胜率
  • q 败率,即 1 – p
  • c 亏损比例

对于上面的例子,如果每次亏损是c=0.8,其他条件不变,那么我们应该用什么仓位进行交易呢?


f* = (b*p-q)/b = (1*0.8-0.8*0.2)/(0.8*1)=0.8

通过计算结果是0.8,我可以增大仓位。

凯利公式定义了长期获得最高的盈利的仓位确认的计算方法,我们自己也可以按照凯利公式的数学定义,进行推到一下。

假设一个赌局,每投资1,有p的概率可获得额外正收益W,有q=1-p的概率可获得额外的负收益-L,每次投资比例为x,建立收益为f(x)的目标函数,使得期望收益最大化。

转化为规划问题:

从推到可看出,标准的凯利公式只是当L=1的情况是一个应用,通过优化可增加了亏损比例参数。

3. 赌局的最优解

我们已经把公式介绍的很清楚了,那么接下来,就可以用程序实现进行实现了。


# 凯利公式,实现函数
> kelly<-function(prob,b=1,loss=1){   # 省略代码
+ }

用凯利公式计算的上文中的例子。


> prob<-0.8                     # 胜率
> b<-1                          # 赔率
> k<-kelly(prob,b,1);k
[1] 0.6

这时通过凯利公式,我们就能算出最最优的解其实是0.6的仓位设置,也就可以解释,上面的结果60%的仓位占比,获得的收益是最大的。

接下来,我们再比较一下不同的胜率和赔率的最优解是什么?

大胜率和大赔率时,可以重仓。当80%的胜率,2倍赔率时,仓位为70%。


> kelly(0.8,2)
[1] 0.7

通常情况下的赌局,不足50%的胜率,高赔率时,可以轻仓。当45%的胜率,2倍赔率时,仓位为17.5%。


> kelly(0.45,2)
[1] 0.175

通常情况下的赌局,不足50%的胜率,低赔率时,不要参考。当45%的胜率,1倍赔率时,不参与赌局。


> kelly(0.45,1)
[1] "Lost!!!"
[1] 0

小胜率,中等赔率时,不要参与。


> kelly(0.2,1)
[1] "Lost!!!"
[1] 0

小胜率,中等赔率时,中等损失,不要参与。


> kelly(0.2,1,0.5)
[1] "Lost!!!"
[1] 0

小胜率,中等赔率时,很小损失,可以All in。很小的损失比例,其实是变相的增大了赔率。


> kelly(0.2,1,0.1)
[1] "All In"
[1] 1

大胜率,很小赔率,很小损失,All in。


> kelly(0.8,0.1,0.1)
[1] "All In"
[1] 1

中胜率,很小赔率,很小损失,不要参与。


> kelly(0.45,0.1,0.1)
[1] "Lost!!!"
[1] 0

总结一下,投机操作的游戏规则。

胜率赔率损失率仓位指导建议备注
80%2100%70%重仓大胜率、大赔率、全部损失
45%2100%17.5%轻仓中胜率、大赔率、全部损失
45%1100%0离场中胜率、中赔率、全部损失
20%1100%0离场小胜率、中赔率、全部损失
20%150%0离场小胜率、中赔率、中等损失
20%110%100%满仓小胜率、中赔率、小损失
80%10%10%100%满仓大胜率、小赔率、小损失
45%10%10%0离场中胜率、小赔率、小损失

这样我们就判断出,哪些投机操作值得玩,哪些不能玩,应该怎么玩。是不是很神奇!!

4. 让时间帮我们赚钱

根据凯利公式的定义,赌局可以进行无限次,那么当真的把赌局设置为很大时,会是什么情况呢?

我们把第一次的数据,进行100次的赌局,胜率为80%,赔率为1,金额100元,看一下结果。


> n<-100                          # 赌局数
> prob<-0.8                       # 胜率
> b<-1                            # 赔率
> caption<-100                    # 金额

# 基本二项分布,生成每盘的赌局正负
> set.seed(1)
> win<-rbinom(n,1,prob)
 
# 生成每盘的资金
> pos90<-postion(win,b,0.9)*caption   # 90%仓位
> pos60<-postion(win,b,0.6)*caption   # 60%仓位
> pos40<-postion(win,b,0.4)*caption   # 40%仓位
> pos20<-postion(win,b,0.2)*caption   # 20%仓位
> pos10<-postion(win,b,0.1)*caption   # 10%仓位

# 打印数据
> df2<-data.frame(win,pos90,pos60,pos40,pos20,pos10)
> tail(df2)
    win     pos90       pos60       pos40   pos20   pos10
95    1 105083487 5.73375e+11  9874948167 5067085 34506.6
96    1 199658625 9.17399e+11 13824927434 6080503 37957.3
97    1 379351388 1.46784e+12 19354898407 7296603 41753.0
98    1 720767637 2.34854e+12 27096857770 8755924 45928.3
99    0  72076764 9.39417e+11 16258114662 7004739 41335.5
100   1 136945851 1.50307e+12 22761360527 8405687 45469.0

从100盘赌局后的结果来看,60%的仓位可以获得最高收益的,为1.50307e+12,比其他的仓位都要高少非常。

接下来,我们生成资金曲线图。


# 数据转型
> df2$num<-1:nrow(df2)
> df<-melt(df2[,-1],id.vars = "num")

# 画图 
> g<-ggplot(df,aes(x=num,y=value,colour=variable ))
> g<-g+geom_line()
> g<-g+scale_y_log10()  # y坐标轴log化
> g

资金曲线图能非常直观地告诉了我们,什么的仓位有什么样曲线形状。你如果追求低风险,就用10%仓位稳健上涨。90%接近满仓并不是最赚钱的,反而是60%的仓位是有最大的回报。

我们再用凯利公式进行计算,可以发现结果最优的结果也是60%。


> kelly(prob,1)
[1] 0.6

神奇的算法,可以有效的帮我们控制仓位,最大化长期收益。只要找到长期必胜的局,接下来就是让时间帮我们赚钱了。下一篇文章,将介绍凯利公式在金融市场应用的应用。

写文章很辛苦,如果需要获得本文源代码或加入量化投资社群,请扫下面二维码,请作者喝杯咖啡。

转载请注明出处:
http://blog.fens.me/finance-kelly

打赏作者

图书出版《R的极客理想-量化投资篇》

R的极客理想系列文章,涵盖了R的思想,使用,工具,创新等的一系列要点,以我个人的学习和体验去诠释R的强大。

R语言作为统计学一门语言,一直在小众领域闪耀着光芒。直到大数据的爆发,R语言变成了一门炙手可热的数据分析的利器。随着越来越多的工程背景的人的加入,R语言的社区在迅速扩大成长。现在已不仅仅是统计领域,教育,银行,电商,互联网….都在使用R语言。

要成为有理想的极客,我们不能停留在语法上,要掌握牢固的数学,概率,统计知识,同时还要有创新精神,把R语言发挥到各个领域。让我们一起动起来吧,开始R的极客理想。

关于作者:

  • 张丹(Conan), 程序员Java,R,Javascript
  • weibo:@Conan_Z
  • blog: http://blog.fens.me
  • email: bsspirit@gmail.com

转载请注明出处:
http://blog.fens.me/r-book3/

前言

终于等到R的极客理想系列,第三本《R的极客理想-量化投资篇》一书出版了。写书不仅是一个漫长的过程,更是知识的浓缩和再精华的过程;写书不仅把自己会的东西记录下来,还要站在读者的角度,让其他人也能看得懂;写书不同于写博客,不仅要保证超过5遍以上的审阅,还要遵守出版的各种规则,包括格式、文字、目录、图片,公式,代码,引用….

写书不是一件容易的事情,这是R的极客理想系列最后一本图书。希望更多的朋友都能静心下来,写本自己的书。尊重知识,就是尊重你的未来。

目录

  1. 写书体验
  2. 为什么要写这本书
  3. 读者对象
  4. 如何阅读本书
  5. 致谢

1. 写书体验

本书是我写的“R的极客理想”系列丛书的第三本,是R语言与金融量化投资领域结合的一本书,本书的主要写作目标就是把R语言的技术和实际的金融量化案例结合起来,让读者能切身的体会把知识变成真正的生产力。

本书撰写花了很长的时间才得以完成,因本书涉猎广泛,包括了大量地跨学科的知识,用通俗易懂的语言描述出来,并让读者更容易地理解并非易事,以致于我自己在写作过程中,有过数次想放弃的冲动。这本书最终完成,都源于每次看到读者在我博客中的留言,看到大家的对于知识的期待和对于我本人的鼓励,这些都是我把这项艰苦的事业完成,源源不断的动力和鞭策。有的同学开玩笑地留言说,“集齐全套图书,就可以召唤神龙了”。我真的非常感谢读者,对于图书的高度肯定和对我不断的支持。

在本书的写作过程中,我经历了一次创业的洗礼,体验了人生的大起和大落,这段特殊的经历也让我有了新目标和方向。每当我回忆整个的创业过程,都觉得自己太年轻了。光有满腔的热情和技术,只能让我把事情做起来,但是经验和阅历的不足,不能支撑我成为一个成功的创业者。天时,地利,人和,缺一不可。

图书介绍的网站http://fens.me/book,介绍了本书的基本情况,包括序、前方、目录、勘误、代码、试读、封面、交流等几个方面内容,读者有任何问题,都可以在网站中留言,并得到我的回复。同时,可以加QQ群:383275651,和更多的网友进行交流。网站还有视频专区(http://fens.me/video),提供我录制的各种视频课程,包括 R, Nodejs, Hadoop, 金融量化投资 等,视频收入仅用于网站的运营成本。

前两本上市后不仅再国内取得了不俗的成绩,获得了良好的口碑,而且英文版被美国知名的出版集团CRC引进,在北美市场也获得了读者的热捧,本书的英文版和繁体版随后也会在美国和中国台湾发行。

最后附上购买链接,各大网站都能买到,建议先去比比价:互动出版社京东当当亚马逊

当然,如果你需要一本签名的书,可以联系我订购,但是成本有点高,图书原价+货到付款;也可以带着书,到各种我参加的分享会来找我,我每年有不少的分享活动

2. 为什么要写这本书

本书撰写的一个主要思路是从IT人的角度,通过技术来切入金融市场,进行量化投资。发挥IT人的专注学习、乐于分享的精神,借助互联网快速传播知识,打破传统的金融壁垒。发挥“极客”的创造力,让知识变成生产力,让更多的有理想的IT人,能够有机会进入金融行业,推动金融行业的改革和创新。

但这不是一本简单易懂的书,因为量化投资是跨学科的领域。你需要有多学科的知识储备,才能胜任量化投资的工作。而本书所涉及的相关的内容,可能需要多本书籍的相关知识支撑才能描述完成。

阅读本书,不但需要你有R语言的使用经验,更需要有对金融市场知识的理解。本书主要介绍了三部分内容,涵盖金融市场,统计知识和IT技术。

  • 金融市场,包括了中国的金融二级市场环境的介绍、交易工具的使用、金融产品的交易规则、国内机构投研思路、策略和回测、基金会计等金融行业的基础知识。
  • 统计知识,包括了时间序列、一元线性回归、多元线性回归、自回归等统计和计量的模型算法。
  • IT技术,就是R语言相关的编程技术,金融量化程序包的使用,金融数据处理,金融数据模型的构建,量化策略的实现思路,R语言代码的编写等。

同时,本书使用了很多的真实案例,以中国实际的金融市场为背景,你会感觉到市场所带来的波动,国家宏观政策对于市场的影响,散户思维与专业投资者的差异,量化思路与主观思路对于市场的不同理解。

本书是我在实际投资研究中的总结,从金融理论模型,到市场特征检验,再到数学公式,R语言建模,再到历史数据回测,会计资产核算,最后进行实盘交易。通过R语言,可以很简单地实现我们脑子中的一个投资想法。类似的投资想法其实谁都有,利用IT人的技术优势,可以真正地与实际操作结合起来。

本书所涉及的金融产品,包括了股票、期货、债券、基金、现金管理等,跨越多个金融市场多种金融标的物。交易模型和交易策略,有基于市场技术指标的量价策略,有基于统计理论的套利策略,有基于金融产品规则的事件性策略;有针对全市场扫描的选股策略,也有高频交易的择时策略。相信本书,会另你感受到金融市场的魅力,以及技术优势能给我们带来的价值。

要想深入理解本书的每一篇的内容,可能你需要像我一样,不仅有技术的积累,还要真正地去金融市场做做交易,多和行业内的人进行沟通,不断地学习和思考。

让IT技术,提高金融的效率。

传统的交易员,都是凭借多年的交易训练,人工的每日盯盘,观察市场的变化。一个好的交易员,可以同时观测几个金融市场的几十个交易品种。随着金融产品的发展,股票市场已经达到3000多只股票,债券市场达到3000多只债券,公墓基金市场达到了6000多只基金,还有多种的金融衍生品,大量金融产品的发展,已经不是能依靠个人之力去消化和分析了。

通过计算机在全市场进行扫面,发现不合理的定价和交易机会,可以极大的提高交易员效率。一种理想化的设计,让程序来为我们交易赚钱,我们就可以去做自己喜欢的事情了。让技术变现,解放我们的生活。

本书中的原创观点和方法,都是基于理论研究在实践中的经验所得。实际上,长久以来我也在找这样的一本书,能够把书本上的理论模型与实际业务相结合,但并没有找到,或者并没有符合中国市场的实际案例应用,所以只能自己动手写一本。本书也有点像是自己的笔记,我也会经常翻翻,让自己的头脑始终保持清晰思路。

3. 读者对象

本书适合以下所有R语言工作者:

  • R语言的学习者和使用者(必读)
  • 金融宽客(Quant)(必读)
  • 计算机背景的金融量化爱好者(必读)
  • 数据分析背景的金融方向数据科学家(必读)
  • 统计背景的金融科研工作者
  • 金融行业从业者,券商研究员、分析师、基金经理
  • 回归中国市场的海外金融量化从业人员
  • 金融、统计、数据科学专业的学生

4. 如何阅读本书

本书分为三个部分,六个章节,每一个章节都是一块大的知识体系。

  • 第一部分是金融市场与金融理论(第1~2章),从了解金融开始,建立对金融认识的基本思路。
  • 第二部分是R语言数据处理与高性能计算(第3~4章),详细介绍了R语言进行数据处理的必备工具和使用方法。
  • 第三部分是金融策略实战(第5~6章),结合R语言技术和金融知识,解决金融量化领域的实际问题。

第一章,金融市场概述,为全书开篇,主要介绍了如何R语言做量化投资的思路和方法。量化投资是跨学科知识结合的一个方向,包括了R语言的技术层面的知识,基础学科的应用和金融市场的情况。R语言社区提供丰富的金融工具包,可以让我们快速构建量化投资的体系结构。本章内容以我个人的从业体会,从数据的角度观察中国的金融市场,发现机会,找到风口。

第二章,金融理论,主要介绍了金融经典理论模型和R语言的实现方法。用R语言深度解读,投资学理论和统计学理论在实际金融市场中的应用,包括4个基础理论模型,资本资产定价模型、一元回归性线模型、多元回归线性模型、自回归模型,希望这些基础理论模型可以帮助读者,找到理解金融市场的方法。

第三章,R语言数据处理。以R语言数据处理技术为核心,介绍了如何用R语言进行各种类型数据的处理方法,包括标准的结构化数据集的处理和字符数据集的处理,同时深入浅出地介绍了R语言数据处理方式,包括循环、分组、合并、管道、分词等的常用数据处理操作。

第四章,R语言高性能计算。R语言的性能问题一直是被大家所关心的,R本身有很多解决方案来提高性能,但由于R语言内核的单线程设计,让R本身的解决方案有飞跃式的性能提升是困难的。本章将介绍通过3种外部技术,来让R语言的性能达到生产环境的要求。

第五章,债券和回购。金融市场很大,不仅有股票,更大市场是债券。本章重点介绍了如何用R语言去进行债券分析,做一些债券投资和套利。低风险的债券投资,说不定是我们投资理财更好的选择。

第六章,量化投资策略案例。本章全部是综合的案例,从金融市场开始研究,到数学公式,R语言建模,历史数据回测,最后找到投资机会,是一套完整的从理论到实践的学习方法。祝大家在金融市场中玩的开心!

本书有很多综合运用的知识,在您阅读本书的时候,建议读者顺序阅读全部的章节。本书的一些技术实现,用到了我前两本书介绍的知识点,《R的极客理想-高级开发篇》和《R的极客理想-工具篇》,建议读者一起阅读。

5. 致谢

感谢在我最失意的时候,帮助我度过难关的朋友,北京千庄智金科技有限责任公司总经理张颂,量子金服CEO刘亚非,民生银行同事许斌。 感谢所有R语言的读者,以及社区的各位朋友,让我们通过R语言认识,并一起把知识进行传播。 感谢天善智能社区CEO梁勇,为本书提供赞助和推广。同时,感谢台湾銓智金融科技合伙人陈琪龙博士,复旦大学黄达教授,为本书写推荐序。感谢机械工业出版社华章公司的主编 杨福川 和编辑 李艺,帮助我审阅全部章节,让本书得以出版。

特别感谢我的爱人一直在鼓励我,最终让我走出了失意的阴影。感谢我的爸爸、妈妈,感谢你们对我工作上的支持和生活上的照顾!小宝宝,也在今年出生。

谨以此书献给我最亲爱的家人以及众多R语言爱好者们!祝大家阅读愉快,欢迎交流。

转载请注明出处:
http://blog.fens.me/r-book3/

打赏作者