OBV 計算に関するいくつかの参考文献を次に示します。
- http://ta.mql4.com/indicators/volumes/on_balance_volume
- http://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:on_balance_volume_obv
- http://en.wikipedia.org/wiki/On-balance_volume
TTR パッケージの OBV 関数のソース コードに移動すると、次のように表示されます。
"OBV" <-
function(price, volume) {
# On Balance Volume
price <- try.xts(price, error=as.matrix)
volume <- try.xts(volume, error=as.matrix)
if(!(is.xts(price) && is.xts(volume))) {
price <- as.vector(price)
volume <- as.vector(volume)
}
obv <- c( volume[1], ifelse( ROC(price) > 0, volume, -volume )[-1] )
obv <- cumsum( obv )
if(is.xts(obv)) {
obv <- xts(obv,index(price))
colnames(obv) <- 'obv'
}
reclass( obv, price )
}
参照 Web ページの等値ケース (今日の終値が昨日の終値と等しい場合に発生することを意味します) は、OBV 関数の実装には存在しないことがわかります。
それはバグですか、それともパッケージの承認ですか? バグの場合、どこに報告すればよいですか?
ありがとう、