2016-05-27 3 views
1

私はdata.frame含むオ​​ブジェクトOHLCデータがあります。to.hourly追加開閉列

x <- data[,c("High","Low")] 

います:私は、HighとLowのcolsを抽出し、別のdata.frameを作成

head(data,3) 
Timestamp   Open High Low Close Vol 
2016-02-05 13:45:00 1161.9 1162.4 1161.7 1161.8 592 
2016-02-05 13:50:00 1161.8 1163.2 1161.7 1162.5 643 
2016-02-05 13:55:00 1162.5 1164.7 1162.1 1164.5 1072 

を:

head(x,3) 
Timestamp   High Low 
2016-02-05 13:45:00 1162.4 1161.7 
2016-02-05 13:50:00 1163.2 1161.7 
2016-02-05 13:55:00 1164.7 1162.1 

そして、変換時間ごとに:

何とか彼らは「X」に存在していなかったにもかかわらず、「オープン」と「クローズ」の列に戻って追加
x <- xts::to.hourly(x, indexAt='startof') 

head(x,3) 
Timestamp   x.Open x.High x.Low x.Close 
2016-02-05 13:45:00 1162.4 1164.7 1162.4 1164.7 
2016-02-05 14:00:00 1167.2 1176.7 1167.1 1176.7 
2016-02-05 15:00:00 1176.3 1176.3 1174.9 1176.2 

、彼らが来たかのように開閉列の値でありますxではなくdataからですが、その機能にdataを渡さなかった場合、これらの値はどうして得られましたか?

明らかに、to.hourly機能を投稿している[開く]と[閉じる]の列を削除するのは簡単ですが、これは予期した動作ですか?

答えて

1

期待どおりの出力が得られます。あなたは毎時5分のバーを減らしています。 to.hourlyは、時間単位のHL時系列だけでなく、入力が与えられた場合にOHLC時系列を低い周波数で作成しようとします。

to.hourlyは、パッケージxtsto.periodへのラッパーです。

は、指定された周期所与のデータオブジェクトより低い にOHLC又は単変量オブジェクトを変換する:to.periodのマニュアルに従って。たとえば、毎日シリーズを 月次シリーズに、月次シリーズを年次シリーズに、または1時間を毎時シリーズに1分 シリーズに変換します。

結果は新しい期間にわたる最大及び最小も として、所与の期間の開閉を含むであろうが、それぞれ、新たな高及び低 に反映しました。

あなたは13時55分〇〇秒を超えて5分バーを示していないので、それはあなたが知っていないので、夜02時〇〇分00秒で毎時のバー上の1167.2オープンは、理にかなっているかどうかは明らかではありません高値または低価格が最初に来たかどうか(オープン価格のプロキシとして使用するかどうか)、HLデータのみで作業します。これらの時間単位のバーオープンプライス(HLバーデータだけで論理的に正しいか間違っているかを知ることはできませんでした)を生成する際にどのような近似が行われているかを見るには、ソースコードを参照する必要があります。日中のバーデータを使って作業している場合、HLだけでなくHLCも知ることができます。

+0

なぜ編集が完了したのか分かりませんが、私は今、xts ::を時間変換に追加するとエラーになるので、元の方法論に従います。最初からXTSオブジェクトを使って作業していました(この例では、「タイムスタンプ」の列名を読みやすくするためにここに追加しました)。とにかく、もう少しデータを見ると、私が渡した「高」列のOHLCを返すだけです。 –