2

RとTTRにとって非常に新しい。RのTTRパッケージによって取得されたすべての銘柄記号のベクトルであると想定するものを次のように作成しました。

stockDataFrame <- stockSymbols()
symbs <- stockDataFrame[["Symbol"]]

したがって、変数「symbs」にすべてのシンボルがあります。このベクトルの各要素にTTR関数「getYahooData」を適用するにはどうすればよいですか。特に、この関数には銘柄記号だけでなく、開始、終了、頻度、入力、調整、およびクワイエット引数の値も必要です。

4

2 に答える 2

3

TTRをロードするquantmodを使用するだけです。また、@JoshuaUlrich は quantmod プロジェクトの開発者でもあるため、彼の気持ちを傷つけることはありません。Web サイトで例を確認してください: http://www.quantmod.com/

getSymbolsさまざまなデータソースの「メソッド」を持つ一種の「汎用」関数です。デフォルトでsrc=yahooは、getSymbols.yahooが呼び出されます。これはシンボルのベクトルを処理できます。

デフォルトauto.assign=TRUEでは、返されるデータが.GlobalEnv(デフォルトで) に割り当てられ、割り当てられたオブジェクトの名前が返されることを意味します。

> library(quantmod)
> getSymbols(symbs[1:5])
[1] "AA-P" "AAU"  "ACU"  "ACY"  "ADGE"

> head(ACY)
           ACY.Open ACY.High ACY.Low ACY.Close ACY.Volume ACY.Adjusted
2007-01-03     6.58     7.15    6.58      6.99      31700         6.99
2007-01-04     7.24     7.35    7.15      7.35      18600         7.35
2007-01-05     7.39     7.55    7.25      7.45      15200         7.45 
2007-01-08     7.32     7.35    7.01      7.26      16100         7.26
2007-01-09     7.15     7.50    7.15      7.16      12100         7.16
2007-01-10     7.30     7.45    7.21      7.24      13700         7.24

6,000 以上の株式のデータを本当にダウンロードしたくない場合は、便利な代替手段が attachSymbolsあります。遅延評価を使用して、これらすべてのシンボルをオンデマンドで利用できるようにします。シンボルを初めて使用すると、シンボルがダウンロードされてキャッシュされるため、次回使用するときにメモリ (または で使用する引数に応じてディスク) から読み込まれますattachSymbols

> attachSymbols()
> tail(GS)
           GS.Open GS.High GS.Low GS.Close GS.Volume GS.Adjusted
2012-11-26  119.16  120.95 118.50   120.94   3371000      120.43
2012-11-27  120.50  121.34 118.38   118.41   3875200      117.91
2012-11-28  117.25  119.33 116.57   119.33   3811200      119.33
2012-11-29  120.00  120.45 118.52   118.73   2980800      118.73
2012-11-30  117.96  119.44 117.69   117.79   4264300      117.79
2012-12-03  118.42  119.64 118.07   118.40   3613900      118.40
于 2012-12-04T23:42:33.023 に答える
1

plyr パッケージを使用して、シンボル リストをループできます。

すべてのシンボルについて、getYahooData がデータをロードできるかどうかはわかりません。TTR を使用するためのより良い方法が存在する必要があると思います。しかし、ここではplyrパッケージの使用法を示します。一般的な方法です。

llply を呼び出して、2 つの日付間の最初の 6 つの市場シンボルのすべてのデータを取得します (他の関数引数を追加できます..)

    library(plyr)
    ll <- llply(symbs[1:6],getYahooData ,start=20081201, end=20081207)

$`AA-P`
               Open     High      Low    Close   Volume Unadj.Close Div Split Adj.Div
2008-12-01 49.39233 49.39233 49.39233 49.39233 243.9650       60.25  NA    NA      NA
2008-12-02 49.39233 49.39233 49.39233 49.39233 243.9650       60.25  NA    NA      NA
2008-12-03 49.39233 49.39233 49.39233 49.39233   0.0000       60.25  NA    NA      NA
2008-12-04 49.80223 51.64676 49.80223 51.64676 487.9300       63.00  NA    NA      NA
2008-12-05 49.79403 49.79403 49.79403 49.79403 121.9825       60.74  NA    NA      NA

$AAU
           Open High  Low Close Volume
2008-12-01 0.49 0.53 0.49  0.50  57100
2008-12-02 0.52 0.54 0.51  0.52  33400
2008-12-03 0.50 0.54 0.49  0.49  52800
2008-12-04 0.49 0.49 0.44  0.44  62400
2008-12-05 0.44 0.48 0.42  0.47  87600

$ACU
               Open     High      Low    Close   Volume Unadj.Close Div Split Adj.Div
2008-12-01 6.168596 6.168596 5.823880 5.823880 3196.838        6.42  NA    NA      NA
2008-12-02 5.987166 6.077881 5.814809 5.987166 8157.448        6.60  NA    NA      NA
2008-12-03 6.068810 6.068810 5.896452 5.987166 1984.244        6.60  NA    NA      NA
于 2012-12-04T23:17:55.767 に答える