8

quantmod を使用してhttps://stat.ethz.ch/pipermail/r-sig-finance/attachments/20110826/19da3834/attachment.pngのようなプロットを作成したいと思います。

私は、非常に単純な作業に少し不満を感じています。quantmod を使用してチャートに線を引けるようにしたいと考えています。数日間試した後、私はどこにも行きません。quantmod::addLines 関数でそれを行う方法の例を見ることができません (これは私が見つけた唯一の同様の質問ですが、答えが見つかりませんでしたhttp://r.789695.n4.nabble.com/quantmod-プロットトレンドライン-td894632.html )

私の問題は次のとおりです。指定された日付/時刻/バーナッド値に水平線をプロットしたいと思います。この行は、特定のバーから始まる n (たとえば 5) バーの長さだけにすることができます (さらに、指定された y 値の行のすぐ上にテキストを追加したいと思います)。

私はいくつかのことを試しました:

getSymbols("SPY")

lines.SPY <- (Hi(SPY) + Lo(SPY))/2
names(lines.SPY) <- c("lines")
lines.SPY$BuySell <- ifelse(lag(lines.SPY$lines) > lines.SPY$lines, 1, -1)

chartSeries(SPY, subset="2011-08::", theme=chartTheme('white',
up.col='blue', dn.col='red'))
addTA(lines.SPY$lines[lines.SPY$BuySell == -1,], type='p', col='darkred', pch="_", on=1, cex = 2.5)
addTA(lines.SPY$lines[lines.SPY$BuySell == 1,], type='p', col='green4', pch="_", on=1, cex = 2.5)

しかし、これは実際には線ではありません...そして、テキストを追加する方法がわかりません...

それから私はこれを試しました

getSymbols("SPY")

subset = "2011-03::"

dev.new()
chartSeries(SPY, subset=subset, theme="white")
test <- xts(rep(coredata(last(Cl(SPY))), 20), order.by=index(last(SPY, n=20)))
addTA(test, on=1, col="red", legend=NULL, lwd=3)

繰り返しますが、テキストを追加することはできません。このアプローチのもう 1 つの問題は、上部の凡例を取り除くことができないことです。1 つのグラフの凡例に数十または数百の線を描画したいので、表示されるべきではありません...

アイデア/コード例/...

よろしく、サモ。

4

1 に答える 1

3

(Stergios Marinopoulos による R-sig-finance からの回答をコピーしただけです) 新しい chart_Series() 関数を、テキストとセグメントと共に使用します。

require(quantmod) 
getSymbols("SPY") 
chart_Series(SPY, subset="2011-08::", type = "candlesticks" ) 
text(9, 112.00, "SOME TEXT", adj=0); 
segments(9, 111.5, 12, 111.5) ; 

私によるいくつかの追加の解説。メッセージを追加するには:text(x,y,"message")ここで、x は棒の番号 (一番左の棒の場合は 1。左側から引き出すには 0 または負の値を使用できます)、y はグラフの値です。adj の場合、0 は左揃え、1 は右揃え、0.5 は中央揃えを意味します。0..1 の範囲外では、それに応じてシフトされます (ただし、それに依存するのは賢明ではありません)。

セグメント(x1,y1,x2,y2) は、(x1,y1) から (x2,y2) に線を引きます。ここで、x は足のインデックスで、y は価格です。

以下は、20% 不透明な赤で二等辺三角形を描画します: polygon( c(20,30,40), c(5290,5320,5290), col="#ff000033")

つまり、すべての R グラフィック関数が利用可能です。ただし、chart_Series() を使用する必要があります。

于 2011-12-13T03:44:01.907 に答える