stock-tracker

This commit is contained in:
C菌
2026-07-04 00:17:11 +08:00
commit 6087341a48
6463 changed files with 1929869 additions and 0 deletions
@@ -0,0 +1,425 @@
#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
Date: 2025/4/10 18:00
Desc: 奇货可查网站目前已经商业化运营, 特提供奇货可查-资金数据接口, 方便您程序化调用
注:期货价格为收盘价; 现货价格来自网络; 基差=现货价格-期货价格; 基差率=(现货价格-期货价格)/现货价格 * 100 %.
"""
import datetime
from typing import AnyStr
import pandas as pd
import requests
from akshare.futures.cons import (
QHKC_FUND_BS_URL,
QHKC_FUND_POSITION_URL,
QHKC_FUND_POSITION_CHANGE_URL,
QHKC_FUND_DEAL_URL,
)
def get_qhkc_fund_bs(
date: datetime.datetime.date = "20190924", url: AnyStr = QHKC_FUND_BS_URL
):
"""
奇货可查-资金-净持仓分布
可获取数据的时间段为:"2016-10-10:2019-09-30"
:param url: 网址
:param date: 中文名称
:return: 净持仓分布
:rtype: pandas.DataFrame
symbol_df
name value ratio date
IC 1552535406 0.195622 20190924
IF 536644080 0.0676182 20190924
橡胶 536439921 0.0675924 20190924
沪铜 460851099 0.0580681 20190924
豆粕 401005794 0.0505275 20190924
螺纹钢 329159263 0.0414747 20190924
焦炭 325646968 0.0410321 20190924
燃料油 313246789 0.0394697 20190924
IH 245556750 0.0309406 20190924
棉花 214538541 0.0270323 20190924
PTA 206340552 0.0259993 20190924
白糖 139901255 0.0176278 20190924
豆油 133664010 0.0168419 20190924
沪铝 109789864 0.0138337 20190924
沪锌 107440906 0.0135378 20190924
纸浆 95517374 0.0120354 20190924
苹果 81058733 0.0102136 20190924
塑料 63665245 0.00802194 20190924
菜油 61544593 0.00775474 20190924
铁矿石 60751108 0.00765475 20190924
焦煤 58327920 0.00734943 20190924
甲醇 52148752 0.00657084 20190924
沥青 49207374 0.00620022 20190924
菜粕 48266258 0.00608164 20190924
棕榈油 31615548 0.00398362 20190924
PP 29374826 0.00370128 20190924
豆一 22368376 0.00281846 20190924
玉米 13861567 0.00174658 20190924
沪锡 7485903 0.000943238 20190924
淀粉 4811234 0.000606225 20190924
棉纱 3627240 0.000457039 20190924
尿素 2290674 0.000288629 20190924
鸡蛋 2035406 0.000256465 20190924
粳米 1999282 0.000251913 20190924
油菜籽 533482 6.72197e-05 20190924
晚籼稻 0 0 20190924
强麦 0 0 20190924
沪铅 89914 1.13293e-05 20190924
豆二 379200 4.77799e-05 20190924
硅铁 5025872 0.000633269 20190924
红枣 8521668 0.00107375 20190924
锰硅 9472832 0.00119359 20190924
郑煤 9888272 0.00124594 20190924
乙二醇 18324242 0.00230889 20190924
PVC 19454830 0.00245135 20190924
玻璃 27076226 0.00341166 20190924
热卷 28832929 0.003633 20190924
沪银 375076371 0.0472603 20190924
沪镍 411622624 0.0518652 20190924
沪金 719371823 0.0906422 20190924
long_short_df
name value ratio date
空 6303252093 0.794222 20190924
多 1633136803 0.205778 20190924
"""
date = str(date)
date = date[:4] + "-" + date[4:6] + "-" + date[6:]
print(date)
payload_id = {"date": date}
r = requests.post(url, data=payload_id)
print("数据获取成功")
json_data = r.json()
symbol_name = []
for item in json_data["data"]["datas1"]:
symbol_name.append(item["name"])
symbol_value = []
for item in json_data["data"]["datas1"]:
symbol_value.append(item["value"])
long_short_name = []
for item in json_data["data"]["datas2"]:
long_short_name.append(item["name"])
long_short_value = []
for item in json_data["data"]["datas2"]:
long_short_value.append(item["value"])
symbol_df = pd.DataFrame([symbol_name, symbol_value]).T
long_short_df = pd.DataFrame([long_short_name, long_short_value]).T
symbol_df.columns = ["name", "value"]
symbol_df["ratio"] = symbol_df["value"] / symbol_df["value"].sum()
symbol_df["date"] = date
long_short_df.columns = ["name", "value"]
long_short_df["ratio"] = long_short_df["value"] / long_short_df["value"].sum()
long_short_df["date"] = date
return symbol_df, long_short_df
def get_qhkc_fund_position(
date: datetime.datetime.date = "20190924", url: AnyStr = QHKC_FUND_POSITION_URL
):
"""
奇货可查-资金-总持仓分布
可获取数据的时间段为:"2016-10-10:2019-09-30"
:param url: 网址
:param date: 中文名称
:return: 总持仓分布
:rtype: pandas.DataFrame
symbol_df
name value ratio date
IC 1552535406 0.195622 20190924
IF 536644080 0.0676182 20190924
橡胶 536439921 0.0675924 20190924
沪铜 460851099 0.0580681 20190924
豆粕 401005794 0.0505275 20190924
螺纹钢 329159263 0.0414747 20190924
焦炭 325646968 0.0410321 20190924
燃料油 313246789 0.0394697 20190924
IH 245556750 0.0309406 20190924
棉花 214538541 0.0270323 20190924
PTA 206340552 0.0259993 20190924
白糖 139901255 0.0176278 20190924
豆油 133664010 0.0168419 20190924
沪铝 109789864 0.0138337 20190924
沪锌 107440906 0.0135378 20190924
纸浆 95517374 0.0120354 20190924
苹果 81058733 0.0102136 20190924
塑料 63665245 0.00802194 20190924
菜油 61544593 0.00775474 20190924
铁矿石 60751108 0.00765475 20190924
焦煤 58327920 0.00734943 20190924
甲醇 52148752 0.00657084 20190924
沥青 49207374 0.00620022 20190924
菜粕 48266258 0.00608164 20190924
棕榈油 31615548 0.00398362 20190924
PP 29374826 0.00370128 20190924
豆一 22368376 0.00281846 20190924
玉米 13861567 0.00174658 20190924
沪锡 7485903 0.000943238 20190924
淀粉 4811234 0.000606225 20190924
棉纱 3627240 0.000457039 20190924
尿素 2290674 0.000288629 20190924
鸡蛋 2035406 0.000256465 20190924
粳米 1999282 0.000251913 20190924
油菜籽 533482 6.72197e-05 20190924
晚籼稻 0 0 20190924
强麦 0 0 20190924
沪铅 89914 1.13293e-05 20190924
豆二 379200 4.77799e-05 20190924
硅铁 5025872 0.000633269 20190924
红枣 8521668 0.00107375 20190924
锰硅 9472832 0.00119359 20190924
郑煤 9888272 0.00124594 20190924
乙二醇 18324242 0.00230889 20190924
PVC 19454830 0.00245135 20190924
玻璃 27076226 0.00341166 20190924
热卷 28832929 0.003633 20190924
沪银 375076371 0.0472603 20190924
沪镍 411622624 0.0518652 20190924
沪金 719371823 0.0906422 20190924
long_short_df
name value ratio date
空 6303252093 0.794222 20190924
多 1633136803 0.205778 20190924
"""
date = str(date)
date = date[:4] + "-" + date[4:6] + "-" + date[6:]
print(date)
payload_id = {"date": date}
r = requests.post(url, data=payload_id)
print(url)
print("数据获取成功")
json_data = r.json()
symbol_name = []
for item in json_data["data"]["datas1"]:
symbol_name.append(item["name"])
symbol_value = []
for item in json_data["data"]["datas1"]:
symbol_value.append(item["value"])
long_short_name = []
for item in json_data["data"]["datas2"]:
long_short_name.append(item["name"])
long_short_value = []
for item in json_data["data"]["datas2"]:
long_short_value.append(item["value"])
symbol_df = pd.DataFrame([symbol_name, symbol_value]).T
long_short_df = pd.DataFrame([long_short_name, long_short_value]).T
symbol_df.columns = ["name", "value"]
symbol_df["ratio"] = symbol_df["value"] / symbol_df["value"].sum()
symbol_df["date"] = date
long_short_df.columns = ["name", "value"]
long_short_df["ratio"] = long_short_df["value"] / long_short_df["value"].sum()
long_short_df["date"] = date
return symbol_df, long_short_df
def get_qhkc_fund_position_change(
date: datetime.datetime.date = "20190924",
url: AnyStr = QHKC_FUND_POSITION_CHANGE_URL,
):
"""
奇货可查-资金-净持仓变化分布
可获取数据的时间段为:"2016-10-10:2019-09-30"
:param url: 网址
:param date: 中文名称
:return: pd.DataFrame
symbol_df
name value ratio date
IC 1552535406 0.195622 20190924
IF 536644080 0.0676182 20190924
橡胶 536439921 0.0675924 20190924
沪铜 460851099 0.0580681 20190924
豆粕 401005794 0.0505275 20190924
螺纹钢 329159263 0.0414747 20190924
焦炭 325646968 0.0410321 20190924
燃料油 313246789 0.0394697 20190924
IH 245556750 0.0309406 20190924
棉花 214538541 0.0270323 20190924
PTA 206340552 0.0259993 20190924
白糖 139901255 0.0176278 20190924
豆油 133664010 0.0168419 20190924
沪铝 109789864 0.0138337 20190924
沪锌 107440906 0.0135378 20190924
纸浆 95517374 0.0120354 20190924
苹果 81058733 0.0102136 20190924
塑料 63665245 0.00802194 20190924
菜油 61544593 0.00775474 20190924
铁矿石 60751108 0.00765475 20190924
焦煤 58327920 0.00734943 20190924
甲醇 52148752 0.00657084 20190924
沥青 49207374 0.00620022 20190924
菜粕 48266258 0.00608164 20190924
棕榈油 31615548 0.00398362 20190924
PP 29374826 0.00370128 20190924
豆一 22368376 0.00281846 20190924
玉米 13861567 0.00174658 20190924
沪锡 7485903 0.000943238 20190924
淀粉 4811234 0.000606225 20190924
棉纱 3627240 0.000457039 20190924
尿素 2290674 0.000288629 20190924
鸡蛋 2035406 0.000256465 20190924
粳米 1999282 0.000251913 20190924
油菜籽 533482 6.72197e-05 20190924
晚籼稻 0 0 20190924
强麦 0 0 20190924
沪铅 89914 1.13293e-05 20190924
豆二 379200 4.77799e-05 20190924
硅铁 5025872 0.000633269 20190924
红枣 8521668 0.00107375 20190924
锰硅 9472832 0.00119359 20190924
郑煤 9888272 0.00124594 20190924
乙二醇 18324242 0.00230889 20190924
PVC 19454830 0.00245135 20190924
玻璃 27076226 0.00341166 20190924
热卷 28832929 0.003633 20190924
沪银 375076371 0.0472603 20190924
沪镍 411622624 0.0518652 20190924
沪金 719371823 0.0906422 20190924
long_short_df
name value ratio date
空 6303252093 0.794222 20190924
多 1633136803 0.205778 20190924
"""
date = str(date)
date = date[:4] + "-" + date[4:6] + "-" + date[6:]
print(date)
payload_id = {"date": date}
r = requests.post(url, data=payload_id)
print(url)
print("数据获取成功")
json_data = r.json()
symbol_name = []
for item in json_data["data"]["datas1"]:
symbol_name.append(item["name"])
symbol_value = []
for item in json_data["data"]["datas1"]:
symbol_value.append(item["value"])
long_short_name = []
for item in json_data["data"]["datas2"]:
long_short_name.append(item["name"])
long_short_value = []
for item in json_data["data"]["datas2"]:
long_short_value.append(item["value"])
symbol_df = pd.DataFrame([symbol_name, symbol_value]).T
long_short_df = pd.DataFrame([long_short_name, long_short_value]).T
symbol_df.columns = ["name", "value"]
symbol_df["ratio"] = symbol_df["value"] / symbol_df["value"].sum()
symbol_df["date"] = date
long_short_df.columns = ["name", "value"]
long_short_df["ratio"] = long_short_df["value"] / long_short_df["value"].sum()
long_short_df["date"] = date
return symbol_df, long_short_df
def get_qhkc_fund_money_change(
date: datetime.datetime.date = "20190924", url: AnyStr = QHKC_FUND_DEAL_URL
):
"""
奇货可查-资金-成交额分布
可获取数据的时间段为:"2016-10-10:2019-09-30"
:param url: 网址
:param date: 中文名称
:return: 成交额分布
:rtype: pandas.DataFrame
name value ratio date
沪镍 2.292e+10 0.145963 2019-09-25
沪银 1.22788e+10 0.0781956 2019-09-25
沪金 11196166005 0.0713011 2019-09-25
IC 1.10958e+10 0.0706619 2019-09-25
螺纹钢 1.02918e+10 0.0655416 2019-09-25
IF 9134893794 0.0581742 2019-09-25
铁矿石 7991427128 0.0508922 2019-09-25
原油 7695016910 0.0490045 2019-09-25
焦炭 5936589656 0.0378063 2019-09-25
甲醇 4.00966e+09 0.0255349 2019-09-25
沪铜 3806033147 0.0242381 2019-09-25
乙二醇 3.64376e+09 0.0232047 2019-09-25
橡胶 3286445958 0.0209292 2019-09-25
燃料油 3227355810 0.0205529 2019-09-25
豆粕 3124163112 0.0198958 2019-09-25
苹果 3.08134e+09 0.0196231 2019-09-25
沪锌 3076039116 0.0195893 2019-09-25
PTA 2.93901e+09 0.0187167 2019-09-25
IH 2578970688 0.0164238 2019-09-25
豆油 2371404714 0.0151019 2019-09-25
沥青 2.17662e+09 0.0138615 2019-09-25
白糖 1814626125 0.0115562 2019-09-25
棕榈油 1687834936 0.0107487 2019-09-25
菜粕 1.58244e+09 0.0100775 2019-09-25
焦煤 1.52553e+09 0.00971509 2019-09-25
PP 1.51981e+09 0.0096787 2019-09-25
塑料 1468988065 0.00935503 2019-09-25
沪铝 1.35968e+09 0.00865893 2019-09-25
不锈钢 1213656556 0.00772899 2019-09-25
棉花 1186243285 0.00755441 2019-09-25
鸡蛋 1175239681 0.00748433 2019-09-25
热卷 1.12293e+09 0.00715118 2019-09-25
纸浆 9.23876e+08 0.00588356 2019-09-25
沪铅 659297524 0.00419864 2019-09-25
菜油 587372274 0.00374059 2019-09-25
郑煤 5.82494e+08 0.00370953 2019-09-25
红枣 499089640 0.00317838 2019-09-25
玉米 458548474 0.0029202 2019-09-25
PVC 334434410 0.00212979 2019-09-25
玻璃 333819628 0.00212588 2019-09-25
沪锡 2.02186e+08 0.00128759 2019-09-25
豆二 185554169 0.00118167 2019-09-25
豆一 184729205 0.00117642 2019-09-25
硅铁 1.54719e+08 0.000985305 2019-09-25
淀粉 112331976 0.000715369 2019-09-25
锰硅 1.10791e+08 0.000705557 2019-09-25
尿素 78648750 0.000500862 2019-09-25
棉纱 5.17932e+07 0.000329837 2019-09-25
NR 34806750 0.000221661 2019-09-25
粳米 7375683 4.69709e-05 2019-09-25
油菜籽 2680922 1.7073e-05 2019-09-25
纤维板 2286460 1.4561e-05 2019-09-25
胶合板 831250 5.29369e-06 2019-09-25
强麦 472400 3.00841e-06 2019-09-25
晚籼稻 159318 1.01459e-06 2019-09-25
线材 90608 5.77023e-07 2019-09-25
粳稻 0 0 2019-09-25
普麦 0 0 2019-09-25
稻谷 0 0 2019-09-25
"""
date = str(date)
date = date[:4] + "-" + date[4:6] + "-" + date[6:]
print(date)
payload_id = {"date": date}
r = requests.post(url, data=payload_id)
print(url)
print("数据获取成功")
json_data = r.json()
symbol_name = []
for item in json_data["data"]["datas"]:
symbol_name.append(item["name"])
symbol_value = []
for item in json_data["data"]["datas"]:
symbol_value.append(item["value"])
symbol_df = pd.DataFrame([symbol_name, symbol_value]).T
symbol_df.columns = ["name", "value"]
symbol_df["ratio"] = symbol_df["value"] / symbol_df["value"].sum()
symbol_df["date"] = date
return symbol_df
if __name__ == "__main__":
# df1, df2 = get_qhkc_fund_bs(20190925)
# print(df1)
# print(df2)
# df1, df2 = get_qhkc_fund_position(20190925)
# print(df1)
# print(df2)
# df1, df2 = get_qhkc_fund_position_change(20190925)
# print(df1)
# print(df2)
get_qhkc_fund_money_change_df = get_qhkc_fund_money_change(20211208)
print(get_qhkc_fund_money_change_df)
@@ -0,0 +1,210 @@
#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
Date: 2025/4/10 18:00
Desc: 奇货可查网站目前已经商业化运营, 特提供奇货可查-指数数据接口, 方便您程序化调用
注:期货价格为收盘价; 现货价格来自网络; 基差=现货价格-期货价格; 基差率=(现货价格-期货价格)/现货价格 * 100 %.
"""
from typing import AnyStr
import pandas as pd
import requests
from akshare.futures.cons import (
QHKC_INDEX_URL,
QHKC_INDEX_TREND_URL,
QHKC_INDEX_PROFIT_LOSS_URL,
)
def get_qhkc_index(name: AnyStr = "奇货商品", url: AnyStr = QHKC_INDEX_URL):
"""
奇货可查-指数-指数详情
获得奇货可查的指数数据: '奇货黑链', '奇货商品', '奇货谷物', '奇货贵金属', '奇货饲料', '奇货软商品', '奇货化工', '奇货有色', '奇货股指', '奇货铁合金', '奇货油脂'
:param url: 网址
:type url: str
:param name: 中文名称
:type name: str
:return: 指数详情
:rtype: pandas.DataFrame
date price volume ... margin profit long_short_ratio
2013-01-04 1000 260820 ... 1130485758 1816940 52.78
2013-01-07 998.244 245112 ... 1132228518 2514410 52.15
2013-01-08 1000.8 318866 ... 1160374489 2981010 51.99
2013-01-09 998.661 247352 ... 1166611242 3904220 52.44
2013-01-10 999.802 161292 ... 1153164771 1448190 52.81
... ... ... ... ... ... ...
2019-09-24 845.391 881138 ... 1895149977 128379050 48.5
2019-09-25 845.674 715180 ... 1797235248 128788230 48.29
2019-09-26 840.154 1347570 ... 1730488227 137104890 48.44
2019-09-27 834.831 920160 ... 1605342767 143128540 48.77
2019-09-30 831.959 1031558 ... 1521875378 147810580 48.82
"""
name_id_dict = {}
qhkc_index_url = "https://qhkch.com/ajax/official_indexes.php"
r = requests.post(qhkc_index_url)
display_name = [item["name"] for item in r.json()["data"]]
index_id = [item["id"] for item in r.json()["data"]]
for item in range(len(display_name)):
name_id_dict[display_name[item]] = index_id[item]
payload_id = {"id": name_id_dict[name]}
r = requests.post(url, data=payload_id)
print(name, "数据获取成功")
json_data = r.json()
date = json_data["data"]["date"]
price = json_data["data"]["price"]
volume = json_data["data"]["volume"]
open_interest = json_data["data"]["openint"]
total_value = json_data["data"]["total_value"]
profit = json_data["data"]["profit"]
long_short_ratio = json_data["data"]["line"]
df_temp = pd.DataFrame(
[date, price, volume, open_interest, total_value, profit, long_short_ratio]
).T
df_temp.columns = [
"date",
"price",
"volume",
"open_interest",
"margin",
"profit",
"long_short_ratio",
]
return df_temp
def get_qhkc_index_trend(name: AnyStr = "奇货商品", url: AnyStr = QHKC_INDEX_TREND_URL):
"""
奇货可查-指数-大资金动向
获得奇货可查的指数数据: '奇货黑链', '奇货商品', '奇货谷物', '奇货贵金属', '奇货饲料', '奇货软商品', '奇货化工', '奇货有色', '奇货股指', '奇货铁合金', '奇货油脂'
:param name: None
:type name: str
:param url: 网址
:type url: str
:return: 大资金动向
:rtype: pandas.DataFrame
broker grade money open_order variety
中金期货 B -3.68209e+07 3.68209e+07 沪金
浙商期货 D -25845534 25845534 沪银
永安期货 A -25614000 25614000 沪银
招商期货 D -23517351 23517351 沪银
海通期货 A 21440845 21440845 沪金
美尔雅 D 21370975 21370975 沪金
中原期货 C -21204612 21204612 沪银
国投安信 A -1.52374e+07 1.52374e+07 沪银
中信期货 C 1.50941e+07 1.50941e+07 沪银
海通期货 A -1.47184e+07 1.47184e+07 沪银
方正中期 E -1.31432e+07 1.31432e+07 沪银
东证期货 D -1.283e+07 1.283e+07 沪银
一德期货 A 1.24973e+07 1.24973e+07 沪银
国投安信 A -11602860 11602860 沪金
国泰君安 B -1.09363e+07 1.09363e+07 沪金
华安期货 D -9.99499e+06 9.99499e+06 沪金
南华期货 B -9.23675e+06 9.23675e+06 沪银
国贸期货 B 8.55245e+06 8.55245e+06 沪银
道通期货 C 8527675 8527675 沪金
招商期货 D -7.85457e+06 7.85457e+06 沪金
东方财富 E -7.58235e+06 7.58235e+06 沪银
五矿经易 A 6.95354e+06 6.95354e+06 沪银
银河期货 B 6.84522e+06 6.84522e+06 沪银
国贸期货 B 6731025 6731025 沪金
平安期货 D -6710418 6710418 沪银
上海中期 C 6628800 6628800 沪金
中信期货 C -6345830 6345830 沪金
银河期货 B -6126295 6126295 沪金
华泰期货 A -5.96254e+06 5.96254e+06 沪金
招金期货 E -5.53029e+06 5.53029e+06 沪银
东证期货 D -5.47486e+06 5.47486e+06 沪金
光大期货 C -5334730 5334730 沪金
广发期货 D 5.31904e+06 5.31904e+06 沪金
国信期货 D -5.05211e+06 5.05211e+06 沪金
"""
name_id_dict = {}
qhkc_index_url = "https://qhkch.com/ajax/official_indexes.php"
r = requests.post(qhkc_index_url)
display_name = [item["name"] for item in r.json()["data"]]
index_id = [item["id"] for item in r.json()["data"]]
for item in range(len(display_name)):
name_id_dict[display_name[item]] = index_id[item]
payload_id = {"page": 1, "limit": 10, "index": name_id_dict[name], "date": ""}
r = requests.post(url, data=payload_id)
print(f"{name}期货指数-大资金动向数据获取成功")
json_data = r.json()
df_temp = pd.DataFrame()
for item in json_data["data"]:
broker = item["broker"]
grade = item["grade"]
money = item["money"]
order_money = item["order_money"]
variety = item["variety"]
df_temp = df_temp._append(
pd.DataFrame([broker, grade, money, order_money, variety]).T
)
df_temp.columns = ["broker", "grade", "money", "open_order", "variety"]
df_temp.reset_index(drop=True, inplace=True)
return df_temp
def get_qhkc_index_profit_loss(
name: AnyStr = "奇货商品",
url: AnyStr = QHKC_INDEX_PROFIT_LOSS_URL,
start_date="",
end_date="",
):
"""
奇货可查-指数-盈亏详情
获得奇货可查的指数数据: '奇货黑链', '奇货商品', '奇货谷物', '奇货贵金属', '奇货饲料', '奇货软商品', '奇货化工', '奇货有色', '奇货股指', '奇货铁合金', '奇货油脂'
:param url: 网址
:type url: str
:param name: None
:type name: str
:param start_date: ""
:type start_date: str
:param end_date: "20190716" 指定 end_date 就可以了
:type end_date: str
:return: 盈亏详情
:rtype: pandas.DataFrame
indexes value trans_date
招金期货-沪金 -307489200 2019-09-30
平安期货-沪银 -195016650 2019-09-30
建信期货-沪银 -160327350 2019-09-30
国贸期货-沪银 -159820965 2019-09-30
东证期货-沪银 -123508635 2019-09-30
... ... ...
永安期货-沪银 187411350 2019-09-30
中信期货-沪金 242699750 2019-09-30
华泰期货-沪银 255766185 2019-09-30
永安期货-沪金 293008700 2019-09-30
国泰君安-沪金 302774950 2019-09-30
"""
name_id_dict = {}
qhkc_index_url = "https://qhkch.com/ajax/official_indexes.php"
r = requests.post(qhkc_index_url)
display_name = [item["name"] for item in r.json()["data"]]
index_id = [item["id"] for item in r.json()["data"]]
for item in range(len(display_name)):
name_id_dict[display_name[item]] = index_id[item]
payload_id = {"index": name_id_dict[name], "date1": start_date, "date2": end_date}
r = requests.post(url, data=payload_id)
print(f"{name}期货指数-盈亏分布数据获取成功")
json_data = r.json()
indexes = json_data["data"]["indexes"]
value = json_data["data"]["value"]
trans_date = [json_data["data"]["trans_date"]] * len(value)
df_temp = pd.DataFrame([indexes, value, trans_date]).T
df_temp.columns = ["indexes", "value", "trans_date"]
return df_temp
if __name__ == "__main__":
get_qhkc_index_df = get_qhkc_index("奇货谷物")
print(get_qhkc_index_df)
get_qhkc_index_trend_df = get_qhkc_index_trend("奇货贵金属")
print(get_qhkc_index_trend_df)
get_qhkc_index_profit_loss_df = get_qhkc_index_profit_loss(
"奇货贵金属", end_date="20250410"
)
print(get_qhkc_index_profit_loss_df)
@@ -0,0 +1,180 @@
#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
Date: 2019/9/30 13:58
Desc: 奇货可查网站目前已经商业化运营, 特提供奇货可查-工具数据接口, 方便您程序化调用
注:期货价格为收盘价; 现货价格来自网络; 基差=现货价格-期货价格; 基差率=(现货价格-期货价格)/现货价格 * 100 %.
"""
from typing import AnyStr
import pandas as pd
import requests
from akshare.futures.cons import QHKC_TOOL_FOREIGN_URL, QHKC_TOOL_GDP_URL
def qhkc_tool_foreign(url: AnyStr = QHKC_TOOL_FOREIGN_URL):
"""
奇货可查-工具-外盘比价
实时更新数据, 暂不能查询历史数据
:param url: str 网址
:return: 外盘比价
:rtype: pandas.DataFrame
name base_time base_price latest_price rate
伦敦铜 10/08 01:00 5704 5746.5 0.745
伦敦锌 10/08 01:00 2291.25 2305.75 0.633
伦敦镍 10/08 01:00 17720 17372.5 -1.961
伦敦铝 10/08 01:00 1743.5 1742.75 -0.043
伦敦锡 10/07 15:00 16550 16290 -1.571
伦敦铅 10/08 01:00 2181.25 2177.5 -0.172
美原油1 10/08 02:30 52.81 53.05 0.454
美原油2 10/07 23:00 53.94 53.05 -1.65
布原油1 10/08 02:30 58.41 58.67 0.445
布原油2 10/07 23:00 59.54 58.67 -1.461
美燃油 10/07 23:00 1.9287 1.9102 -0.959
CMX金 10/08 02:30 1495.9 1496.5 0.04
CMX银 10/08 02:30 17.457 17.457 0
美豆 10/07 23:00 916.12 915.88 -0.026
美豆粕 10/07 23:00 302.75 302.65 -0.033
美豆油 10/07 23:00 30.02 29.91 -0.366
美玉米 10/07 23:00 386.38 387.88 0.388
美糖 10/07 23:30 12.37 12.53 1.293
美棉花 10/07 23:30 61.69 61.05 -1.037
"""
payload_id = {"page": 1, "limit": 10}
r = requests.post(url, data=payload_id)
print("数据获取成功")
json_data = r.json()
name = []
base_time = []
base_price = []
latest_price = []
rate = []
for item in json_data["data"]:
name.append(item["name"])
base_time.append(item["base_time"])
base_price.append(item["base_price"])
latest_price.append(item["latest_price"])
rate.append(item["rate"])
temp_df = pd.DataFrame([name, base_time, base_price, latest_price, rate]).T
temp_df.columns = ["name", "base_time", "base_price", "latest_price", "rate"]
return temp_df
def qhkc_tool_nebula(url: AnyStr = QHKC_TOOL_FOREIGN_URL):
"""
奇货可查-工具-龙虎星云图
:param url: 网址
:return: pd.DataFrame
name base_time base_price latest_price rate
伦敦铜 10/08 01:00 5704 5746.5 0.745
伦敦锌 10/08 01:00 2291.25 2305.75 0.633
伦敦镍 10/08 01:00 17720 17372.5 -1.961
伦敦铝 10/08 01:00 1743.5 1742.75 -0.043
伦敦锡 10/07 15:00 16550 16290 -1.571
伦敦铅 10/08 01:00 2181.25 2177.5 -0.172
美原油1 10/08 02:30 52.81 53.05 0.454
美原油2 10/07 23:00 53.94 53.05 -1.65
布原油1 10/08 02:30 58.41 58.67 0.445
布原油2 10/07 23:00 59.54 58.67 -1.461
美燃油 10/07 23:00 1.9287 1.9102 -0.959
CMX金 10/08 02:30 1495.9 1496.5 0.04
CMX银 10/08 02:30 17.457 17.457 0
美豆 10/07 23:00 916.12 915.88 -0.026
美豆粕 10/07 23:00 302.75 302.65 -0.033
美豆油 10/07 23:00 30.02 29.91 -0.366
美玉米 10/07 23:00 386.38 387.88 0.388
美糖 10/07 23:30 12.37 12.53 1.293
美棉花 10/07 23:30 61.69 61.05 -1.037
"""
payload_id = {"page": 1, "limit": 10}
r = requests.post(url, data=payload_id)
print("数据获取成功")
json_data = r.json()
name = []
base_time = []
base_price = []
latest_price = []
rate = []
for item in json_data["data"]:
name.append(item["name"])
base_time.append(item["base_time"])
base_price.append(item["base_price"])
latest_price.append(item["latest_price"])
rate.append(item["rate"])
temp_df = pd.DataFrame([name, base_time, base_price, latest_price, rate]).T
temp_df.columns = ["name", "base_time", "base_price", "latest_price", "rate"]
return temp_df
def qhkc_tool_gdp(url: AnyStr = QHKC_TOOL_GDP_URL):
"""
奇货可查-工具-各地区经济数据
实时更新数据, 暂不能查询历史数据
:param url:
:return: pandas.DataFrame
国家 国内生产总值 国内生产总值YoY 国内生产总值QoQ ... 预算 债务 经常账户 人口
美国 20494 2.30% 2.00% ... -3.80% 106.10% -2.40 327.17
欧元区 13670 1.20% 0.20% ... -0.50% 85.10% 2.90 341.15
中国 13608 6.20% 1.60% ... -4.20% 50.50% 0.40 1395.38
日本 4971 1.00% 0.30% ... -3.80% 238.20% 3.50 126.25
德国 3997 0.40% -0.10% ... 1.70% 60.90% 7.30 82.85
英国 2825 1.30% -0.20% ... -2.00% 84.70% -3.90 66.19
法国 2778 1.40% 0.30% ... -2.50% 98.40% -0.30 67.19
印度 2726 5.00% 1.00% ... -3.42% 68.30% -2.30 1298.04
意大利 2074 -0.10% 0.00% ... -2.10% 134.80% 2.50 60.48
巴西 1869 1.00% 0.40% ... -7.10% 77.22% -0.77 208.49
加拿大 1709 1.60% 0.90% ... -0.70% 90.60% -2.60 37.31
俄罗斯 1658 0.90% 0.20% ... 2.70% 13.50% 7.00 146.90
韩国 1619 2.00% 1.00% ... -1.60% 36.60% 4.70 51.61
澳大利亚 1432 1.40% 0.50% ... -0.60% 40.70% -1.50 25.18
西班牙 1426 2.00% 0.40% ... -2.50% 97.10% 0.90 46.66
墨西哥 1224 -0.80% 0.00% ... -2.00% 46.00% -1.80 125.33
印尼 1042 5.05% 4.20% ... -1.76% 29.80% -3.00 264.20
荷兰 913 1.80% 0.40% ... 1.50% 52.40% 10.80 17.12
沙特阿拉伯 782 0.50% 0.00% ... -9.20% 19.10% 9.20 33.41
土耳其 767 -1.50% 1.20% ... -2.00% 30.40% -3.50 82.00
瑞士 706 0.20% 0.30% ... 1.30% 27.70% 10.20 8.48
台湾 589 2.40% 0.67% ... -1.90% 30.90% 11.60 23.58
波兰 586 4.50% 0.80% ... -0.40% 48.90% -0.70 37.98
瑞典 551 1.00% 0.10% ... 0.90% 38.80% 2.00 10.12
比利时 532 1.20% 0.20% ... -0.70% 102.00% -1.30 11.41
阿根廷 519 0.60% -0.30% ... -5.50% 86.20% -5.40 44.50
泰国 505 2.30% 0.60% ... -2.50% 41.80% 7.50 66.41
委内瑞拉 482 -22.50% -5.40% ... -20.00% 23.00% 6.00 31.83
奥地利 456 1.50% 0.30% ... 0.10% 73.80% 2.30 8.82
伊朗 454 1.80% NaN ... -3.90% 44.20% 1.30 82.10
挪威 435 -0.70% 0.30% ... 7.30% 36.30% 8.10 5.30
阿联酋 414 2.20% 1.70% ... -1.80% 18.60% 9.10 9.60
尼日利亚 397 1.94% 2.85% ... -2.80% 18.20% 2.30 195.87
爱尔兰 376 5.80% 0.70% ... 0.00% 64.80% 9.10 4.84
以色列 370 3.20% 0.30% ... -1.90% 61.00% 1.90 8.97
南非 366 0.90% 3.10% ... -4.40% 55.80% -3.60 58.78
新加坡 364 0.10% -3.30% ... 0.40% 112.20% 17.70 5.64
香港 363 0.50% -0.40% ... 2.10% 38.40% 4.30 7.48
马来西亚 354 4.90% 1.00% ... -3.70% 51.80% 2.30 32.40
丹麦 351 2.60% 0.90% ... 0.50% 34.10% 6.10 5.78
菲律宾 331 5.50% 1.40% ... -3.20% 41.90% -2.40 107.00
哥伦比亚 330 3.00% 1.40% ... -3.10% 50.50% -3.80 49.83
巴基斯坦 313 5.20% 5.79% ... -6.60% 72.50% -4.80 212.22
智利 298 1.90% 0.80% ... -1.70% 25.60% -3.10 18.75
芬兰 276 1.20% 0.50% ... -0.70% 58.90% -1.90 5.51
孟加拉国 274 7.90% 7.90% ... -4.80% 27.90% -3.60 163.70
埃及 251 5.70% 5.40% ... -8.20% 90.50% -2.40 98.00
越南 245 7.31% 6.88% ... -3.50% 57.50% 3.00 94.67
捷克共和国 244 2.70% 0.70% ... 0.90% 32.70% 0.30 10.61
"""
data = pd.read_html(url, encoding="utf-8")
columns_list = data[0].columns.tolist()
columns_list[0] = "国家"
data[0].columns = columns_list
return data[0]
if __name__ == "__main__":
qhkc_tool_foreign_df = qhkc_tool_foreign()
print(qhkc_tool_foreign_df)
qhkc_tool_gdp_df = qhkc_tool_gdp()
print(qhkc_tool_gdp_df)