1

R の quantstrat パッケージで簡単なバックテストを行うために、.csv 形式の履歴チャート データを使用しようとしています。毎日の OHLC チャート、ティック データなど、さまざまなソースを使用しようとしましたが、常に次のエラーが発生します。

hasTsp(x): invalid time series parameters specified

.csv ファイルの代わりに getSymbols() を使用している場合、すべてが正常に機能することに注意することが重要です。

まず、データ セットをインポートしてクリーンアップし、xts 形式に変換します。

1) ヒストリカル ティック データのインポート。

Sys.setenv(TZ="UTC")
library(quantstrat)
GBPUSD.2015.01->GBPUSD
head(GBPUSD) ## how it looks before transforming 

           V1                    V2      V3      V4
    1 GBP/USD 20150101 21:43:43.344 1.55677 1.55966
    2 GBP/USD 20150101 21:44:15.708 1.55647 1.55987
    3 GBP/USD 20150101 21:45:11.580 1.55692 1.55886
    4 GBP/USD 20150101 21:46:07.579 1.55732 1.55871
    5 GBP/USD 20150101 21:46:41.545 1.55773 1.55858
    6 GBP/USD 20150101 21:46:41.804 1.55772 1.55959

2) 掃除と時間の調整。

GBPUSD$V1 <- NULL
GBPUSD$V2 <- strptime(GBPUSD$V2,"%Y%m%d %H:%M:%S") 

3) xts に変換します。

GBPUSD <- xts(GBPUSD[,-1], order.by=GBPUSD[,1])
head(GBPUSD)
                        V3      V4
2015-01-01 21:43:43 1.55677 1.55966
2015-01-01 21:44:15 1.55647 1.55987
2015-01-01 21:45:11 1.55692 1.55886
2015-01-01 21:46:07 1.55732 1.55871
2015-01-01 21:46:41 1.55773 1.55858
2015-01-01 21:46:41 1.55772 1.55959

is.xts(GBPUSD)
[1] TRUE


GBPUSD <- to.period(GBPUSD,"hours",4) ## Transforming to a 4 hour OHLC chart

                    GBPUSD.Open GBPUSD.High GBPUSD.Low GBPUSD.Close
2015-01-02 00:59:58     1.55677     1.55852    1.55613      1.55634
2015-01-02 04:59:54     1.55627     1.55682    1.55410      1.55441
2015-01-02 08:59:57     1.55442     1.55509    1.55147      1.55297
2015-01-02 12:59:58     1.55236     1.55371    1.54120      1.54259
2015-01-02 16:59:58     1.54253     1.54393    1.53559      1.53601
2015-01-02 20:59:59     1.53602     1.53632    1.53273      1.53333 


initDate = '2015-01-01' ## setting start/end date
.from=initDate
.to="2015-01-31"

currency(c('GBP', 'USD'))

4) 次に、戦略を指定します。getSymbols() で動作するため、問題はポートフォリオ、インジケーター、ルールなどの定義ではなく、変換プロセスにあるはずです。

5) 戦略の適用

out <- applyStrategy(strategy.st, portfolio.st)
Error in hasTsp(x): invalid time series parameters specified

traceback() と sessionInfo() の出力は次のとおりです。

> sessionInfo()
R version 3.1.1 (2014-07-10)
Platform: x86_64-apple-darwin13.1.0 (64-bit)

locale:
[1] de_DE.UTF-8/de_DE.UTF-8/de_DE.UTF-8/C/de_DE.UTF-8/de_DE.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] quantstrat_0.9.1669           foreach_1.4.2                 blotter_0.9.1666             
[4] PerformanceAnalytics_1.4.3579 FinancialInstrument_1.2.0     quantmod_0.4-3               
[7] TTR_0.22-0                    xts_0.9-7                     zoo_1.7-11                   

loaded via a namespace (and not attached):
[1] codetools_0.2-8 grid_3.1.1      iterators_1.0.7 lattice_0.20-29 tools_3.1.1    


> traceback()
6: hasTsp(x)
5: time.default(Dates)
4: time(Dates)
3: first(time(Dates))
2: applyRules(portfolio = portfolio, symbol = symbol, strategy = strategy, 
       mktdata = mktdata, Dates = NULL, indicators = sret$indicators, 
       signals = sret$signals, parameters = parameters, ..., path.dep = TRUE, 
       debug = debug)
1: applyStrategy(strategy.st, portfolio.st)

よろしくお願いします。

4

1 に答える 1