1

TTRパッケージを使用して在庫インジケーターを生成しています。ただし、インジケーター関数は、シリーズの最後ではなく最初にNA(該当する場合はCMO、SMA、CMFなど)を追加します。NA値がシリーズの最初ではなく最後に追加されるように、出力を左に揃える方法はありますか?

例えば:

library(TTR)    
x = 1:10
# TTR's simple moving average
SMA(x,n=2)
[1]  NA 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5

zooパッケージには、シリーズの最後にNAを埋め込むための整列オプションがあります。

library(zoo)
rollmean(x,2,na.pad=TRUE,align='left')
[1] 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5  NA

移動平均を超えてインジケーターを生成する必要があるため、TTRでこのようなものを指定する方法はありますか?これらの関数のラッパーを作成して、結果の値を手動でシフトできると思いますが、それを行うためのより良い方法があるかどうかはわかりません。

また、TTRは株価に指標を追加するために頻繁に使用されるため、特に過去の価格のほとんどが降順(日付順)でソートされているため、パディングが最後ではなく最初にあるのはなぜですか?上記の例で、x [1]が今日の株式の価格であり、x [10]が10日前の価格である場合、今日の移動平均(span = 2)は今日+昨日の平均ではありませんか?最後にNAを追加したいのですが、これらのインジケーターの使用方法を誤解していないことも確認したいと思います。

ありがとう、-e

4

1 に答える 1

1

系列を別の方向にシフトするための関数呼び出しのオプションを理解できませんでした。しかし、TTRがシリーズを下にシフトする理由がわかりました。quantmodのgetSymbols()を介して取得された過去の株価は、日付の昇順でソートされて返されます。Yahoo!から見積もりを手動でダウンロードした場合 またはystockquote.pyを使用すると、順序は降順です。データを日付で並べ替えて、TTRライブラリをそのまま使用しました。

上にシフトしたい(NAで埋められた)特定のベクトルがあり、次のコードを使用しました。

miss_len = length(x[is.na(x])
x = x[!is.na(x)]
length(x) = length(x) + miss_len
于 2011-03-02T09:43:37.597 に答える