首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在FinancialInstrument中建立期货工具,从CSIdata中查找数据

如何在FinancialInstrument中建立期货工具,从CSIdata中查找数据
EN

Stack Overflow用户
提问于 2013-02-14 05:29:30
回答 1查看 611关注 0票数 2

背景

我正在尝试建立我的贸易分析环境。我正在对不同的经纪商实施一些基于期货的规则策略,并试图将不同经纪人的交易集中在一个地方。我使用blotter软件包作为我的主要分析工具。

其思想是使用blotterPerformanceAnalytics来分析我正在运行的各种策略的实时性能。

手头的问题

我未来爆炸物处理数据的来源是CSIData。这些期货的所有EOD OHLC价格都以CSV格式存储在以下目录结构中。对于每个未来,都有单独的目录,未来的每个合同都有一个带有OHLC价格序列的csv文件。

代码语言:javascript
复制
|   
+---AD
|       AD_201203.TXT
|       AD_201206.TXT
|       AD_201209.TXT
|       AD_201212.TXT
|       AD_201303.TXT
|       AD_201306.TXT
|       AD_201309.TXT
|       AD_201312.TXT
|       AD_201403.TXT
|       AD_201406.TXT
|       AD_54.TXT
...      
+---BO2
|       BO2195012.TXT
|       BO2201201.TXT
|       BO2201203.TXT
|       BO2201205.TXT
|       BO2201207.TXT
|       BO2201208.TXT
|       BO2201209.TXT
|       BO2201210.TXT
|       BO2201212.TXT
|       BO2201301.TXT

...

我已经设法为所有期货定义了根合约(例如,在上述情况下,ADBO2等),我将在FinancialInstrument中使用CSIData符号作为主要标识符。

我现在正在努力如何定义所有实际的个人未来契约(例如AD_201203AD_201206等),并使用setSymbolLookup.FI设置它们的查找。

关于如何做到这一点有什么建议吗?

为了设置单独的未来契约,我查看了?future_series?build_series_symbols,但是它们支持的后缀似乎仅仅是未来月份的代码格式。因此,我有一种感觉,我留下了每一个人未来的合同手动设置。例如:

代码语言:javascript
复制
build_series_symbols(data.frame(primary_id=c('ES','NQ'), month_cycle=c('H,M,U,Z'), yearlist = c(10,11)))
 [1] "ESH0" "ESM0" "ESU0" "ESZ0" "NQH0" "NQM0" "NQU0" "NQZ0" "ESH1" "ESM1" "ESU1" "ESZ1" "NQH1" "NQM1" "NQU1" "NQZ1"

我不知道从哪里开始挖掘我问题的第二部分,即从CSI为这些期货设定价格查询。

如果这不是适合这类问题的论坛,我很高兴能把它移到正确的部分,甚至在完全不同的论坛上问。

PPS:声誉较高的人能用FinancialInstrumentCSIdata标记这个问题吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-14 13:11:34

第一部分起作用了。

代码语言:javascript
复制
R> currency("USD")
[1] "USD"
R> future("AD", "USD", 100000)
[1] "AD"
Warning message:
In future("AD", "USD", 1e+05) :
  underlying_id should only be NULL for cash-settled futures
R> future_series("AD_201206", expires="2012-06-18")
[1] "AD_201206"
R> getInstrument("AD_201206")
primary_id :"AD_201206"
currency   :"USD"
multiplier :1e+05
tick_size  : NULL
identifiers: list()
type       :"future_series" "future"
root_id    :"AD"
suffix_id  :"201206"
expires    :"2012-06-18"

关于第二部分,我从未使用过setSymbolLookup.FI。如果我要走这条路,我要么直接使用setSymbolLookup,要么设置一个src仪器属性。

但是,我可能会创建一个getSymbols方法,可能是getSymbols.mycsv,如果您给它一个dir参数,它就知道如何找到数据。然后,我只需要对您的setDefaults方法进行getSymbols (假设大部分数据都是这样存储的)。

我用saveSymbols.days()保存数据,每天使用getSymbols.FI。我认为将getSymbols.FI修改为读取csv文件而不是RData文件并不需要太大的努力。所以,我建议你看看这段代码。

然后,你可以

代码语言:javascript
复制
setDefaults("getSymbols", src="mycsv")
setDefaults("getSymbols.mycsv", dir="path/to/dir")

或者,如果你愿意

代码语言:javascript
复制
setSymbolLookup(AD_201206=list(src="mycsv", dir="/path/to/dir"))

或者(本质上是相同的)

代码语言:javascript
复制
instrument_attr("AD_201206", "src", list(src="mycsv", dir="/path/to/dir")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14868358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档