恐惧与贪婪指数数据获取及可视化

1. 效果图

在这里插入图片描述

2. ES索引创建

PUT fear_greed
{
  "mappings": {
    "dynamic": "strict",
    "properties": {
      "c_date": {
        "type": "date",
        "format": "yyyy-MM-dd"
      },
      "val": {
        "type": "integer"
      },
      "tag": {
        "type": "keyword"
      }
    }
  }
}

3. 数据定时获取

# 设置API密钥
api_key = "****"  # 替换为您的实际密钥
url = "https://pro-api.coinmarketcap.com/v3/fear-and-greed/historical"
headers = {
    "X-CMC_PRO_API_KEY": api_key,
    "Accept": "application/json"
}
proxies = {
    "http": "http://127.0.0.1:7890",
    "https": "http://127.0.0.1:7890"
}

# 发送请求
params = {"limit": 1}  # 获取最新一天数据
response = requests.get(url, headers=headers, params=params, proxies=proxies)

# 检查响应
if response.status_code == 200:
    data = response.json()
    actions = list()
    processed_count = 0
    for latest in data['data']:
        date = datetime.fromtimestamp(int(latest["timestamp"])).strftime("%Y-%m-%d")
        value = latest["value"]
        classification = latest["value_classification"]

        info = {
            "c_date": date,
            "val": value,
            "tag": classification
        }

        action = {
            "_op_type": "index",
            "_index": "fear_greed",
            "_id": get_unique_id(date),
            "_source": info
        }
        actions.append(action)
        processed_count += 1

        if len(actions) >= 100:
            helpers.bulk(es_client, actions)
            actions.clear()
            print(f"已处理 {processed_count} 条数据")
    if len(actions) > 0:
        helpers.bulk(es_client, actions)
        actions.clear()
        print(f"已处理 {processed_count} 条数据")

else:
    print(f"请求失败: {response.status_code}")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

算法小生Đ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值