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语言任务视图:机器学习与统计学…
- 下一篇: R语言blotter包回测实例