全部
文章&策略
学习干货
问答
官方
用户头像sh_*219t3e
2025-11-06 发布
最近我专门针对 Supermind 平台的AI 量化代码生成平台进行了优化改进,现在效果比市面上的 DS、豆包等工具好很多。 👉 SuperMind AI量化代码生成平台 这个工具最大的特点是直接和 AI 对话就能生成完整可运行的Supermind量化策略代码。你不需要懂 Python、C# 或策略 API,只要用自然语言描述你的交易逻辑,比如:“当5日均线向上突破20日均线时买入,反向时卖出。” AI 就会自动帮你生成完整策略代码,并能直接在平台上运行。 相比于通用大模型的输出,这个平台针对量化交易进行了专门优化生成的代码结构更清晰,逻辑更准确,对策略逻辑的理解更接近量化开发者的思路,并且可用作 API 查询或策略自动生成工具 之前上线后,很多朋友反馈代码质量和可运行性都非常高,几乎不需要再手动修改。现在我们的AI量化代码生成平台已经全面支持 Supermind,你可以直接体验。如果你之前在用 DS、豆包等平台,不妨试试看这个版本,可能会刷新你对AI 写量化策略的想象。
浏览323
评论7
收藏0
用户头像sh_****860vaj
2025-11-17 发布
在中国A股市场,有一个非常独特的文化现象。每逢市场调整,社交媒体上便哀鸿遍野,而“量化”二字总能成为千夫所指的完美靶心。有趣的是,这种现象在海外成熟市场中却很少见到。即便海外市场的量化交易占比远高于国内,投资者也很少在市场波动时将责任归咎于量化策略。 这种归咎于外因的做法,从心理学上可以理解。亏钱的感受令人痛苦,而寻找一个外部的“背锅侠”,是一种保护自己免受自责的心理防御机制。但是,这种习惯性的指责真的有帮助吗?它会不会掩盖了我们自身投资方法中更深层次的问题?本文将深入探讨主观交易中常见的三个“心魔”,它们或许才是导致亏损的真正元凶。 1. 心魔一:情绪的“遥控器” 主观投资最大的弱点之一,就是它极易受到情绪的操控。与严格遵循数据和模型的量化投资不同,主观决策往往被恐惧、贪婪和侥幸心理所左右,而非纯粹的逻辑分析。 一个典型的例子是,即便是受过专业训练的研究员,在线下与某家上市公司的董事长或董秘交流后,也可能因为对方极具感染力的描述而“画大饼”。结果往往是“脑子一热”,回头就立刻下单买入该公司的股票。这就是典型的“光环效应”=在作祟,高管的个人魅力掩盖了企业基本面的瑕疵,让专业的分析瞬间失效。当投资决策的遥控器掌握在情绪手中时,做出非理性的选择几乎是不可避免的。 2. 心魔二:故事的“放大镜” 主观投资的第二个常见陷阱是“以偏概全”,即根据少数个案或动人的故事来做出投资决策。投资者可能因为听到一个朋友靠某只股票赚了大钱,或者读到一个关于某公司前景光明的精彩故事,就草率地投入资金。 这与严谨的量化方法形成了鲜明对比。一个有效的量化策略,必须在历史上所有符合条件的情况下进行回测,通过计算统计概率来验证其长期有效性,而不是仅仅依赖一两个成功的案例。而当这种基于零散故事的决策失败时,承认方法本身的缺陷是痛苦的。于是,一个外部的敌人就成了最便捷的归罪对象。 “不是我方无能,是量化太狡猾了。” 这种想法虽然能带来暂时的心理安慰,但它阻碍了我们正视自己依赖零散信息而非全面数据进行决策这一根本性缺陷。 3. 心魔三:市场的“逆行者” 主观投资中最致命、也最普遍的一个错误,可能是用错了策略,在错误的战场上战斗。对于A股的许多投资者来说,他们从进入市场开始学到的最经典策略之一就是“追强势股”,即买入那些短期内涨势凶猛的股票。 然而,大量研究和数据揭示了一个与直觉相悖的核心现实:A股本质上并不是一个强趋势市场,而是一个反转市场**=**。这意味着,那些在短期内表现异常强势的股票,后续下跌的概率反而更高。这也意味着,无数投资者奉为圭臬的“强者恒强”的信念,从踏入这个市场的第一天起,就可能是一个通往亏损的陷阱。这种策略上的根本错配,导致他们在市场上反复“逆行”,自然难以获得理想的回报。 将亏损归咎于量化基金这样的外部“敌人”,或许能提供一时的“情绪价值”,让我们感觉好受一些。但从长远来看,这种做法除了让我们原地踏步外,毫无益处。真正的成长,来源于向内审视,跳出自己的舒适圈,客观地检查自己的投资框架是否存在问题。 无论是被情绪左右,被故事迷惑,还是在根本上用错了市场的“说明书”,这些内在的偏差远比任何外部因素都更具破坏力。下次亏损时,我们是选择继续寻找下一个“背锅侠”,还是开始审视自己的投资框架?这个问题的答案,将决定我们未来的投资之路。
浏览18
评论0
收藏0
用户头像sh_***174w0d
2025-11-17 发布
提起量化交易,很多人脑海中浮现的或许是一幅高深莫测的画面:华尔街的数学博士、顶尖机构的编程天才,在一个充满代码和复杂模型的神秘世界里运筹帷幄。这种印象让量化交易长期以来被视为一个“高门槛”的领域,甚至在许多普通投资者心中被“妖魔化”,认为这是一件遥不可及的事情。 然而,将时间拉长看,这并非什么新鲜事。二十年前,普通人想看K线图都得靠手绘,那时的“人脑量化”就是最高级的技术。后来,随着同花顺等行情软件的出现,复杂的K线统计工作被普及,普通人享受到了第一代科技的红利。今天,AI的浪潮正以前所未有的力量,推动着这场平权运动进入新阶段。它并非凭空出现,而是技术民主化进程中最新、也是最强大的一步。 在这个人工智能技术日新月异、各类工具日益普及的时代,普通人真的与量化交易绝缘了吗?答案是否定的。事实上,阻碍大多数人探索量化交易的,往往不是技术本身,而是一些根深蒂固的误解。本文将为你破解普通人入门量化交易的三大迷思,揭示一条更加清晰、更易于实践的路径。 迷思一:数学不好,代码不行?其实高中知识就够了 许多人对量化望而却步的第一个原因,就是对数学和统计学的恐惧,认为没有硕博级别的数理知识根本无法入门。 但事实是,对于一个愿意学习、思考和进步的普通人来说,要开始自己的量化之路,掌握高中或本科阶段的数学与统计学知识就已经足够了。与其耗费心力去学习那些玄之又玄、无法验证的“龙头战法”,远不如将80%的精力投入去学习一个基础的市值单因子排序策略。后者的风险更低,逻辑更清晰,也更适合普通人构建自己的交易体系。 而如今,AI大模型的出现彻底改变了游戏规则。AI成为了普通人学习知识的终极“杠杆”。即便你从零开始,也可以通过与AI的交互,快速学习基础概念,甚至搭建起属于自己的第一个单因子策略。知识的壁垒,正在被前所未有地削平。 迷思二:工具太复杂,门槛太高?现代平台和AI正在抹平一切 不可否认,在过去,许多量化平台确实对使用者很不友好。仅仅是构建一个简单的回测逻辑,就可能需要编写20到50行的代码,这无疑将大量非专业人士拒之-门外。 但今时不同往日。现代化的量化平台和Web编程工具极大地降低了技术门槛。在一些新平台上,构建一个单因子排序策略的核心逻辑,可能只需要不到两行代码。不仅如此,像字节跳动等公司推出的新型AI编程工具,可以非常轻松地帮助你写好这2到10行的代码。这种“产品平权”的趋势意味着,入门的障碍已经不再是复杂的编程技术,而是对投资逻辑本身的理解——而这恰恰是普通投资者通过学习可以掌握的。 迷思三:没有大笔资金,就别谈量化?核心是思维,而非金钱 另一个常见的误解是,量化交易必须拥有庞大的资金,才能买入足够分散的股票组合来实现策略。 对于普通投资者而言,我们首先需要重新定位量化的作用。它并非要完全取代你原有的交易方式,而更多的是提供一个强大的分析工具——一个能让你用更理性、更科学的视角去理解市场的工具。即便是纯粹的主观交易者,这种思维也能极大地增强你的决策能力。 正如一个核心观点所指出的: 量化的优势从来都不是在执行力上,而是在比谁更加能有效的去分析市场上。 因此,关键不在于你的资金量,而在于你是否掌握了量化的分析思维。即便你的投资组合里只有10到20只股票,运用量化思维也能让你的分析方法更加多元化,从而做出更明智的决策。 总结 总结来说,长期以来阻碍普通人进入量化领域的知识、工具和资金这三座大山,正在被技术和AI的浪潮迅速侵蚀。 一个“知识平权”与“产品平权”的时代已经到来,所谓的“量化精英论”正在逐渐褪色。真正的壁垒从来不是技术,而是我们自己的思维定式。现在,每个人都拥有了前所未有的机会,去利用这些强大的工具来武装自己的投资决策。 在AI这个最大的时代红利面前,你还在等什么呢?
浏览19
评论0
收藏0
用户头像sh_***388rgt
2025-11-17 发布
你是不是也对高频交易感兴趣,但苦于找不到免费、好用的5分钟K线数据?别急,今天介绍的Baostock 这个神器,能完美解决这个问题!它完全免费,数据还非常全面。 简单来说,5分钟K线就是每5分钟形成一根K线,记录这5分钟内的开盘价、最高价、最低价和收盘价。把很多根这样的K线连在一起,就形成了5分钟K线图。 为什么用5分钟线? 它比日K线更能捕捉盘中的短期波动和交易机会,非常适合用来做短线交易、日内盯盘或者量化回测。 有什么用? 你可以基于它来开发短线交易策略,比如突破某个阻力位就买入,或者结合其他技术指标(如均线、RSI)进行综合分析。 有研究通过分析5分钟K线数据,发现大盘在一天内的涨跌存在某些规律,例如可能在上午开盘后和下午特定时段出现波动较大的情况,这对于短线操作很有参考价值。 下面我们来手把手教大家怎么通过Baostock获取历史A股5分钟K线数据。 安装Baostock库 在命令行里输入以下命令即可完成安装: pip install baostock 2.实战Demo:获取A股5分钟K线数据: import baostock as bs import pandas as pd #### 登陆系统 #### lg = bs.login() # 显示登陆返回信息 print('login respond error_code:'+lg.error_code) print('login respond error_msg:'+lg.error_msg) #### 获取沪深A股历史K线数据 #### # 详细指标参数,参见“历史行情指标参数”章节;“分钟线”参数与“日线”参数不同。“分钟线”不包含指数。 # 分钟线指标:date,time,code,open,high,low,close,volume,amount,adjustflag # 周月线指标:date,code,open,high,low,close,volume,amount,adjustflag,turn,pctChg rs = bs.query_history_k_data_plus("sh.605018", "date,time,code,open,high,low,close,volume,amount,adjustflag", start_date='2023-01-01', end_date='2024-12-03', frequency="5", adjustflag="3") print('query_history_k_data_plus respond error_code:'+rs.error_code) print('query_history_k_data_plus respond error_msg:'+rs.error_msg) #### 打印结果集 #### data_list = [] while (rs.error_code == '0') & rs.next(): # 获取一条记录,将记录合并在一起 data_list.append(rs.get_row_data()) result = pd.DataFrame(data_list, columns=rs.fields) #### 结果集输出到csv文件 #### result.to_csv("D:\\history_A_stock_5mk_data.csv", index=False) print(result) #### 登出系统 #### bs.logout()
浏览15
评论0
收藏0

精华 长期有效,公开征集意见反馈。

用户头像量化官方小助理
2023-03-09 发布
请大家不要客气,任何意见建议可以在这里评论提出。 被采纳后我们将奖励1G研究环境内存 3个月。
浏览16219
评论134
收藏6
用户头像O神龙O
2025-11-15 发布
get_last_tick回测时仍然取的现实世界物理时间最新交易数据,是这样设计的吗?
浏览26
评论1
收藏0
用户头像Fxdund
2025-11-15 发布
港股实时行情 API 接口接入实战指南:从选型到落地全解析 在量化交易和金融科技应用开发中,实时行情数据是决策的核心。对于港股市场而言,选择合适的数据接口并正确接入,是构建稳定交易系统的第一步。 随着港股市场与 A 股市场的互联互通机制不断深化,港股实时行情数据的需求日益增长。无论是构建量化交易系统、开发投资分析工具,还是打造金融资讯平台,都离不开稳定可靠的行情数据接口。 本文将全面解析港股实时行情 API 接口的选型与接入过程,提供从主流接口对比、Python 实战代码到生产环境部署的完整指南。 一、港股行情 API 接口选型指南 目前市场上港股行情 API 鱼龙混杂,从传统金融数据服务商到新兴技术平台,各有优劣。我们从开发者最关注的实时性、成本、易用性、数据完整性四个维度,对比 itick 与两款主流接口的核心差异: API 服务商 实时性 接入成本 易用性 核心优势 适用场景 iTick 毫秒级推送,延迟 ≤50ms 免费版支持基础行情,付费版性价比高 RESTful 规范,请求头统一,返回格式简洁 港股全量覆盖,支持 WebSocket 实时订阅 个人开发者、量化交易、中小型行情系统 Wind 金融终端 API 延迟 100-300ms 年费高昂(数万元起),无免费版 需安装客户端,接口参数复杂 数据维度极全,含深度研报 大型金融机构、专业投研团队 Tushare 港股接口 延迟 1-3 秒,非实时 积分制,高频调用需付费兑换积分 Python SDK 友好,但港股数据覆盖不全 A 股数据优质,文档完善 A 股为主、港股为辅的低频分析场景 二、接入前置准备:统一 API 请求头设置 无论选择哪个 API 服务商,合理的请求头设置是确保 API 调用成功的基础。以下是根据行业标准整理的统一请求头配置: 获取 token,请参考 官网文档 import requests import os from typing import Dict, Any # 统一请求头配置 headers = { "accept": "application/json", "token": os.getenv("HK_STOCK_API_TOKEN", "yourtoken"), # 从环境变量读取token,增强安全性 "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36", "content-type": "application/json; charset=utf-8" } class HKStockAPI: def __init__(self, base_url="https://api.itick.org", custom_headers=None): self.base_url = base_url self.headers = headers.copy() if custom_headers: self.headers.update(custom_headers) def _make_request(self, endpoint, params=None): """统一封装的请求方法""" try: url = f"{self.base_url}{endpoint}" response = requests.get( url, headers=self.headers, params=params, timeout=10 ) response.raise_for_status() # 检查HTTP状态码 return response.json() except requests.exceptions.RequestException as e: print(f"API请求失败: {e}") return None 三、港股实时行情 API 接口实战(代码示例) 1. 股票实时报价接口 实时报价是行情数据中最基础也是最重要的接口,提供最新的成交价、涨跌幅、成交量等核心数据。 def get_stock_quote(self, symbol, region="HK"): """ 获取港股实时报价 :param symbol: 股票代码,如 '700' 对应腾讯控股 :param region: 地区代码,港股固定为 'HK' :return: 实时报价数据字典 """ endpoint = "/stock/quote" params = { "region": region, "code": symbol } data = self._make_request(endpoint, params) if data and data.get("code") == 0: return data.get("data") else: print(f"获取实时报价失败: {data.get('msg') if data else '未知错误'}") return None # 使用示例 api = HKStockAPI() quote = api.get_stock_quote("700") # 腾讯控股 if quote: print(f"股票代码: {quote['s']}") print(f"最新价: {quote['ld']}") print(f"开盘价: {quote['o']}") print(f"最高价: {quote['h']}") print(f"最低价: {quote['l']}") print(f"成交量: {quote['v']}") print(f成交额: {quote['tu']}") # 时间戳转换 import datetime trade_time = datetime.datetime.fromtimestamp(quote['t']/1000) print(f"交易时间: {trade_time}") 运行以上代码,将返回当前股票的行情信息,包括股票代码、最新价、开盘价、最高价、最低价、成交量、成交额和交易时间。 2. 股票实时盘口接口 盘口数据(深度数据)展示买卖双方的挂单情况,对于短线交易至关重要。 def get_stock_depth(self, symbol, region="HK"): """ 获取港股实时盘口数据 :param symbol: 股票代码 :param region: 地区代码 :return: 盘口数据字典 """ endpoint = "/stock/depth" params = { "region": region, "code": symbol } data = self._make_request(endpoint, params) if data and data.get("code") == 0: return data.get("data") else: print(f"获取盘口数据失败: {data.get('msg') if data else '未知错误'}") return None # 使用示例 depth = api.get_stock_depth("700") # 腾讯控股盘口 if depth: print(f"股票代码: {depth['s']}") print("=== 卖盘 ===") for ask in depth['a']: print(f"位置: {ask['po']} 价格: {ask['p']} 数量: {ask['v']} 订单数: {ask['o']}") print("=== 买盘 ===") for bid in depth['b']: print(f"位置: {bid['po']} 价格: {bid['p']} 数量: {bid['v']} 订单数: {bid['o']}") # 计算买卖盘压力 total_ask_volume = sum(ask['v'] for ask in depth['a']) total_bid_volume = sum(bid['v'] for bid in depth['b']) print(f"买卖盘比例: {total_bid_volume/total_ask_volume:.2%}") 运行以上代码,将返回当前股票的买卖盘信息。 3. 获取股票历史数据 历史 K 线数据用于技术分析和策略回测,是量化交易的基石。 def get_historical_kline(self, symbol, k_type=2, limit=100, region="HK",et): """ 获取港股历史K线数据 :param symbol: 股票代码 :param k_type: K线类型 (1: 1分钟, 2: 5分钟, 3: 15分钟, 4: 30分钟, 5: 60分钟, 6:2小时,7:4小时 8: 日K, 9: 周K, 10: 月K) :param limit: 数据条数 :param region: 地区代码 :param et: 查询截止时间戳 (为空时默认为当前时间戳) :return: K线数据列表 """ endpoint = "/stock/kline" params = { "region": region, "code": symbol, "kType": k_type, "limit": limit, "et": et } data = self._make_request(endpoint, params) if data and data.get("code") == 0: return data.get("data") else: print(f"获取K线数据失败: {data.get('msg') if data else '未知错误'}") return None # 使用示例 kline_data = api.get_historical_kline("700", k_type=2, limit=50) if kline_data: # 转换为Pandas DataFrame便于分析 import pandas as pd df = pd.DataFrame(kline_data) df['t'] = pd.to_datetime(df['t'], unit='ms') df.set_index('t', inplace=True) print(df.head()) # 计算简单移动平均 df['sma_5'] = df['c'].rolling(window=5).mean() df['sma_20'] = df['c'].rolling(window=20).mean() # 绘制K线图 import matplotlib.pyplot as plt plt.figure(figsize=(12, 6)) plt.plot(df.index, df['c'], label='Close Price') plt.plot(df.index, df['sma_5'], label='5-day SMA') plt.plot(df.index, df['sma_20'], label='20-day SMA') plt.title('Tencent Holdings (0700.HK) Stock Price') plt.legend() plt.show() 4. WebSocket 实时数据推送 对于需要实时监控行情场景,WebSocket 比轮询方式更高效。 import websocket import json import threading import time class HKStockWebSocket: def __init__(self, token): self.ws_url = "wss://api.itick.org/stock" self.token = token self.ws = None self.is_connected = False def on_message(self, ws, message): """处理WebSocket推送的消息""" data = json.loads(message) print(f"收到实时数据: {data}") # 根据数据类型进行不同处理 if 'quote' in data: self.handle_quote_data(data['quote']) elif 'depth' in data: self.handle_depth_data(data['depth']) def on_error(self, ws, error): print(f"WebSocket错误: {error}") def on_close(self, ws, close_status_code, close_msg): self.is_connected = False print("WebSocket连接关闭") def on_open(self, ws): """连接建立后的回调函数""" self.is_connected = True print("WebSocket连接已建立") # 订阅股票数据 subscribe_msg = { "ac": "subscribe", "params": "700$HK,9988$HK", # 腾讯控股、阿里巴巴 "types": "depth,quote" } ws.send(json.dumps(subscribe_msg)) def handle_quote_data(self, quote_data): """处理实时报价数据""" print(f"股票 {quote_data['s']} 最新价: {quote_data['ld']}") def handle_depth_data(self, depth_data): """处理盘口数据""" print(f"股票 {depth_data['s']} 盘口已更新") def start(self): """启动WebSocket连接""" self.ws = websocket.WebSocketApp( self.ws_url, on_message=self.on_message, on_error=self.on_error, on_close=self.on_close, on_open=self.on_open, header=headers # 使用统一的请求头 ) # 在单独线程中运行WebSocket def run_ws(): self.ws.run_forever() self.ws_thread = threading.Thread(target=run_ws) self.ws_thread.daemon = True self.ws_thread.start() def stop(self): """停止WebSocket连接""" if self.ws: self.ws.close() # 使用示例 ws_client = HKStockWebSocket("yourtoken") ws_client.start() # 保持主线程运行 try: while True: time.sleep(1) except KeyboardInterrupt: ws_client.stop() print("程序退出") 四、常见问题 1. 认证失败问题 问题现象:API 返回 401 或 403 状态码 解决方案: 检查 token 是否过期,及时刷新 验证请求头格式是否正确 确认 API 访问权限 2. 频率限制问题 问题现象:API 返回 429 状态码 解决方案: 升级到高级版 实现请求频率控制 合理安排数据更新间隔 使用批量接口减少请求次数 五、总结 港股实时行情 API 的接入是一个系统性工程,涉及接口选型、技术实现、性能优化等多个方面。通过本文的指南,您可以: 根据需求选择合适的 API 服务商,平衡数据质量、实时性和成本 快速实现核心行情接口的调用,包括实时报价、盘口数据、历史 K 线 构建稳定的生产环境应用,通过缓存、重试、监控等机制提升系统可靠性 有效处理常见问题,确保业务连续性和数据准确性 随着技术的不断发展,港股行情 API 也在持续进化。建议开发者持续关注各 API 提供商的更新动态,及时优化自己的实现方案,为量化交易和投资决策提供更加可靠的数据支持。 温馨提示:本文提供的代码示例仅供参考,请根据官方文档中提供的具体实现方式进行修改和测试。 https://github.com/orgs/itick-org 参考文档:https://docs.itick.org/rest-api/stocks/stock-kline
浏览75
评论0
收藏0
用户头像mo_****44536
2025-11-15 发布
同花顺app里面的板块概念每日涨幅及每日热度排名请问有无直接函数可以获取 还是要自己函数实现
浏览50
评论1
收藏0

33333

用户头像微微的牛
2025-11-14 发布
u斤斤计较
浏览40
评论1
收藏0
用户头像Fxdund
2025-11-13 发布
港股、美股、A 股实时行情数据 API 接口-免费接入 一款支持港股、美股、A 股多市场的免费股票行情数据接口服务,能够提供股票基础信息、实时 Tick 数据、实时报价、历史 K 线及批量 K 线等多维度数据,数据返回格式统一为 JSON,接入便捷,满足各类金融数据应用开发需求。本文将详细介绍该 API 的接口规范、使用方法及数据字段说明。 一、通用请求规范 1.1 必要请求头 所有 API 接口请求均需携带以下请求头,用于身份验证及数据格式指定,否则将导致请求失败: { "accept": "application/json", "token": "your_token" } 获取 token 方式,请参考 官网文档。 1.2 市场标识说明 接口通过“region”参数区分目标市场,各市场对应的标识及股票代码规则如下,请求时需准确匹配: 市场 region 参数值 股票代码规则 示例 港股 HK 5 位数字 700(腾讯控股)、9988(阿里巴巴) 美股 US 1-4 位字母 AAPL(苹果)、TSLA(特斯拉) A 股 SZ、SH 沪市 60 开头、深市 00/30 开头 601398(工商银行)、300750(宁德时代) 二、核心接口详情 2.1 股票基础信息接口 用于获取单只股票的基础信息,包括公司名称、所属行业、市值、市盈率等核心数据,为行情分析提供基础支撑。 2.1.1 请求地址 https://api.itick.org/stock/info 2.1.2 请求参数 参数名 类型 是否必填 说明 type string 是 资产类型,股票填“stock” region string 是 市场标识,参考 1.2 节 code string 是 股票代码,需与 region 匹配 2.1.3 调用代码示例(Python) 使用 requests 库发送 GET 请求,需提前安装:pip install requests import requests # 接口请求地址 url = "https://api.itick.org/stock/info" # 必要请求头 headers = { "accept": "application/json", "token": "your_token" } # 请求参数 params = { "type": "stock", # 资产类型为股票 "region": "HK", # 港股市场 "code": "700" # 腾讯控股股票代码 } try: # 发送GET请求 response = requests.get(url, headers=headers, params=params) # 解析JSON响应 result = response.json() # 打印请求结果 if result["code"] == 0: print("请求成功,股票信息:", result["data"]) else: print("请求失败,错误信息:", result["msg"]) except Exception as e: print("请求异常:", str(e)) 2.1.3 响应数据示例(港股-腾讯控股) { "code": 0, "msg": "ok", "data": { "c": "700", "n": "騰訊控股", "t": "stock", "e": "HKEX", "s": "Technology Services", "i": "Packaged Software", "l": "騰訊控股", "r": "HKD", "bd": "Tencent Holdings Ltd. provides value-added services...", "wu": "http://www.tencent.com", "mcb": 5380057843750, "tso": 9087935546, "pet": 24.562762020141466, "fcc": "HKD" } } 2.1.4 响应字段解析 字段名 类型 说明 code int 请求状态码,0 表示成功 msg string 状态描述,成功时为“ok” c string 股票代码 n string 股票中文名称 t string 资产类型 e string 所属交易所代码(HKEX=港交所) s string 所属行业大类 i string 所属行业细分 r string 交易货币单位 bd string 公司业务描述 wu string 公司官网地址 mcb number 总市值 tso number 总股本 pet number 市盈率(TTM) fcc string 财务报告货币单位 2.2 实时 Tick 数据接口 提供股票实时成交明细(Tick 数据),包含最新成交价格、成交量及成交时间,数据更新延迟低,适用于实时行情展示。 2.2.1 请求地址 https://api.itick.org/stock/tick 2.2.2 请求参数 参数名 类型 是否必填 说明 region string 是 市场标识,参考 1.2 节 code string 是 股票代码,需与 region 匹配 2.2.3 调用代码示例(Python) import requests # 接口请求地址 url = "https://api.itick.org/stock/tick" # 必要请求头 headers = { "accept": "application/json", "token": "your_token" } # 请求参数(港股腾讯控股) params = { "region": "HK", "code": "700" } try: response = requests.get(url, headers=headers, params=params) result = response.json() if result["code"] == 0: print("实时Tick数据:", { "股票代码": result["data"]["s"], "最新成交价": result["data"]["ld"], "成交时间": result["data"]["t"], "成交量": result["data"]["v"] }) else: print("请求失败:", result["msg"]) except Exception as e: print("异常信息:", str(e)) 2.2.3 响应数据示例 { "code": 0, "msg": null, "data": { "s": "700", "ld": 567, "t": 1754554087000, "v": 1134500 } } 2.2.4 响应字段解析 字段名 类型 说明 s string 股票代码 ld number 最新成交价格 t number 成交时间戳(毫秒级,UTC 时间) v number 成交数量(股) 2.3 实时报价接口 获取股票实时行情快照,包含开盘价、最高价、最低价、最新价、成交量等核心行情数据,是行情分析的核心接口。 2.3.1 请求地址 https://api.itick.org/stock/quote 2.3.2 请求参数 与“实时 Tick 数据接口”一致,仅需传入 region 和 code 参数。 2.3.3 调用代码示例(Python) import requests # 实时报价接口地址 url = "https://api.itick.org/stock/quote" # 请求头(固定格式) headers = { "accept": "application/json", "token": "your_token" } # 示例:请求美股苹果公司实时报价 params = { "region": "US", # 美股市场 "code": "AAPL" # 苹果股票代码 } try: response = requests.get(url, headers=headers, params=params) response.raise_for_status() # 检查HTTP请求状态 result = response.json() if result["code"] == 0: quote_data = result["data"] # 格式化输出关键行情数据 print(f"股票代码:{quote_data['s']}") print(f"开盘价:{quote_data['o']}") print(f"最高价:{quote_data['h']}") print(f"最低价:{quote_data['l']}") print(f"最新价:{quote_data['ld']}") print(f"当日成交量:{quote_data['v']}") print(f"当日成交金额:{quote_data['tu']}") except requests.exceptions.RequestException as e: print("HTTP请求异常:", e) except KeyError as e: print("响应数据字段缺失:", e) 2.3.3 响应数据示例 { "code": 0, "msg": null, "data": { "s": "700", "ld": 567, "o": 571, "h": 572, "l": 560.5, "t": 1754554089000, "v": 16940382, "tu": 9595241622.71, "ts": 0 } } 2.3.4 响应字段解析 字段名 类型 说明 o number 当日开盘价 h number 当日最高价 l number 当日最低价 tu number 当日成交金额 ts number 涨跌幅(未启用时为 0) 2.4 历史 K 线接口 获取单只股票的历史 K 线数据,支持不同周期类型,可用于技术分析、趋势研判等场景。 2.4.1 请求地址 https://api.itick.org/stock/kline 2.4.2 请求参数 参数名 类型 是否必填 说明 region string 是 市场标识,参考 1.2 节 code string 是 股票代码 kType int 是 K 线周期类型(8=日 K,其他周期可参考 API 补充文档) limit int 是 返回数据条数,最大支持 1000 条 2.4.3 调用代码示例(Python) import requests import time # 历史K线接口地址 url = "https://api.itick.org/stock/kline" headers = { "accept": "application/json", "token": "your_token" } # 请求参数:A股宁德时代(300750)的最近10条日K线数据 params = { "region": "CN", "code": "300750", "kType": 8, # 8代表日K线 "limit": 10 # 返回最近10条数据 } try: response = requests.get(url, headers=headers, params=params) result = response.json() if result["code"] == 0: kline_data = result["data"] print(f"宁德时代(300750)最近10条日K线数据:\n") # 遍历K线数据并格式化输出 for kline in kline_data: # 将时间戳转换为本地日期格式 kline_time = time.strftime("%Y-%m-%d", time.localtime(kline["t"]/1000)) print(f"日期:{kline_time}") print(f"开盘价:{kline['o']} | 最高价:{kline['h']} | 最低价:{kline['l']} | 收盘价:{kline['c']}") print(f"成交量:{kline['v']} | 成交金额:{kline['tu']}\n") except Exception as e: print("请求失败:", str(e)) 2.4.3 响应数据示例 { "code": 0, "msg": null, "data": [ { "tu": 56119888070.5, "c": 534.5, "t": 1741239000000, "v": 104799385, "h": 536, "l": 534.5, "o": 535 } ] } 2.4.4 响应字段解析 字段名 类型 说明 o number 该周期开盘价 h number 该周期最高价 l number 该周期最低价 c number 该周期收盘价 t number 该周期时间戳(毫秒级,UTC 时间) v number 该周期成交量 tu number 该周期成交金额 2.5 批量历史 K 线接口 支持同时获取多只股票的历史 K 线数据,减少请求次数,提升开发效率,参数及返回格式与单只 K 线接口兼容。 2.5.1 请求地址 https://api.itick.org/stock/klines 2.5.2 请求参数 参数名 类型 是否必填 说明 region string 是 市场标识,多只股票需属于同一市场 codes string 是 股票代码列表,用英文逗号分隔,如“700,9988” kType int 是 K 线周期类型,与单只 K 线接口一致 limit int 是 单只股票返回数据条数 2.5.3 调用代码示例(Python) import requests import time # 批量历史K线接口地址 url = "https://api.itick.org/stock/klines" headers = { "accept": "application/json", "token": "your_token" } # 请求参数:港股腾讯(700)和阿里(9988)的最近5条日K线 params = { "region": "HK", "codes": "700,9988", # 多只股票代码用英文逗号分隔 "kType": 8, "limit": 5 } try: response = requests.get(url, headers=headers, params=params) result = response.json() if result["code"] == 0: stock_klines = result["data"] # 遍历不同股票的K线数据 for stock_code, klines in stock_klines.items(): stock_name = "腾讯控股" if stock_code == "700" else "阿里巴巴" print(f"=== {stock_name}({stock_code})最近5条日K线 ===") for kline in klines: kline_date = time.strftime("%Y-%m-%d", time.localtime(kline["t"]/1000)) print(f"日期:{kline_date} | 开:{kline['o']} | 高:{kline['h']} | 低:{kline['l']} | 收:{kline['c']}") print("\n") except Exception as e: print("批量获取K线失败:", str(e)) 2.5.3 响应数据示例 { "code": 0, "msg": null, "data": { "700": [ { "tu": 56119888070.5, "c": 534.5, "t": 1741239000000, "v": 104799385, "h": 536, "l": 534.5, "o": 535 } ], "9988": [ { "tu": 75404622753.1, "c": 140.1, "t": 1741239000000, "v": 538602171, "h": 140.3, "l": 139.8, "o": 139.9 } ] } } 2.6 实时行情 WebSocket 接口 通过 WebSocket 协议实现行情数据推送,支持多只股票同时订阅,实时性优于 HTTP 轮询,适用于高频行情场景。 2.6.1 连接地址 wss://api.itick.org/stock 2.6.2 订阅参数 连接建立后需发送订阅请求,指定目标股票及数据类型: { "ac": "subscribe", "params": "AAPL$US,TSLA$US,601398$CN", "types": "depth,quote" } 参数名 说明 ac 操作类型,订阅填“subscribe” params 订阅股票列表,格式为“代码$市场”,多只用逗号分隔 types 订阅数据类型,支持“tick”(实时成交)、“quote”(实时报价)、“depth”(盘口) 2.6.3 调用代码示例(Python) 使用 websockets 库实现 WebSocket 连接,需提前安装:pip install websockets import asyncio import websockets import json # WebSocket连接地址 WS_URL = "wss://api.itick.org/stock" # 订阅请求数据 subscribe_msg = { "ac": "subscribe", "params": "AAPL$US,700$HK,601398$SZ", # 订阅美股苹果、港股腾讯、A股工行 "types": "tick,quote" # 订阅实时成交和实时报价 } async def subscribe_stock_data(): async with websockets.connect(WS_URL) as websocket: # 发送订阅请求 await websocket.send(json.dumps(subscribe_msg)) print("已发送订阅请求,等待行情数据推送...\n") # 循环接收推送数据 while True: response = await websocket.recv() # 解析响应数据 data = json.loads(response) if data["code"] == 1: tick_data = data["data"] stock_code = tick_data["s"] data_type = tick_data["type"] print(f"=== 股票:{stock_code} | 数据类型:{data_type} ===") if data_type == "tick": print(f"最新成交价:{tick_data['ld']}") print(f"成交量:{tick_data['v']}") print(f"成交时间:{tick_data['t']}") elif data_type == "quote": print(f"开盘价:{tick_data['o']} | 最高价:{tick_data['h']} | 最低价:{tick_data['l']}") print(f"最新价:{tick_data['ld']} | 成交金额:{tick_data['tu']}") print("-" * 50 + "\n") if __name__ == "__main__": try: # 运行异步WebSocket客户端 asyncio.run(subscribe_stock_data()) except KeyboardInterrupt: print("程序已终止") except Exception as e: print("WebSocket连接异常:", str(e)) 2.6.3 响应内容示例 实时 Tick 响应 { "code": 1, "data": { "s": "AAPL.US", "ld": 225.215, "v": 16742235, "t": 1731689407000, "type": "tick" } } 实时报价响应 { "code": 1, "data": { "s": "AAPL.US", "ld": 225.215, "o": 226.27, "h": 226.92, "l": 224.44, "t": 1731689407000, "v": 16742235, "tu": 3774688301.452, "ts": 0, "type": "quote" } } 三、接入注意事项 Token 有效性:登录官方网站获取专属 Token,避免因共用导致的访问限制。 请求频率限制:免费版 API 存在一定的请求频率限制(建议每秒不超过 5 次),高频请求需联系官方升级权限。 数据格式处理:时间戳字段为毫秒级 UTC 时间,需根据业务需求转换为本地时间;价格、金额等数值字段建议保留 2 位小数展示。 市场差异适配:不同市场的股票代码规则、交易时间及货币单位存在差异(如 A 股用人民币,港股用港币),需在应用中针对性适配。 异常处理:当响应 code 不为 0 时,可通过 msg 字段获取错误信息,建议实现重试机制(如网络超时)及降级策略(如无数据时展示缓存内容)。 四、常见问题 4.1 接口支持的 K 线周期有哪些? 目前 kType 参数支持多种周期,核心包括:1(1 分钟 K)、2(5 分钟 K)、3(15 分钟 K)、4(30 分钟 K)、5(60 分钟 K)、6(2 小时 K)、7(4 小时 K)、8(日 K)、9(周 K)、10(月 K),完整周期列表可参考 官方 API 文档。 4.2 能否同时订阅不同市场的股票? 支持,WebSocket 订阅时 params 参数中可包含多市场股票,只需按"代码$市场"格式正确填写即可,如"AAPL$US,700$HK,300750$CN"。 4.3 数据延迟情况如何? HTTP 接口数据延迟约 200 毫秒,WebSocket 接口延迟可低至 50 毫秒以内,满足多数实时行情场景需求。 GitHub https://github.com/itick-org
浏览297
评论2
收藏1