股市投资离不开数据支持,但如何高效获取股票行情?最近被东方财富、问财等各个软件的升级命中了,头疼。 这里整理下 我们有哪些方式可以获取行情数据。 所谓狡兔三窟, 有备无患。
QMT提供本地、全推和订阅三种行情数据模式,适合高频交易和量化策略开发:
通过download_history_data下载本地数据,用于回测:
from xtquant import xtdata
# 下载贵州茅台1分钟线数据
xtdata.download_history_data('600519.SH', period='1m', start_time='20240101')使用get_full_tick获取全市场实时行情快照(含五档盘口):
import time
from xtquant import xtdata
xtdata.subscribe_whole_quote()
whileTrue:
full_tick = xtdata.get_full_tick(['600519.SH'])
print(full_tick['600519.SH']['lastPrice']) # 最新价
time.sleep() # 每3秒更新通过回调函数处理增量数据:
defcallback(data):
print("实时数据更新:", data)
xtdata.subscribe_quote('600519.SH', period='1m', callback=callback)
xtdata.run() # 启动事件循环QMT支持从基础周期合成周/月线:
# 获取15分钟线(由5分钟合成)
data = xtdata.get_market_data_ex([], ['600519.SH'], period='15m', count=)实时行情
import akshare as ak
df = ak.stock_zh_a_spot_em() # 全市场实时行情历史复权数据
df = ak.stock_zh_a_hist(symbol="600519", period="daily", adjust="hfq")三. Tushare(需Token)
财务数据
import tushare as ts
pro = ts.pro_api('YOUR_TOKEN')
df = pro.income(ts_code='600519.SH')
from mootdx.quotes import Quotes
client = Quotes.factory(market="std", quiet=True) # 标准市场
if __name__ == '__main__':
df = client.get_k_data('600036','20240102', '20250305')
print(df)条件选股
import pywencai
res = pywencai.get(query='涨停',perpage=100, loop=True, cookie='xxx=xxxx')
print(res)
工具 | 适用场景 | 特点 |
|---|---|---|
QMT | 高频交易、本地化策略执行 | 支持全推/订阅,低延迟,需券商接入 |
AKShare | 多源免费数据获取 | 接口丰富,无需Token,更新快 |
Tushare | 结构化财务数据 | 数据清洗完善,部分接口需付费 |
Mootdx | 通达信本地数据解析 | 支持离线行情,适合本地化存储 |
PyWenCai | 自然语言选股 | 灵活筛选,依赖同花顺问财接口 |
通过上述方法可灵活获取多源行情数据,QMT尤其适合需要低延迟和高频交易的场景,其他工具可作为补充用于策略研究和数据验证。
题外话:
早上发现同花顺问财的接口需要cookie,晚上试了下没有cookie也能,料想是系统出问题回滚了一些逻辑。
我们开发程序,系统升级得谨慎, 不要为了解决一个问题引出另外一个问题。