stock-tracker
This commit is contained in:
@@ -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)
|
||||
Reference in New Issue
Block a user