我正在开发一个使用Bybit API的海金阿什图。代码没有错误,但当我运行它时,Plotly只打开图表,不显示数据。
import pandas as pd
import datetime as dt
import plotly.graph_objects as go
import calendar
import requests
symbol='BTCUSD' #symbol to be traded
tick_interval = '1' #candle in minutes
now = dt.datetime.utcnow()
unixtime = calendar.timegm(now.utctimetuple())
since = unixtime
start = str(since - 60 * 60 * int(tick_interval))
url = 'https://api.bybit.com/v2/public/kline/list?symbol='+symbol+'&interval='+tick_interval+'&from='+str(start)
data = requests.get(url).json()
D = pd.DataFrame(data['result'])
HAdf = pd.DataFrame()
HAdf = D[['open', 'close', 'high', 'low']]
HAdf['close'] = round(((D['open'].astype(float) + D['high'].astype(float) + D['low'].astype(float) + D['close'].astype(float))/4),2)
for i in range(len(D)):
if i == 0:
HAdf.iloc[0,0] = round(((D['open'].astype(float).iloc[0] + D['close'].astype(float).iloc[0])/2),2)
else:
HAdf.iat[i,0] = round(((HAdf.astype(float).iat[i-1,0] + HAdf.astype(float).iat[i-1,3])/2),2)
HAdf['high'] = HAdf.loc[:,['open', 'close']].join(D['high']).astype(float).max(axis=1)
HAdf['low'] = HAdf.loc[:,['open', 'close']].join(D['low']).astype(float).min(axis=1)
# Heikin Ashi bars chart
fig2 = go.Figure(data = [go.Candlestick(x = HAdf.index,
open = HAdf.open,
high = HAdf.high,
low = HAdf.low,
close = HAdf.close)])
fig2.update_layout(yaxis_range = [1500,2500],
title = 'Heikin Ashi Chart',
xaxis_title = 'Date',
yaxis_title = 'Price')
fig2.show()如果有人能很快解释如何解决这个问题,我真的很感激。
Python版本: 3.10.5
发布于 2022-12-03 20:55:10
因为您选择了一个非常低的y轴范围,如果您删除它:
fig2.update_layout(
title = 'Heikin Ashi Chart',
xaxis_title = 'Date',
yaxis_title = 'Price')输出:

https://stackoverflow.com/questions/74668409
复制相似问题