ローソク足パッケージを使用しようとしていますが、一部の関数でエラーが発生します。たとえば、CSPDoji
. この関数内では、Hi(TS) - BodyHi
が返されますNULL
。変数は両方とも xts で、長さとインデックスは同じです。詳細は次のとおりです。
library(candlesticks)
getSymbols("YHOO",src="google",from="2013-01-01")
head(YHOO)
debug(CSPDoji)
CSPDoji(YHOO)
function をステップ実行するとCSPdoji
、次のようになりました。
Browse[2]> n
debug: if (!is.OHLC(TS)) {
stop("Price series must contain Open, High, Low and Close.")
}
Browse[2]>
debug: NULL
Browse[2]>
debug: BL <- abs(Cl(TS) - Op(TS))
Browse[2]>
debug: CL <- Hi(TS) - Lo(TS)
Browse[2]>
debug: BodyHi <- as.xts(apply(cbind(Op(TS), Cl(TS)), 1, max))
Browse[2]>
debug: BodyLo <- as.xts(apply(cbind(Op(TS), Cl(TS)), 1, min))
Browse[2]>
debug: Doji <- reclass(BL < CL * maxbodyCL, TS)
Browse[2]>
debug: DFDoji <- reclass(Doji & (Hi(TS) - BodyHi <= CL * maxshadowCL), TS)
Browse[2]>
debug: GSDoji <- reclass(Doji & (BodyLo - Lo(TS) <= CL * maxshadowCL), TS)
Browse[2]> DFDoji
[,1]
Browse[2]> class(Hi(TS))
[1] "xts" "zoo"
Browse[2]> class(BodyHi)
[1] "xts" "zoo"
Browse[2]> Hi(TS) - BodyHi
Data:
numeric(0)
Index:
numeric(0)
Browse[2]> head(Hi(TS))
YHOO.High
2013-01-02 20.32
2013-01-03 20.10
2013-01-04 19.95
2013-01-07 19.58
2013-01-08 19.68
2013-01-09 19.75
Browse[2]> head(BodyHi)
[,1]
2013-01-02 20.20
2013-01-03 20.05
2013-01-04 19.86
2013-01-07 19.56
2013-01-08 19.66
2013-01-09 19.73
Browse[2]> length(Hi(TS))
[1] 177
Browse[2]> length(BodyHi)
[1] 177
の結果はHi(TS) - BodyHi
別の xts になるはずです。しかし、それはNULL
ここにあります。何か不足していますか?