我在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("")
}
}
字符串
2条答案
按热度按时间qvtsj1bj1#
首先,你必须使用1000个蜡烛来获得与Binance相同的值,因为计算取决于给定的系列,所以当你传递288行时,你会得到不同的值
sz81bmfz2#
StochRsi同时使用收盘价、最低价和最高价,但您只传递收盘价,在StochRsi中,最低价表示最低低价,而不是最低收盘价,最高价表示最高高价。这不是蜡烛数量的问题。