После попытки выяснить, как заставить все это работать, мне удалось получить загруженный API-интерфейс Bitmex для загрузки в DataFrame. Теперь, пытаясь следовать всей логике, которую я могу найти - включая документацию - о том, как преобразовать это в талиб, чтобы выплевывать (правильные) числа, это - то, где я застреваю. Мне не нужен график для построения (хотя это было бы круто), но это для более поздней стадии. Пока у меня есть:
import requests
import numpy
import talib
import talib as ta
import panda as pd
dfURI = 'https://www.bitmex.com/api/v1/trade/bucketed?binSize=1h&partial=false&symbol=XBT&columns=timestamp%2C%20open%2C%20high%2C%20low%2C%20close%2C%20volume&count=96&reverse=true'
df = pd.read_json(dfURI, orient="columns")
df.columns = ["high", "close", "low", "open", "symbol", "timestamp", "volume"]
df = df.set_index('timestamp')
period = "4H" #1D or 1H
data_rows = "1"
if period == "4H" :
data_period = df.resample('4H').mean()
data_rows = 8
elif period == "1D" :
data_period = df.resample('1D').mean()
data_rows = 2
elif period == "1H" :
data_period = df.resample('1H').mean()
data_rows = 12
#daily_close = df.set_index('timestamp').resample('1D').mean()
print (data_period.tail(data_rows))
close = data_period['close'] #.values
low = data_period['low'] #.values
high = data_period['high'] #.values
#real = talib.WILLR(high, low, close.values, timeperiod=14)
realK, realD = talib.STOCHRSI(close)
logger.info("TALib output is: \n %s %s " % (realK, realD))
Вывод чтения JSON верен (хотя он не упорядочен по метке времени, но это будет позже)
high close low open volume
timestamp
2018-09-10 12:00:00 6294.500 6315.375 6273.750 6292.125 1.052005e+08
2018-09-10 16:00:00 6268.250 6289.875 6243.875 6273.625 9.917725e+07
2018-09-10 20:00:00 6289.625 6298.625 6270.625 6288.000 4.804955e+07
2018-09-11 00:00:00 6337.125 6369.875 6301.875 6321.375 1.142635e+08
2018-09-11 04:00:00 6326.500 6342.250 6321.625 6331.875 5.114736e+07
2018-09-11 08:00:00 6309.500 6322.000 6297.250 6314.250 6.218389e+07
2018-09-11 12:00:00 6251.125 6286.625 6220.750 6276.250 1.322033e+08
2018-09-11 16:00:00 6247.500 6248.000 6180.000 6204.500 2.071930e+08
Теперь, когда я пытаюсь вызвать данные, например, с помощью talib.stochrsi (Закрыть) или с помощью talib.willr (как установлено в коде), я получаю совершенно неправильные числа (по сравнению, скажем, с точки зрения торговли) и коды NaN. вот так:
2018-09-10 04:00:00 NaN
2018-09-10 08:00:00 NaN
2018-09-10 12:00:00 NaN
2018-09-10 16:00:00 NaN
2018-09-10 20:00:00 NaN
2018-09-11 00:00:00 52.523650
2018-09-11 04:00:00 76.982179
2018-09-11 08:00:00 75.890822
2018-09-11 12:00:00 46.515123
2018-09-11 16:00:00 22.056595
Что я здесь не так делаю? Любая помощь приветствуется. Хотелось бы, чтобы работали правильные значения STOCHRSI!