【发布时间】:2018-05-26 22:49:40
【问题描述】:
我成功地使用以下代码输出了几个小时前的历史价格数据的每分钟价格:
import requests
import datetime
import pandas as pd
import matplotlib.pyplot as plt
def minute_price_historical(symbol, comparison_symbol, limit, aggregate, exchange=''):
url = 'https://min-api.cryptocompare.com/data/histominute?fsym={}&tsym={}&limit={}&aggregate={}'\
.format(symbol.upper(), comparison_symbol.upper(), limit, aggregate)
if exchange:
url += '&e={}'.format(exchange)
page = requests.get(url)
data = page.json()['Data']
df = pd.DataFrame(data)
df['timestamp'] = [datetime.datetime.fromtimestamp(d) for d in df.time]
return df
time_delta = 1 # Bar width in minutes
df = minute_price_historical('BTC', 'USD', 9999, time_delta)
print('Max length = %s' % len(df))
print('Max time = %s' % (df.timestamp.max() - df.timestamp.min()))
plt.plot(df.timestamp, df.close)
plt.xticks(rotation=45)
plt.show()
向 Cryptocompare API 人员点赞。
最终,我想实现以下目标:
1) 输出两个时间戳之间的每分钟价格,例如2018 年 3 月 12 日下午 3 点(15 点)和 18 年 3 月 12 日下午 3 点(15 点 30 分)
2) 我想将这些数据保存为 3 列“令牌”(在上述情况下为 BTC)、“时间戳”、“价格”,最好是 csv 或 json 格式
任何人对如何使用给定的代码或替代方法有一两个想法?
【问题讨论】:
-
这是 Java 还是 Python?在我看来,它肯定不像 Java 代码
-
我将 Java 添加为主题标签,因为我不确定是否有 Java 解决方案已经准备好去某个地方。无论哪种方式,我都会很高兴,但更愿意从扩展给定的代码中学习。如果您是因为不喜欢主题标签而对问题投反对票的人,请删除它。这简直是愚蠢的
-
明智的做法是让您的问题只针对一种语言,否则可能会因过于宽泛而被关闭。
-
k,这是有道理的。感谢您指出这一点,我将删除标签。
-
什么是“硬币”和“价格”?当我运行您的脚本时,它们不在 df 中。顺便说一句,您的函数中存在缩进错误
标签: python python-3.x pandas cryptocurrency