构建基于R的交易系统(5)quantstrat包(上)
构建基于R的交易系统(5) quantstrat包(上)
========================================================
写在前边的一些话:投资有风险,交易要谨慎。
风险各种各样。就我所写的这个来说,这里很多工具仍然是在发展中的,而且我也不能保证我的用法是一定正确的。因此在任何意义上这只是探讨软件的使用方法,而不构成投资的意见或者建议。望各位读者小心使用。
5.构建量化交易策略和模型的框架:quantstrat包
在引入blotter包之后,一个完整的交易系统就已经可以建立起来了。但是作为盈利的基础,基于quantmod和TTR虽然具有了必要的建模工具,我们依然希望能够有更加灵活易用的交易建模方法。这就是quantstrat包的目标。
(1)quantstrat包简介
quantstrat包以我们前面所介绍的各个包:xts,quantmod,TTR,blotter等为基础,提供了基于交易信号的金融交易建模和回测的基础架构。利用quantstrat包可以相当大程度上简化建立或检验交易策略的过程。quantstrat包的名字就是量化策略。
quantstrat包和blotter包都是R-forge上TradeAnalytics项目的组成部分。也是一个依然在开发中的包。
http://r-forge.r-project.org/projects/blotter/
它的主要特征是:
支持应用于多资产多币种的投资组合;支持包括指标(indicators),信号(signals)和交易规则(rules)的完整的交易策略;支持包括market, limit, stoplimit, 和stoptrailing等在内的多种委托(订单,指令order)方式;支持委托规模(order sizing)和参数优化。
quantstrat包进行策略建模的基本思路是:
(i)初始化金融产品导入数据
(ii)依次引入指标、信号和规则以形成策略,按照策略下达指令。
指标是指源自交易数据的一个数量值:如均线、MACD等;
信号是指指标在某些交易时点和交易数据相互作用的结果,比如交叉、阈值、底顶等;
规则是指结合交易数据、信号以及当前的组合和账户情况进而做出委托(下达指令)的准则。
(iii)指令和市场数据的交互生成一个交易(transaction),按照交易情况更新组合和账户。
主要函数:
(i)初始化:
initOrders 初始化指令容器(order container)
strategy strategy 对象的构造器
(ii)定义策略
add.indicator 为策略加入一个指标
add.signal 为策略加入一个信号
add.rule 为策略加入一个规则
add.distribution 为策略的参数集合加入一个分布
add.constraint 为一个参数集上的两个分布加入约束
(iii)运用策略
applyStrategy 把策略运用到数据上
addPosLimit 在时间戳上加上头寸和等级限制(level limits)
apply.paramset 把参数集合运用到策略上
applyStrategy.rebalancing 把策略运用到周期性调整的数据上
========================================================
写在前边的一些话:投资有风险,交易要谨慎。
风险各种各样。就我所写的这个来说,这里很多工具仍然是在发展中的,而且我也不能保证我的用法是一定正确的。因此在任何意义上这只是探讨软件的使用方法,而不构成投资的意见或者建议。望各位读者小心使用。
5.构建量化交易策略和模型的框架:quantstrat包
在引入blotter包之后,一个完整的交易系统就已经可以建立起来了。但是作为盈利的基础,基于quantmod和TTR虽然具有了必要的建模工具,我们依然希望能够有更加灵活易用的交易建模方法。这就是quantstrat包的目标。
(1)quantstrat包简介
quantstrat包以我们前面所介绍的各个包:xts,quantmod,TTR,blotter等为基础,提供了基于交易信号的金融交易建模和回测的基础架构。利用quantstrat包可以相当大程度上简化建立或检验交易策略的过程。quantstrat包的名字就是量化策略。
quantstrat包和blotter包都是R-forge上TradeAnalytics项目的组成部分。也是一个依然在开发中的包。
http://r-forge.r-project.org/projects/blotter/
它的主要特征是:
支持应用于多资产多币种的投资组合;支持包括指标(indicators),信号(signals)和交易规则(rules)的完整的交易策略;支持包括market, limit, stoplimit, 和stoptrailing等在内的多种委托(订单,指令order)方式;支持委托规模(order sizing)和参数优化。
quantstrat包进行策略建模的基本思路是:
(i)初始化金融产品导入数据
(ii)依次引入指标、信号和规则以形成策略,按照策略下达指令。
指标是指源自交易数据的一个数量值:如均线、MACD等;
信号是指指标在某些交易时点和交易数据相互作用的结果,比如交叉、阈值、底顶等;
规则是指结合交易数据、信号以及当前的组合和账户情况进而做出委托(下达指令)的准则。
(iii)指令和市场数据的交互生成一个交易(transaction),按照交易情况更新组合和账户。
主要函数:
(i)初始化:
initOrders 初始化指令容器(order container)
strategy strategy 对象的构造器
(ii)定义策略
add.indicator 为策略加入一个指标
add.signal 为策略加入一个信号
add.rule 为策略加入一个规则
add.distribution 为策略的参数集合加入一个分布
add.constraint 为一个参数集上的两个分布加入约束
(iii)运用策略
applyStrategy 把策略运用到数据上
addPosLimit 在时间戳上加上头寸和等级限制(level limits)
apply.paramset 把参数集合运用到策略上
applyStrategy.rebalancing 把策略运用到周期性调整的数据上
求案例
是啊 可以多讲一讲
呵呵,欢迎大家一起写
请教一下,哪里可以下载到quanstrat包呢,谢谢~
现在现在不了
https://cran.r-project.org/web/packages/available_packages_by_name.html#available-packages-Q
这个包已经在cran上了,你去看看吧,里面的包还是挺多的
> 我来回应