fa45d8aa5f
- 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,直连正常
114 lines
3.3 KiB
Python
114 lines
3.3 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding:utf-8 -*-
|
|
"""
|
|
Date: 2022/6/28 14:57
|
|
Desc: 中国外汇交易中心暨全国银行间同业拆借中心-市场数据-市场行情-外汇市场行情
|
|
人民币外汇即期报价: fx_spot_quote
|
|
人民币外汇远掉报价: fx_swap_quote
|
|
外币对即期报价: fx_pair_quote
|
|
"""
|
|
|
|
import time
|
|
|
|
import pandas as pd
|
|
import requests
|
|
|
|
from akshare.fx.cons import (
|
|
SHORT_HEADERS,
|
|
FX_SPOT_URL,
|
|
FX_SWAP_URL,
|
|
FX_PAIR_URL,
|
|
)
|
|
|
|
|
|
def fx_spot_quote() -> pd.DataFrame:
|
|
"""
|
|
中国外汇交易中心暨全国银行间同业拆借中心-市场数据-市场行情-外汇市场行情-人民币外汇即期报价
|
|
http://www.chinamoney.com.cn/chinese/mkdatapfx/
|
|
:return: 人民币外汇即期报价
|
|
:rtype: pandas.DataFrame
|
|
"""
|
|
payload = {"t": str(int(round(time.time() * 1000)))}
|
|
res = requests.post(FX_SPOT_URL, data=payload, headers=SHORT_HEADERS)
|
|
temp_df = pd.DataFrame(res.json()["records"])
|
|
temp_df = temp_df[["ccyPair", "bidPrc", "askPrc", "midprice", "time"]]
|
|
temp_df.columns = [
|
|
"货币对",
|
|
"买报价",
|
|
"卖报价",
|
|
"-",
|
|
"-",
|
|
]
|
|
temp_df = temp_df[["货币对", "买报价", "卖报价"]]
|
|
temp_df["买报价"] = pd.to_numeric(temp_df["买报价"], errors="coerce")
|
|
temp_df["卖报价"] = pd.to_numeric(temp_df["卖报价"], errors="coerce")
|
|
return temp_df
|
|
|
|
|
|
def fx_swap_quote() -> pd.DataFrame:
|
|
"""
|
|
中国外汇交易中心暨全国银行间同业拆借中心-市场数据-市场行情-债券市场行情-人民币外汇远掉报价
|
|
https://www.chinamoney.com.cn/chinese/index.html
|
|
:return: 人民币外汇远掉报价
|
|
:rtype: pandas.DataFrame
|
|
"""
|
|
payload = {"t": str(int(round(time.time() * 1000)))}
|
|
res = requests.post(FX_SWAP_URL, data=payload, headers=SHORT_HEADERS)
|
|
temp_df = pd.DataFrame(res.json()["records"])
|
|
temp_df = temp_df[
|
|
[
|
|
"ccyPair",
|
|
"label_1W",
|
|
"label_1M",
|
|
"label_3M",
|
|
"label_6M",
|
|
"label_9M",
|
|
"label_1Y",
|
|
]
|
|
]
|
|
temp_df.columns = [
|
|
"货币对",
|
|
"1周",
|
|
"1月",
|
|
"3月",
|
|
"6月",
|
|
"9月",
|
|
"1年",
|
|
]
|
|
return temp_df
|
|
|
|
|
|
def fx_pair_quote() -> pd.DataFrame:
|
|
"""
|
|
中国外汇交易中心暨全国银行间同业拆借中心-市场数据-市场行情-债券市场行情-外币对即期报价
|
|
http://www.chinamoney.com.cn/chinese/mkdatapfx/
|
|
:return: 外币对即期报价
|
|
:rtype: pandas.DataFrame
|
|
"""
|
|
payload = {"t": str(int(round(time.time() * 1000)))}
|
|
res = requests.post(FX_PAIR_URL, data=payload, headers=SHORT_HEADERS)
|
|
temp_df = pd.DataFrame(res.json()["records"])
|
|
temp_df = temp_df[["ccyPair", "bidPrc", "askPrc", "midprice", "time"]]
|
|
temp_df.columns = [
|
|
"货币对",
|
|
"买报价",
|
|
"卖报价",
|
|
"-",
|
|
"-",
|
|
]
|
|
temp_df = temp_df[["货币对", "买报价", "卖报价"]]
|
|
temp_df["买报价"] = pd.to_numeric(temp_df["买报价"], errors="coerce")
|
|
temp_df["卖报价"] = pd.to_numeric(temp_df["卖报价"], errors="coerce")
|
|
return temp_df
|
|
|
|
|
|
if __name__ == "__main__":
|
|
fx_spot_quote_df = fx_spot_quote()
|
|
print(fx_spot_quote_df)
|
|
|
|
fx_swap_quote_df = fx_swap_quote()
|
|
print(fx_swap_quote_df)
|
|
|
|
fx_pair_quote_df = fx_pair_quote()
|
|
print(fx_pair_quote_df)
|