indicator: add ATRP indicator

This commit is contained in:
c9s 2023-06-02 18:56:28 +08:00
parent 8a8111140e
commit aae7fd310e
No known key found for this signature in database
GPG Key ID: 7385E7E464CB0A54
2 changed files with 21 additions and 0 deletions

19
pkg/indicator/v2_atrp.go Normal file
View File

@ -0,0 +1,19 @@
package indicator
type ATRPStream struct {
Float64Series
}
func ATRP2(source KLineSubscription, window int) *ATRPStream {
s := &ATRPStream{}
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
}

View File

@ -6,6 +6,8 @@ import (
type KLineSubscription interface {
AddSubscriber(f func(k types.KLine))
Length() int
Last(i int) *types.KLine
}
type PriceStream struct {