土耳其股票API、BIST(伊斯坦布尔证券交易所)实时行情、土耳其历史K线数据——由于里拉汇率这几年波动比较大,土耳其股市反而成了不少全球宏观策略和新兴市场基金关注的标的池。这篇教程会比其他市场教程写得更细一点,把KCHOL(Koç Holding)、EREGL(Erdemir钢铁)、THYAO(土耳其航空)、GARAN(Garanti银行)这几只权重股的多周期K线获取方式和WebSocket实时订阅都过一遍。

pip install itick-sdk去itick.org注册账号,登录后台拿token。土耳其市场在itick这边的region代码是TR。
from itick.sdk import Client
token = "your_api_token"
client = Client(token)土耳其股市波动性相对大一些,做技术分析的时候经常需要同时看多个周期的K线做交叉验证,这里把8种周期都取一遍做个对比示范:
# THYAO 土耳其航空,多周期K线
periods = {
1: "1分钟",
2: "5分钟",
3: "15分钟",
4: "30分钟",
5: "1小时",
8: "1天",
9: "1周",
10: "1月",
}
for k_type, label in periods.items():
kline = client.get_stock_kline("TR", "THYAO", k_type, 5)
print(f"{label}K线: {kline}")这段代码把THYAO这只票从1分钟到月线的K线都各拿了5根,方便对比不同周期下的走势形态是否一致。分钟级K线通常用来做短线择时验证,日线和周线更适合判断中长期趋势,这个多周期交叉验证的思路,其实放在任何一个itick支持的市场都适用,不只是土耳其。
# 一次性拉取多只土耳其权重股的日K线
codes = ["KCHOL", "EREGL", "THYAO", "GARAN"]
klines_batch = client.get_stock_klines("TR", codes, 8, 30)
print("批量K线结果:", klines_batch)批量接口对做板块轮动分析或者多标的对比图表的场景特别有用,不用为每只股票单独发一次请求,节约调用次数(尤其是免费套餐每分钟只有5次调用限额的情况下,批量接口基本是刚需)。
import time
def on_message(msg):
print("推送:", msg)
def on_error(err):
print("错误:", err)
client.set_message_handler(on_message)
client.set_error_handler(on_error)
client.connect_stock_websocket()
# 四只权重股,同时订阅报价、盘口、逐笔成交三种类型
client.send_websocket_message(
'{"ac":"subscribe","params":"KCHOL$TR,EREGL$TR,THYAO$TR,GARAN$TR","types":"quote,depth,tick"}'
)
time.sleep(30)
print("连接状态:", client.is_websocket_connected())
client.close_websocket()三种数据类型同时订阅的时候,服务端会分别推送三种不同结构的消息,用返回数据里的type字段(quote/depth/tick)来区分处理逻辑,写消息处理函数的时候建议按类型分发:
def on_message(msg):
import json
data = json.loads(msg) if isinstance(msg, str) else msg
msg_type = data.get("data", {}).get("type")
if msg_type == "quote":
handle_quote(data)
elif msg_type == "depth":
handle_depth(data)
elif msg_type == "tick":
handle_tick(data)
def handle_quote(data):
print("报价更新:", data["data"]["ld"])
def handle_depth(data):
print("盘口更新,买一价:", data["data"]["b"][0]["p"])
def handle_tick(data):
print("成交:", data["data"]["ld"], "方向:", data["data"].get("d"))土耳其市场因为波动性和汇率关联性,在数据消费场景上比其他市场复杂一些,itick这边的接口本身调用逻辑跟其他30多个市场是完全一致的,region=TR加上BIST的股票代码即可。多周期K线交叉验证和批量接口这两个技巧,其实可以直接套用到你正在跟踪的任何其他市场上。免费套餐先跑通,需要更高频率和更多标的的时候再考虑升级付费套餐。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。