24 lines
464 B
Go
24 lines
464 B
Go
package indicatorv2
|
|
|
|
import "git.qtrade.icu/lychiyu/qbtrade/pkg/types"
|
|
|
|
type ATRPStream struct {
|
|
*types.Float64Series
|
|
}
|
|
|
|
func ATRP2(source KLineSubscription, window int) *ATRPStream {
|
|
s := &ATRPStream{
|
|
Float64Series: types.NewFloat64Series(),
|
|
}
|
|
tr := TR2(source)
|
|
atr := RMA2(tr, window, true)
|
|
atr.OnUpdate(func(x float64) {
|
|
// x is the last rma
|
|
k := source.Last(0)
|
|
cloze := k.Close.Float64()
|
|
atrp := x / cloze
|
|
s.PushAndEmit(atrp)
|
|
})
|
|
return s
|
|
}
|