Poloniex Exchange の暗号通貨ペアのボリンジャー バンドと価格グラフを示す Matplotlib グラフを作成しようとしています。BTC/ETH ペアのデータをフェッチするとバンドが機能するように見えますが、BTC/BURST などのあまりアクティブでないペアでは機能しません。
これは、BTC/ETH の 30 分ローソク足のグラフです。
そしてこちらがBTC/BURSTの30分ローソク足のグラフです
BTC/ETH ペアの標準偏差が正しく計算され、バンドが表示されているように見えますが、BTC/BURST ペアの標準偏差は常にゼロであるため、バンドは 10 日間の SMA の上に描かれています。
これが私のコードです
import API
import numpy as np
from talib.abstract import *
import matplotlib.pyplot as plt
from matplotlib.finance import candlestick2_ohlc
import time
from pprint import pprint
key = 'keyHere'
secret = 'secretHere'
api = API.poloniex(key, secret)
pair = "BTC_BURST"
interval = 1800 # 30 mins
steps = 336 # 1 week
startTime = int(time.time()) - steps * interval
stopTime = int(time.time())
print 'fetching', steps, 'candles from server'
fetchStart = time.time()
data = api.api_query('returnChartData', {"currencyPair": pair, "period": interval,
"start": startTime, "end": stopTime})
print 'fetched', len(data['candleStick']), 'candles in', time.time() - fetchStart, 'seconds'
pprint(data)
inputs = {
'open': np.empty(steps),
'high': np.empty(steps),
'low': np.empty(steps),
'close': np.empty(steps),
'volume': np.empty(steps)
}
for x in range(0, steps):
candle = data['candleStick'][x]
inputs['open'][x] = candle['open']
inputs['high'][x] = candle['high']
inputs['low'][x] = candle['low']
inputs['close'][x] = candle['close']
inputs['volume'][x] = candle['volume']
pprint(STDDEV(inputs, timeperiod=10, nbdev=2))
upper, middle, lower = BBANDS(inputs, timeperiod=10, nbdevup=2, nbdevdn=2)
# pprint(upper)
# pprint(middle)
# pprint(lower)
candlestick2_ohlc(plt.gca(), inputs['open'], inputs['high'],
inputs['low'], inputs['close'], width=0.8)
plt.plot(upper)
plt.plot(middle)
plt.plot(lower)
plt.show()
この問題は、BTC/ETH ペアのボリュームが大きいためですか? どんな助けでも大歓迎です。