掘金社区
掘金SDK发布v2.7.0版。新版SDK增加了一批基本面数据和交易接口API:基础数据方面,支持查询证券代码、指标成分股、财务指标、股本指标和市场指标;交易接口方面,支持查询与策略关联的交易账号、交易账号的资金数据、交易账号的持仓数据。交易部分的API需要与终端2.1.2以上版本配合使用。另外,对查询最近n笔历史行情的接口作了增强,支持提起指定时间点前n笔历史数据。详细内容如下:
<!--more myquant-->
[新增]查询证券交易代码和获取成分股API
数据定义
<pre><code class="language-text" data-lang="text">交易代码数据类型
class Instrument(object):
def __init__(self):
self.symbol = '' ## 交易代码
self.sec_type = 0 ## 代码类型
self.sec_name = '' ## 代码名称
self.multiplier = 0.0 ## 合约乘数
self.margin_ratio = 0.0 ## 保证金比率
self.price_tick = 0.0 ## 价格最小变动单位
self.upper_limit = 0.0 ## 当天涨停板
self.lower_limit = 0.0 ## 当天跌停板
self.is_active = 0 ## 当天是否交易
成份股数据类型
class Constituent(object):
def __init__(self):
self.symbol = '' ## 交易代码
self.weight = 0.0 ## 代码权重
</code></pre>
使用示例
<pre><code class="language-python" data-lang="python">#获取上交所所有可交易股票代码
get_instruments('SHSE', 1, 1)
#获取沪银的的全部合约代码
get_instruments_by_name('ag')
#获取上证指数的成分股
get_constituents('SHSE.000001')
</code></pre>
[新增]财务指标API
数据定义
<pre><code class="language-text" data-lang="text">财务指标
class FinancialIndex(object):
def __init__(self):
self.symbol = '' #股票代码
self.pub_date = '' #公告日期
self.eps = 0.0 #每股收益
self.bvps = 0.0 #每股净资产
self.cfps = 0.0 #每股现金流
self.afps = 0.0 #每股公积金
self.total_asset = 0.0 #总资产
self.current_asset = 0.0 #流动资产
self.fixed_asset = 0.0 #固定资产
self.liability = 0.0 #负债合计
self.current_liability = 0.0 #流动负债
self.longterm_liability = 0.0 #长期负债
self.equity = 0.0 #所有者权益
self.income = 0.0 #主营业务收入
self.operating_profit = 0.0 #主营业务利润
self.net_profit = 0.0 #净利润
</code></pre>
使用示例
<pre><code class="language-python" data-lang="python">#获取浦发银行(SHSE.600000)2013-2015的财务指标
get_financial_index('SHSE.600000', '2013-01-01 00:00:00', '2015-12-31 00:00:00')
#获取浦发银行(SHSE.600000)和平安银行(SZSE.000001)最新的财务指标
get_last_financial_index('SHSE.600000,SZSE.000001')
#获取平安银行(SZSE.000001)最新10笔财务指标
get_last_n_financial_index('SHSE.000001', 10)
</code></pre>
[新增]股本指标API
数据定义
<pre><code class="language-text" data-lang="text">股本指标
class ShareIndex(Object):
def __init__(self):
self.symbol = '' #股票代码
self.pub_date = '' #公告日期
self.total_share = 0.0 #总股本
self.flow_a_share = 0.0 #流通A股
self.nonflow_a_share = 0.0 #限售流通A股
</code></pre>
使用示例
<pre><code class="language-python" data-lang="python">#获取浦发银行(SHSE.600000)[2016-01-01-2016-01-10]股本指标
get_share_index('SHSE.600000', '2016-01-01 00:00:00', '2016-01-10 00:00:00')
#获取浦发银行(SHSE.600000)和平安银行(SZSE.000001)最新的股本指标
get_last_share_index('SHSE.600000,SZSE.000001')
#获取平安银行(SZSE.000001)最新10笔股本指标
get_last_n_share_index('SHSE.000001', 10)
</code></pre>
[新增]市场指标API
数据定义
<pre><code class="language-text" data-lang="text">市场指标
class MarketIndex(Object):
def __init__(self):
self.symbol = '' #股票代码
self.pub_date = '' #公告日期
self.pe_ratio = 0.0 #市盈率
self.pb_ratio = 0.0 #市净率
self.ps_ratio = 0.0 #市销率
self.market_value = 0.0 #市值
self.market_value_flow = 0.0 #流通市值
</code></pre>
使用示例
<pre><code class="language-python" data-lang="python">#获取浦发银行(SHSE.600000)[2016-01-01-2016-01-10]的市场指标
get_market_index('SHSE.600000', '2016-01-01 00:00:00', '2016-01-10 00:00:00')
#获取浦发银行(SHSE.600000)和平安银行(SZSE.000001)最新的市场指标
get_last_market_index('SHSE.600000,SZSE.000001')
#获取平安银行(SZSE.000001)最新10笔市场指标
get_last_n_market_index('SHSE.000001', 10)
</code></pre>
[新增]获取柜台交易账号信息API
数据定义
<pre><code class="language-text" data-lang="text">柜台账户
class BrokerAccount(object):
def __init__(self):
self.account_id = '' # 柜台账号ID
self.username = '' # 柜台账号
self.permissible = 0 # 允许交易
self.status = 0 # 账号当前状态
</code></pre>
使用示例
<pre><code class="language-python" data-lang="python">#获取策略关联的账户列表
get_broker_accounts()
#获取账户资金列表
get_broker_cash()
#获取账户持仓列表
get_broker_positions()
</code></pre>
[增强]可以获取截止到任何时间点的最新N笔行情
使用示例
<pre><code class="language-python" data-lang="python">#获取SZSE.000001截止到2013-10-21 00:00:00最新的10笔tick
get_last_n_ticks('SZSE.000001', 10, '2013-10-21 00:00:00')
#获取SZSE.000001截止到2013-10-21 00:00:00最新的10笔1分钟bar
get_last_n_bars('SZSE.000001', 60, 10,'2013-10-21 00:00:00')
#获取SZSE.000001截止到2013-10-21最新的10笔日线数据
get_last_n_dailybars('SZSE.000001', 10, '2013-10-21')
</code></pre>
各种语言SDK具体动态如下:
更详细情况请参考sdk的文档和示例,以及sdk中的changelog。新的SDK下载
这是一个已从原 http://www.myquant.cn/news/2016/01/13/sdk-2-7-0-release/ 中分离的主题
-
python3 sdk 能升级到3.5吗?
-
python 3.5 依赖vs 2015,改动大,需要一些时间准备,这个版本来不及了。计划下一个sdk版本支持
-
last_days=gmsdk.md.get_last_n_dailybars('CZCE.RM605', 10, '2015-07-21')
期货的好像不管end_time多少,返回的bars都一样。 -
股票也一样,你那个例子返回的是当前时间往前推10天的bar,跟end_time毫无关系。
-
last_n_tick,last_n_bar 需要日期时间格式
last_n_dailybar 我们扩充一下,同时支持日期时间与日期格式。 -
使用Gmsdk-2.7.0-py2-x64-linux版本中的test_md_live.py例子获取实时数据,无论是使用demo的账号还是自己的账号,初始化返回成功,但后续无论是bar,还是tick均返回“3000,数据服务连接失败”。哪出问题了?