【发布时间】:2022-08-12 14:15:06
【问题描述】:
我通过 Python、Binance API 实现二级指标。 但是,即使我不断更改类型,它也被识别为“NoneType”,无法输出到 Excel。
def macd(symbol, timeinterval, limit, short, long, signal):
df = Can.get_fu_coin(symbol, timeinterval, limit)
# df = klines
marketprice = \"https://fapi.binance.com/fapi/v1/ticker/24hr?symbol=\"+symbol
res = requests.get(marketprice)
data=res.json()
price=float(data[\'lastPrice\'])
df[\'open\']=df[\'open\'].astype(float)
df2=df[\'open\'].to_numpy()
df3=pd.DataFrame(df2, columns=[\'open\'])
exp1=df3[\'open\'].ewm(span=short, adjust=False).mean()
exp2=df3[\'open\'].ewm(span=long, adjust=False).mean()
macd=exp1-exp2
exp3=macd.ewm(span=signal, adjust=False).mean()
e1 = exp1.astype(float)
e1 = e1.to_numpy()
e1 = pd.DataFrame(e1, columns = [\'exp1\'])
e2 = exp2.astype(float)
e2 = e2.to_numpy()
e2 = pd.DataFrame(e2, columns = [\'exp2\'])
e3 = exp3.astype(float)
e3 = e3.to_numpy()
e3 = pd.DataFrame(e3, columns = [\'exp3\'])
e4 = macd.astype(float)
e4 = e4.to_numpy()
e4 = pd.DataFrame(e4, columns = [\'macd\'])
data = pd.concat([e1, e2, e3, e4], axis=1)
data1 = data.apply(pd.to_numeric)
print(data1)
ethusdt_macd = macd(\'BTCUSDT\', \'1m\', \'1500\', 12, 26, 9)
ethusdt_macd.to_excel(\"dd.xlsx\")
-
macd没有return,但您将这个不存在的返回值分配给变量ethusdt_macd。目前尚不清楚您期望发生什么。也许您认为macd=exp1-exp2是一种回报?在 VBA 中这样的事情实际上是有道理的,但 Python 不是 VBA。 -
在
print(data1)之后添加return data1 -
我错过了最基本的东西。谢谢你。
标签: python python-3.x