R语言blotter包及相关工具
(a) 简介
blotter依然是一个正在开发中的包,是TradeAnalytics项目的一部分,主要作者是Peter Carl,Brian Peterson。
http://r-forge.r-project.org/R/?group_id=316
http://r-forge.r-project.org/projects/blotter/
blotter包定义了一个交易系统所应具有的产品、交易、组合和账户等基础工具。可以支持多个资产类别和多个币种的投资组合。
(b) blotter包主要函数
账户的初始化: initPortf 初始化一个 portfolio对象(投资组合)
initAcct 初始化一个 account对象(账户)
处理: addTxn 为组合增加交易(transaction)
updatePortf 对每个周期的每个代码(symbol)计算盈亏(P&L)(也会是更新组合的情况)
updateAcct 从组合数据和对应的收盘价构建证券账户
updateEndEq 对账户更新终止权益
getEndEq 获得权益账户的最新值
getPosQty 获得某日期的头寸
分析:chart.Posn 为市场数据、头寸大小和累积P&L绘制图表
PortfReturns 计算组合产品的回报
getAccount 从 .blotter 环境获得一个account对象
getPortfolio 从 .blotter 环境获得一个portfolio对象
getTxns 从组合中取回交易
tradeStats 计算交易(trade)统计
perTradeStats 计算每一项交易(trade) flat to flat的统计 (注:这里的trade指的是在某一个证券持有头寸的完整交易过程,其中可以包括许多笔交易transaction)
(c) .blotter和.instrument环境
blotter包创建了一个名为.blotter的环境(environment)可以为account对象和portfolio对象提供专用的存贮。在R当中,环境(environment)指的是创建函数时出现的对象集合。
library(blotter)
s()
## character(0)
ls(all = T)
## [1] ".blotter"
下面会用到的FinancialInstrument包也创建了一个叫做.instrument的环境用来存贮定义的产品(如股票、期货等)
2 FinancialInstrument包和PerformanceAnalytics包简介
FinancialInstrument包提供了一个定义金融工具的元数据和彼此联系的基础架构。 主要函数包括currency stock bond option future fund exchange_rate 分别用于创建对应的产品类。
3基于blotter包的策略回测
交易账户的管理适合交易过程同步的。为了说明blotter包的功能,下面以一个策略的回测流程进行说明。所谓回测,就是对设计好的策略或模型在历史数据上的测试和评估。
(a) 回测流程
初始化:
初始化资金和金融产品,载入历史数据;
初始化组合和账户。
bar-by-bar处理:
检查价格和指标是否触发买入或卖出条件;
更新组合和账户中的头寸和证券;
重复上面两个步骤直到数据结束。
评价:
生成组合表现的评价并可视化。
(b) 回测实例
见下篇文章
4使用PerformanceAnalytics包来评价交易表现
PerformanceAnalytics包提供了一系列的评价交易表现和风险的计量工具,包括各种评价交易的图标、指标和比率,并支持建立度量的表格。
charts.PerformanceSummary函数绘制累积回报,月度表现和回撤
table.Arbitrary函数可以创建一个统计表
5一个新的交易表现评价的模版
https://gist.github.com/thertrader/7038864
原文:http://site.douban.com/182577/widget/notes/10568316/note/313993493/
R语言blotter包及相关工具相关推荐
- R语言blotter包回测实例
下面使用Faber策略,对招商银行历史数据进行回测. Faber策略是个非常简单的战术资产配置方法: 如果月收盘价高于10月均线,买入: 如果月收盘价低于10月均线,卖出. (忽略交易成本和滑点) h ...
- r语言 bsda包_使用R语言creditmodel包进行Vintage分析或留存率分析
1 什么是vintage分析? Vintage分析(账龄分析法)被广泛应用于信用卡及信贷行业,这个概念起源于葡萄酒,即不同年份出产的葡萄酒的品质有差异,那么不同时期开户或者放款的资产质量也有差异,其核 ...
- R语言caret包构建机器学习回归模型(regression model)、使用DALEX包进行模型解释分析、特征重要度、偏依赖分析等
R语言caret包构建机器学习回归模型(regression model).使用DALEX包进行模型解释分析.特征重要度.偏依赖分析等 目录
- R语言数据包自带数据集之ISwR包的melanom数据集字段解释、数据导入实战
R语言数据包自带数据集之ISwR包的melanom数据集字段解释.数据导入实战 目录 R语言数据包自带数据集之ISwR包的melanom数据集字段解释.数据导入实战 #数据字段说明 #导入包 #导入数 ...
- R语言数据包自带数据集之survival包的colon数据集字段解释、数据导入实战
R语言数据包自带数据集之survival包的colon数据集字段解释.数据导入实战 #数据字段说明 colon数据集:B/C期结肠癌辅助化疗治疗数据 d # 患者编号 study # 所有患者都是1 ...
- R语言数据包自带数据集之survival包的lung数据集字段解释、数据导入实战
R语言数据包自带数据集之survival包的lung数据集字段解释.数据导入实战 目录 R语言数据包自带数据集之survival包的lung数据集字段解释.数据导入实战 #数据字段说明 #导入包 #导 ...
- R语言数据包自带数据集之ToothGrowth数据集字段解释、数据导入实战
R语言数据包自带数据集之ToothGrowth数据集字段解释.数据导入实战 目录 R语言数据包自带数据集之ToothGrowth数据集字段解释.数据导入实战 #数据字段说明 #导入包 #导入数据 #数 ...
- R语言数据包自带数据集之mtcars数据集字段解释、数据导入实战
R语言数据包自带数据集之mtcars数据集字段解释.数据导入实战 目录 R语言数据包自带数据集之mtcars数据集字段解释.数据导入实战 #会用帮助?或者help函数 #字段说明 #导入包 #导入数据 ...
- R语言dplyr包通过数据列的索引重命名数据列实战(Rename Column by Index Position)
R语言dplyr包通过数据列的索引重命名数据列实战(Rename Column by Index Position) 目录 R语言dplyr包通过数据列的索引重命名数据列实战(Rename Colum ...
最新文章
- 深入浅出谈以太坊智能合约
- Windows下的DNS命令用法
- Java编程思想 第十章:内部类
- The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
- java年利润编程题_[编程入门]利润计算-题解(Java代码)
- C++项目參考解答:累加求圆周率
- 【java机器学习】支持向量机之拉格朗日乘子法解释
- 一览R基础包的六个高级绘图函数(盒型boxplot|条形barplot|直方hist|饼pie|dotchart|coplot)...
- 蔚来召回4803辆ES8电动汽车 自燃原因找到了?
- 计算机组装与维护时dm是指,《计算机组装与维护》试题答案
- 2016-2018年机器学习大赛TOP开源作品汇总
- 凸优化第五章对偶 5.6扰动及灵敏度分析
- Delphi2010
- 音乐直链php,【原创】百度音乐直链 + 实现方法
- J2EE框架搭建大集合
- 汇编语言——伪指令和汇编指令详解
- 官方VM tools下载地址
- 使用R读取xls与xlsx文件
- 最喜欢的科技资讯类英文网站
- 重装Windows系统 (以联想Y700重装Win10专业版为例)
热门文章
- Android Library projetcts cannot be exported.
- win7磁盘设置背景方法
- 五个小例子教你搞懂 JavaScript 作用域问题
- CSS行高——line-height
- WPF Application 类介绍以及怎样修改启动方式
- IOS学习笔记——Objective-c基础(一)
- mongdb 建立了索引唯一性还能重复插入?_「数据库系列」Postgres性能调优——Index...
- 虚拟机拷贝数据到服务器,虚拟机文件拷到u盘上
- 安卓与ios都是linux,随便来说两句,安卓、IOS不是那么容易被取代的
- 数据结构之线段树进阶(区间更新lazy标记)