结果与币安技术分析结果不同



我在Go中使用talib进行技术分析。但与Binance的实时结果相比,结果看起来有所不同。

技术分析:RSI, Stoch RSI, Boler波段,MACD。所有的结果都是错误的。

Binance Dashboard URL: https://www.binance.com/en-IN/trade/BNB_USDT?layout=pro


import (
"log"
"time"
"github.com/markcheno/go-talib"
"github.com/pdepip/go-binance/binance"
)
func main() {
q := binance.KlineQuery{
Symbol:   "BNBUSDT",
Interval: "5m",
Limit:    288,
}
client := binance.New("", "")
for true {
kline, _ := client.GetKlines(q)
inputs := []float64{}
for _, e := range kline {
inputs = append(inputs, e.Close)
}
rsi := talib.Rsi(inputs, 14)
log.Println("RSI : ", rsi[len(rsi)-1])
slowk, slowd := talib.StochRsi(inputs, 14, 3, 3, talib.EMA)
log.Printf("Stoch RSI : %v %v ", slowk[len(slowk)-1], slowd[len(slowd)-1])
upper, middle, lower := talib.BBands(inputs, 5, 2, 2, talib.T3MA)
log.Printf("BBands : %v %v %v ", upper[len(upper)-1], middle[len(middle)-1], lower[len(lower)-1])
macd, signal, hist := talib.Macd(inputs, 12, 26, 9)
log.Printf("Macd : %v %v %v ", macd[len(macd)-1], signal[len(signal)-1], hist[len(hist)-1])
time.Sleep(5 * time.Second)
log.Println("_________________________________")
log.Println("")
}
}

首先,你必须使用1000个蜡烛来获得与Binance相同的值,因为计算取决于给定的序列,所以当你传递288行时,你将获得不同的值

StochRsi使用收盘价和最低价和最高价,但你只传递收盘价,在StochRsi中,最低价格意味着最低低价,而不是最低收盘价,最高价格意味着最高高价。这不是蜡烛数量的问题。

最新更新