1 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包及相关工具相关推荐

  1. R语言blotter包回测实例

    下面使用Faber策略,对招商银行历史数据进行回测. Faber策略是个非常简单的战术资产配置方法: 如果月收盘价高于10月均线,买入: 如果月收盘价低于10月均线,卖出. (忽略交易成本和滑点) h ...

  2. r语言 bsda包_使用R语言creditmodel包进行Vintage分析或留存率分析

    1 什么是vintage分析? Vintage分析(账龄分析法)被广泛应用于信用卡及信贷行业,这个概念起源于葡萄酒,即不同年份出产的葡萄酒的品质有差异,那么不同时期开户或者放款的资产质量也有差异,其核 ...

  3. R语言caret包构建机器学习回归模型(regression model)、使用DALEX包进行模型解释分析、特征重要度、偏依赖分析等

    R语言caret包构建机器学习回归模型(regression model).使用DALEX包进行模型解释分析.特征重要度.偏依赖分析等 目录

  4. R语言数据包自带数据集之ISwR包的melanom数据集字段解释、数据导入实战

    R语言数据包自带数据集之ISwR包的melanom数据集字段解释.数据导入实战 目录 R语言数据包自带数据集之ISwR包的melanom数据集字段解释.数据导入实战 #数据字段说明 #导入包 #导入数 ...

  5. R语言数据包自带数据集之survival包的colon数据集字段解释、数据导入实战

    R语言数据包自带数据集之survival包的colon数据集字段解释.数据导入实战 #数据字段说明 colon数据集:B/C期结肠癌辅助化疗治疗数据 d # 患者编号 study # 所有患者都是1 ...

  6. R语言数据包自带数据集之survival包的lung数据集字段解释、数据导入实战

    R语言数据包自带数据集之survival包的lung数据集字段解释.数据导入实战 目录 R语言数据包自带数据集之survival包的lung数据集字段解释.数据导入实战 #数据字段说明 #导入包 #导 ...

  7. R语言数据包自带数据集之ToothGrowth数据集字段解释、数据导入实战

    R语言数据包自带数据集之ToothGrowth数据集字段解释.数据导入实战 目录 R语言数据包自带数据集之ToothGrowth数据集字段解释.数据导入实战 #数据字段说明 #导入包 #导入数据 #数 ...

  8. R语言数据包自带数据集之mtcars数据集字段解释、数据导入实战

    R语言数据包自带数据集之mtcars数据集字段解释.数据导入实战 目录 R语言数据包自带数据集之mtcars数据集字段解释.数据导入实战 #会用帮助?或者help函数 #字段说明 #导入包 #导入数据 ...

  9. R语言dplyr包通过数据列的索引重命名数据列实战(Rename Column by Index Position)

    R语言dplyr包通过数据列的索引重命名数据列实战(Rename Column by Index Position) 目录 R语言dplyr包通过数据列的索引重命名数据列实战(Rename Colum ...

最新文章

  1. 深入浅出谈以太坊智能合约
  2. Windows下的DNS命令用法
  3. Java编程思想 第十章:内部类
  4. The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
  5. java年利润编程题_[编程入门]利润计算-题解(Java代码)
  6. C++项目參考解答:累加求圆周率
  7. 【java机器学习】支持向量机之拉格朗日乘子法解释
  8. 一览R基础包的六个高级绘图函数(盒型boxplot|条形barplot|直方hist|饼pie|dotchart|coplot)...
  9. 蔚来召回4803辆ES8电动汽车 自燃原因找到了?
  10. 计算机组装与维护时dm是指,《计算机组装与维护》试题答案
  11. 2016-2018年机器学习大赛TOP开源作品汇总
  12. 凸优化第五章对偶 5.6扰动及灵敏度分析
  13. Delphi2010
  14. 音乐直链php,【原创】百度音乐直链 + 实现方法
  15. J2EE框架搭建大集合
  16. 汇编语言——伪指令和汇编指令详解
  17. 官方VM tools下载地址
  18. 使用R读取xls与xlsx文件
  19. 最喜欢的科技资讯类英文网站
  20. 重装Windows系统 (以联想Y700重装Win10专业版为例)

热门文章

  1. Android Library projetcts cannot be exported.
  2. win7磁盘设置背景方法
  3. 五个小例子教你搞懂 JavaScript 作用域问题
  4. CSS行高——line-height
  5. WPF Application 类介绍以及怎样修改启动方式
  6. IOS学习笔记——Objective-c基础(一)
  7. mongdb 建立了索引唯一性还能重复插入?_「数据库系列」Postgres性能调优——Index...
  8. 虚拟机拷贝数据到服务器,虚拟机文件拷到u盘上
  9. 安卓与ios都是linux,随便来说两句,安卓、IOS不是那么容易被取代的
  10. 数据结构之线段树进阶(区间更新lazy标记)