Files
MoFin/venv/lib/python3.12/site-packages/akshare/economic/macro_other.py
T
知微 fa45d8aa5f fix: 小果地址统一node122(兼容LAN+EasyTier)
- health_checklist.json: 192.168.1.122→node122
- ocr_client.py: docstring IP→node122
- docs/market-data-requirements.md: IP→node122
- 所有API调用通过ProxyHandler({})绕过系统代理
  Privoxy对node122:18003返回500,直连正常
2026-06-30 02:56:35 +08:00

113 lines
4.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
Date: 2024/4/3 16:36
Desc: 金十数据-其他-加密货币实时行情
"""
from datetime import datetime
import pandas as pd
import requests
def crypto_js_spot() -> pd.DataFrame:
"""
主流加密货币的实时行情数据, 一次请求返回具体某一时刻行情数据
https://datacenter.jin10.com/reportType/dc_bitcoin_current
:return: pandas.DataFrame
"""
url = "https://datacenter-api.jin10.com/crypto_currency/list"
headers = {
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/107.0.0.0 Safari/537.36",
"x-app-id": "rU6QIu7JHe2gOUeR",
"x-csrf-token": "x-csrf-token",
"x-version": "1.0.0",
}
r = requests.get(url, headers=headers)
data_json = r.json()
data_df = pd.DataFrame(data_json["data"])
data_df["reported_at"] = pd.to_datetime(data_df["reported_at"])
data_df.columns = [
"市场",
"交易品种",
"最近报价",
"涨跌额",
"涨跌幅",
"24小时最高",
"24小时最低",
"24小时成交量",
"更新时间",
]
data_df["最近报价"] = pd.to_numeric(data_df["最近报价"], errors="coerce")
data_df["涨跌额"] = pd.to_numeric(data_df["涨跌额"], errors="coerce")
data_df["涨跌幅"] = pd.to_numeric(data_df["涨跌幅"], errors="coerce")
data_df["24小时最高"] = pd.to_numeric(data_df["24小时最高"], errors="coerce")
data_df["24小时最低"] = pd.to_numeric(data_df["24小时最低"], errors="coerce")
data_df["24小时成交量"] = pd.to_numeric(data_df["24小时成交量"], errors="coerce")
data_df["更新时间"] = data_df["更新时间"].astype(str)
return data_df
def macro_fx_sentiment(
start_date: str = "20221011", end_date: str = "20221017"
) -> pd.DataFrame:
"""
金十数据-外汇-投机情绪报告
外汇投机情绪报告显示当前市场多空仓位比例,数据由8家交易平台提供,涵盖11个主要货币对和1个黄金品种。
报告内容: 品种: 澳元兑日元、澳元兑美元、欧元兑美元、欧元兑澳元、欧元兑日元、英镑兑美元、英镑兑日元、纽元兑美元、美元兑加元、美元兑瑞郎、美元兑日元以及现货黄金兑美元。
数据: 由Shark - fx整合全球8家交易平台( 包括 Oanda、 FXCM、 Insta、 Dukas、 MyFxBook以及FiboGroup 的多空投机仓位数据而成。
名词释义: 外汇投机情绪报告显示当前市场多空仓位比例,数据由8家交易平台提供,涵盖11个主要货币对和1个黄金品种。
工具使用策略: Shark-fx声明表示,基于“主流通常都是错误的”的事实,当空头头寸超过60%,交易者就应该建立多头仓位; 同理,当市场多头头寸超过60%,交易者则应该建立空头仓位。此外,当多空仓位比例接近50%的情况下,我们则倾向于建议交易者不要进场,保持观望。
https://datacenter.jin10.com/reportType/dc_ssi_trends
:param start_date: 具体交易日
:type start_date: str
:param end_date: 具体交易日, 与 end_date 相同
:type end_date: str
:return: 投机情绪报告
:rtype: pandas.DataFrame
"""
start_date = "-".join([start_date[:4], start_date[4:6], start_date[6:]])
end_date = "-".join([end_date[:4], end_date[4:6], end_date[6:]])
url = "https://datacenter-api.jin10.com/sentiment/datas"
params = {
"start_date": start_date,
"end_date": end_date,
"currency_pair": "",
}
headers = {
"accept": "*/*",
"accept-encoding": "",
"accept-language": "zh-CN,zh;q=0.9,en;q=0.8",
"cache-control": "no-cache",
"origin": "https://datacenter.jin10.com",
"pragma": "no-cache",
"referer": "https://datacenter.jin10.com/reportType/dc_ssi_trends",
"sec-fetch-mode": "cors",
"sec-fetch-site": "same-site",
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/79.0.3945.130 Safari/537.36",
"x-app-id": "rU6QIu7JHe2gOUeR",
"x-csrf-token": "",
"x-version": "1.0.0",
}
r = requests.get(url, params=params, headers=headers)
data_json = r.json()
temp_df = pd.DataFrame(data_json["data"]["values"]).T
temp_df.reset_index(inplace=True)
temp_df.rename(columns={"index": "date"}, inplace=True)
for col in temp_df.columns[1:]:
temp_df[col] = pd.to_numeric(temp_df[col], errors="coerce")
return temp_df
if __name__ == "__main__":
crypto_js_spot_df = crypto_js_spot()
print(crypto_js_spot_df)
test_date = datetime.now().date().isoformat().replace("-", "")
macro_fx_sentiment_df = macro_fx_sentiment(start_date=test_date, end_date=test_date)
print(macro_fx_sentiment_df)