
最近有同学问我, 我懂python基础编程, 怎么入门量化。 我当时建议 可以多学习一些出名的开源项目。 不管是akshare 、qlib等,亦或者其他开源项目。
为什么我们要学习开源项目代码, 因为你的很多想法 开源项目基本都能找到对应的实现代码。 其实很多时候禁锢我们思维的,不是自己的爬虫技术有多NB(request、selenium 还是js逆向),还是数据分析(numpy、 pandas、 还是matlibplot) , 亦或者机器学习( sklearn 的lstm、XGBoost、 还是随机森林) , 还是当今火热的AI大模型(langchain、 openai等)。 怎么把这些技术应用到对应的量化场景中, 把项目拆分成一个一个的python例子,很多问题迎刃而解。
就像我之前分享过一个开源项目, 几个月不看, 它也更新了一块内容。 星球同学的提醒,我去看了下, 虽然大部分功能我都自己实现过,但也有一些例子自己没动手写过。 比如一些同学关心的通达信, 举例 通达信竞价抢筹代码示例 就不错。这里分享下
最后附上完整代码,需要的自取。 备注:如果发现格式有多余的特殊字符,用普通浏览器打开复制应该没问题。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
Date: 2025/2/26 12:18
Desc: 通达信抢筹
http://excalc.icfqs.com:7616/TQLEX?Entry=HQServ.hq_nlp
"""
import pandas as pd
import requests
# Setting up pandas display options
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)
pd.set_option('display.expand_frame_repr', False)
pd.set_option('display.max_colwidth', 1000)
def stock_chip_race_open(date: str = "") -> pd.DataFrame:
"""
通达信竞价抢筹_早盘抢筹
http://excalc.icfqs.com:7616/TQLEX?Entry=HQServ.hq_nlp
:return: 早盘抢筹
:rtype: pandas.DataFrame
"""
url = "http://excalc.icfqs.com:7616/TQLEX?Entry=HQServ.hq_nlp"
#sort:1抢筹委托金额, 2抢筹成交金额, 3开盘金额, 4抢筹幅度, 5抢筹占比
if date=="":
params = [{"funcId": 20, "offset": 0, "count": 100, "sort": 1, "period": 0,
"Token": "6679f5cadca97d68245a086793fc1bfc0a50b487487c812f", "modname": "JJQC"}]
else:
params = [{"funcId": 20, "offset": 0, "count": 100, "sort": 1, "period": 0,
"Token": "6679f5cadca97d68245a086793fc1bfc0a50b487487c812f", "modname": "JJQC", "date": date}]
headers = {
"Content-Type": "application/json; charset=UTF-8",
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 TdxW",
}
r = requests.post(url, json=params,headers=headers)
data_json = r.json()
data = data_json["datas"]
if not data:
return pd.DataFrame()
temp_df = pd.DataFrame(data)
temp_df.columns = [
"代码",
"名称",
"昨收",
"今开",
"开盘金额",
"抢筹幅度",
"抢筹委托金额",
"抢筹成交金额",
"最新价",
"_",
]
temp_df["昨收"] = temp_df["昨收"]/10000
temp_df["今开"] = temp_df["今开"] / 10000
temp_df["抢筹幅度"] = round(temp_df["抢筹幅度"] * 100, 2)
temp_df["最新价"] = round(temp_df["最新价"], 2)
temp_df["涨跌幅"] = round((temp_df["最新价"] / temp_df["昨收"]-1) * 100, 2)
temp_df["抢筹占比"] = round((temp_df["抢筹成交金额"] / temp_df["开盘金额"]) * 100, 2)
temp_df = temp_df[
[
"代码",
"名称",
"最新价",
"涨跌幅",
"昨收",
"今开",
"开盘金额",
"抢筹幅度",
"抢筹委托金额",
"抢筹成交金额",
"抢筹占比",
]
]
return temp_df
def stock_chip_race_end(date: str = "") -> pd.DataFrame:
"""
通达信竞价抢筹_尾盘抢筹
http://excalc.icfqs.com:7616/TQLEX?Entry=HQServ.hq_nlp
:return: 尾盘抢筹
:rtype: pandas.DataFrame
"""
url = "http://excalc.icfqs.com:7616/TQLEX?Entry=HQServ.hq_nlp"
#sort:1抢筹委托金额, 2抢筹成交金额, 3开盘金额, 4抢筹幅度, 5抢筹占比
if date=="":
params = [{"funcId": 20, "offset": 0, "count": 100, "sort": 1, "period": 1,
"Token": "6679f5cadca97d68245a086793fc1bfc0a50b487487c812f", "modname": "JJQC"}]
else:
params = [{"funcId": 20, "offset": 0, "count": 100, "sort": 1, "period": 1,
"Token": "6679f5cadca97d68245a086793fc1bfc0a50b487487c812f", "modname": "JJQC", "date": date}]
headers = {
"Content-Type": "application/json; charset=UTF-8",
"User-Agent": "TdxW",
}
r = requests.post(url, json=params,headers=headers)
data_json = r.json()
data = data_json["datas"]
if not data:
return pd.DataFrame()
temp_df = pd.DataFrame(data)
temp_df.columns = [
"代码",
"名称",
"昨收",
"今开",
"收盘金额",
"抢筹幅度",
"抢筹委托金额",
"抢筹成交金额",
"最新价",
"_",
]
temp_df["昨收"] = temp_df["昨收"]/10000
temp_df["今开"] = temp_df["今开"] / 10000
temp_df["抢筹幅度"] = round(temp_df["抢筹幅度"] * 100, 2)
temp_df["最新价"] = round(temp_df["最新价"], 2)
temp_df["涨跌幅"] = round((temp_df["最新价"] / temp_df["昨收"]-1) * 100, 2)
temp_df["抢筹占比"] = round((temp_df["抢筹成交金额"] / temp_df["收盘金额"]) * 100, 2)
temp_df = temp_df[
[
"代码",
"名称",
"最新价",
"涨跌幅",
"昨收",
"今开",
"收盘金额",
"抢筹幅度",
"抢筹委托金额",
"抢筹成交金额",
"抢筹占比",
]
]
return temp_df
if __name__ == "__main__":
fund_chip_race_open_df = stock_chip_race_open()
print(fund_chip_race_open_df)
fund_chip_race_end_df = stock_chip_race_end()
print(fund_chip_race_end_df)如果我的分享对你投资有所帮助,不吝啬给个点赞关注呗。