Go语言 结果与Binance技术分析结果不同

eanckbw9  于 2023-08-01  发布在  Go
关注(0)|答案(2)|浏览(97)

我在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("")
  }

}

字符串

qvtsj1bj

qvtsj1bj1#

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

sz81bmfz

sz81bmfz2#

StochRsi同时使用收盘价、最低价和最高价,但您只传递收盘价,在StochRsi中,最低价表示最低低价,而不是最低收盘价,最高价表示最高高价。这不是蜡烛数量的问题。

相关问题