R语言blotter包及相关工具

来源:互联网 发布:医疗行业数据分析 编辑:程序博客网 时间:2024/05/19 02:26
1blotter简介

(a)简介

blotter依然是一个正在开发中的包,是TradeAnalytics项目的一部分,主要作者是PeterCarlBrianPeterson

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 计算每一项交易(tradeflat 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的环境用来存贮定义的产品(如股票、期货等)

2FinancialInstrument包和PerformanceAnalytics包简介

FinancialInstrument包提供了一个定义金融工具的元数据和彼此联系的基础架构。主要函数包括currencystock 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/

 

0 0