同花顺Python策略编辑器帮助文档

同花顺Python策略编辑器帮助文档


如何获取分时行情信息

<h4><strong>简要说明</strong></h4> <ul> <li>获取分时行情信息主要有两种方式: 1.使用ths_api包中提供的get_quote函数:直接主动获取某股票的分时行情数据; 2.使用ths_api包中提供的reg_quote函数:订阅某股票的分时行情数据后,每次行情数据有更新后,由行情服务器自动推送更新的数据,程序被动接收。</li> </ul> <hr /> <h4><strong>1.用get_quote获取指定代码列表的最新分时行情数据</strong></h4> <p><strong>调用格式</strong></p> <pre><code>get_quote(StockCode) ''' @param StockCode 证券代码列表,支持str、list、set格式,一次最多500个代码,2s内只能执行1次。 @return 分时行情数据结构dict,格式和reg_quote的返回一致 @example from ths_api import * api = hq.ths_hq_api() quote = api.get_quote('300033') #quote = api.get_quote('300033, 600000') #quote = api.get_quote(['300033', '600000', '000001']) #quote = api.get_quote(('300033', '600000', '000001', '000725')) print(quote) #print(quote['300033']['price']) # 打印现价 '''</code></pre> <p><strong>示例代码</strong></p> <pre><code>#!/usr/bin/env python # -*- coding: utf-8 -*- #例1:用get_quote获取一次某持仓股的最新分时行情数据,计算当前该股持仓市值: from ths_api import * code = '300033' api = hq.ths_hq_api() #连接行情服务器 quote = api.get_quote(code) #获取一次股票的最新分时行情数据 print('分时行情数据各字段:', '\n', quote) price = quote[code]['price'] #获取该股票最新分时行情数据中的现价字段 print('最新的分时行情现价:', price) sjsl = xd.g_position[code]['sjsl'] #获取该持仓股的持仓实际数量 dqsz = sjsl*price print('300033持仓实际数量:', sjsl, '\n', '300033当前持仓市值:', dqsz)</code></pre> <p><strong>运行结果</strong></p> <p>程序输出如下。其中,为了便于阅读,分时行情数据各字段的输出用json格式做了替换。</p> <pre><code>分时行情数据各字段: { '300033': { 'StockCode': '300033', # 股票代码 'MarketId': '33', # 市场ID 'open': 86.38, # 今日开盘价 'high': 87.58, # 今日最高价 'low': 83.3, # 今日最低价 'pre_close': 86.59, # 昨日收盘价 'price': 83.43, # 现价 'b1_p': 83.42, # 买一价 'b1_v': 25100.0, # 买一量 'b2_p': 83.41, # 买二价 'b2_v': 5000.0, # 买二量 'b3_p': 83.4, # 买三价 'b3_v': 13800.0, # 买三量 'b4_p': 83.39, # 买四价 'b4_v': 7600.0, # 买四量 'b5_p': 83.38, # 买五价 'b5_v': 10450.0, # 买五量 'a1_p': 83.43, # 卖一价 'a1_v': 8700.0, # 卖一量 'a2_p': 83.44, # 卖二价 'a2_v': 2300.0, # 卖二量 'a3_v': 2188.0, # 卖三量 'a3_p': 83.45, # 卖三价 'a4_p': 83.46, # 卖四价 'a4_v': 7300.0, # 卖四量 'a5_p': 83.47, # 卖五价 'a5_v': 100.0, # 卖五量 'zt_p': 95.25, # 涨停价 'dt_p': 77.93, # 跌停价 'ask': 83.42, # 买一价 'bid': 83.43, # 卖一价 'zf': -0.036494, # 涨幅 'zs': 0.0, # 涨速(5min涨跌幅) 'zd': -0.0316, # 涨跌 'zsz': 44851968000.0, # 总市值 'zgb': 537600000.0, # 总股本 'syl_j': 70.7518, # 市盈率-静 'syl_d': 111.6941 # 市盈率-动 'ltz': 22050745000.0, # 流通值 'ltg': 264302350.0, # 流通股 'amount': 721906670.0 # 成交金额 'amount_count': 25527.0, # 成交次数 'volume': 8486188.0, # 成交量 'wpcjl': 3649478.0, # 外盘成交量 'npcjl': 4265493.0, # 内盘成交量 'np': 4836710.0, # 内盘 'lb': 0.74, # 量比 'hs': 0.032108, # 换手 'DDE': -0.2533, # 大单净量 'WAITBUYCOUNT2': 919656.0, # 被动买入大单量 'BIGSELLMONEY3': 150231130.0, # 主动卖出中单金额 'WAITBUYMONEY3': 134996420.0, # 被动买入中单金额 'WAITBUYMONEY2': 78239066.0, # 被动买入大单金额 'WAITSELLMONEY2': 62990306.0, # 被动卖出大单金额 'WAITBUYCOUNT3': 1587830.0, # 被动买入中单量 'BIGBUYCOUNT1': 503507.0, # 主动买入特大单量 'BIGBUYMONEY2': 49370877.0, # 主动买入大单金额 'BIGBUYMONEY1': 42944626.0, # 主动买入特大单金额 'WAITBUYCOUNT1': 897308.0, # 被动买入特大单量 'BIGSELLMONEY4': 91823222.0, # 主动卖出小单金额 'WAITSELLCOUNT2': 741336.0, # 被动卖出大单量 'BIGBUYCOUNT2': 579857.0, # 主动买入大单量 'WAITBUYMONEY1': 76418034.0, # 被动买入特大单金额 'BIGBUYMONEY3': 101441444.0, # 主动买入中单金额 'BIGBUYCOUNT4': 1224179.0, # 主动买入小单量 'BIGSELLCOUNT3': 1764849.0, # 主动卖出中单量 'BIGSELLMONEY1': 94519539.0, # 主动卖出特大单金额 'BIGBUYMONEY4': 104114862.0, # 主动买入小单金额 'WAITSELLMONEY1': 58133983.0, # 被动卖出特大单金额 'BIGSELLCOUNT2': 1028392.0, # 主动卖出大单量 'WAITSELLCOUNT3': 1237623.0, # 被动卖出中单量 'BIGSELLCOUNT4': 1077249.0, # 主动卖出小单量 'WAITSELLCOUNT1': 684108.0, # 被动卖出特大单量 'BIGSELLCOUNT1': 1116038.0, # 主动卖出特大单量 'WAITSELLMONEY3': 105412918.0, # 被动卖出中单金额 'BIGSELLMONEY2': 87460998.0, # 主动卖出大单金额 'BIGBUYCOUNT3': 1192117.0, # 主动买入中单量 'bdzs': 'E0 ', # 标的指数或股票代码 } } 最新的分时行情现价: 83.43 300033持仓实际数量: 1000 300033当前持仓市值: 83430.0 </code></pre> <hr /> <h4><strong>2.用reg_quote订阅指定代码列表的分时行情数据</strong></h4> <p><strong>调用格式</strong></p> <pre><code>reg_quote(StockCode) ''' @param StockCode 证券代码列表,支持str、list、set格式,最多订阅500个 @return 返回实时行情数据结构引用,是个dict,格式参考下例的输出,其内容在wait_update后更新 '''</code></pre> <p><strong>示例代码</strong></p> <pre><code>#!/usr/bin/env python # -*- coding: utf-8 -*- #例2:用reg_quote订阅某股票的分时行情数据,当分时行情有更新时,获取服务器推送的新数据,并判断当现价大于15.31时,以现价买入000001平安银行1000股: from ths_api import * code = '000001' api = hq.ths_hq_api() quote = api.reg_quote(code) #订阅分时行情数据 while True: api.wait_update() #等待订阅数据更新 price = quote[code]['price'] #获取code的最近一个分时行情数据的现价 if price &gt;= 15.31: xd.cmd('buy %s zxjg 1000' % code) break </code></pre> <p>程序用reg_quote函数订阅股票的分时行情数据,并通过在循环中使用wait_update,每次该股票有行情更新后,将最新的行情数据赋值给quote。(盘后调用该函数,也需要有wait_update语句,才能获取到盘尾的最后一个分时行情数据。)之后对价格进行判断,满足条件时执行委托,结束循环。</p> <p><strong>运行结果</strong></p> <p>程序输出如下(已去除部分行情更新日志)</p> <pre><code>tips=send buy code:000001 price:15.59 amount:1000 tips=您的买入委托已成功提交,合同编号:1277636241。</code></pre>

页面列表

ITEM_HTML