私は Python とダッシュを学んでおり、取引を監視するためのアプリケーションを構築しています。
「Live Updating Components」の例 (軌道衛星) のコードを変更しました。jupyter ノートブックと repl.it ではうまく動作しますが、自分のコンピューターで試してみるとエラーが発生します。
「トレースバック (最新の呼び出しが最後): ファイル "orbital.py"、62 行目、Input('interval-component', 'n_intervals'))」
「入力引数 interval-component.n_intervals は、dash.dependencies.Inputs のリストまたはタプルでなければなりません。」</p>
理由がわかりません
これが私のコードです:
import ccxt
import dash
import dash_core_components as dcc
import dash_html_components as html
import plotly
from dash.dependencies import Input, Output
import pandas as pd
app = dash.Dash(__name__)
ftx = ccxt.ftx({'verbose': True})
ftx = ccxt.ftx({
'apiKey': '',
'secret': '',
})
app.layout = html.Div(
html.Div([
html.H4('FTX Live Feed'),
html.Div(id='live-update-text'),
dcc.Interval(
id='interval-component',
interval=1*1000, # in milliseconds
n_intervals=0
)
])
)
class Client:
"""A sample client class"""
def __init__(self):
self.pnl = []
@classmethod
def get_balances(client):
try:
balance = ftx.fetch_balance()
except ccxt.BaseError as e:
print(f"Could not get account with error: {e}")
raise e
else:
result = balance["info"]["result"]
total = []
for x in result:
if float(x["free"]) > 0.0:
total.append(x["usdValue"])
a = list(map(float, total))
df = pd.Series(a)
# global totCap
totCap = df.sum()
return totCap
@app.callback(Output('live-update-text', 'children'),
Input('interval-component', 'n_intervals'))
def update_metrics(n):
arc = Client().get_balances()
style = {'padding': '5px', 'fontSize': '16px'}
return [
html.Span('Balance: {0:.2f}'.format(arc), style=style)
]
if __name__ == '__main__':
app.run_server(host="0.0.0.0", port="8050")
これはreplitアプリのスクリーンショットです: replit dash