掘金社区
掘金SDK v2.8正式发布。本次发布包含一系列重量级功能更新,建议所有用户升级。
- v2.8重写了回测模型,解除了原来回测模式下的一些api访问限制,彻底统一了策略回测、仿真与实盘模型,策略一行代码不用修改就可以在不同模式下运行;
- 数据服务内置了bar数据自动变频功能,策略在查询、回测和模拟行情中可以使用任意频度的历史行情bar数据;
- 重新设计了模拟行情(MODE=3),模拟行情将根据策略订阅的代码自动地7*24小时不间断按需推送数据;
- 新增了一组order查询以及交易日历查询api;
- 正式支持Python3.5。
v2.8需要与掘金终端v2.2以上版本协同工作,终端在启动后会自动完成升级,当然,您也可以在这里下载最新终端安装包。详细发布内容如下:
<!--more myquant-->
策略回测模型与仿真、实盘模型完全统一
新设计的回测模型采用流式计算模型,在回测过程中同步计算策略的资金、持仓以及各项绩效指标数据,并触发对应的事件,策略回测过程中可以查询这些数据,从而在模型上与仿真和实盘统一了起来。
- 解除资金、持仓、绩效指标(<code>get_cash,get_position,get_indicator</code>)等函数的调用限制,现在这些函数将正确返回数据
- 自动触发委托状态、成交回报、错误等事件(<code>on_order_status,on_execrpt,on_error</code>)
- 增加回测进度通知机制,回测进度将实时更新在掘金终端
- 回测参数增加<code>基准代码</code>参数,方便策略的绩效与基准绩效对比,默认使用<code>沪深300</code>
- 新增回测结束事件,SDK在回测结束时触发改事件,并返回回测绩效数据
<pre><code class="language-text" data-lang="text">strategy.ini 配置文件
;基准代码
bench_symbol=SHSE.000300
</code></pre>
<pre><code class="language-text" data-lang="text"># 回测结束事件
on_backtest_finish(indicator)
</code></pre>
新增数据变频服务,支持访问任意频度的bar
变频数据根据不同的策略数据请求,自动判断是使用原始数据,还是使用变频数据,并在后台处理好交易时段、夜盘、跨天、跨周末等复杂逻辑。无缝兼容对历史行情、回测行情、模拟行情变频
使用一分钟以内频度的bar数据,自动通过tick数据合成,比如订阅
<pre><code class="language-text" data-lang="text">CFFEX.IF1603.bar.3 // 3s bar
CFFEX.IF1603.bar.5 // 5s bar
CFFEX.IF1603.bar.7 // 7s bar
CFFEX.IF1603.bar.19 // 19s bar
SHSE.600000.bar.15 // 15s bar
SHSE.600000.bar.30 // 30s bar
SHSE.600000.bar.45 // 45s bar
SHSE.600000.bar.55 // 55s bar
SHSE.600000.bar.60 // 60s bar
</code></pre>
使用一分钟以上的bar数据,自动通过一分钟bar数据合成,比如订阅
<pre><code class="language-text" data-lang="text">CFFEX.IF1603.bar.120 // 2 minutes bar
CFFEX.IF1603.bar.180 // 3 minutes bar
CFFEX.IF1603.bar.240 // 4 minutes bar
CFFEX.IF1603.bar.3600 // 60 minutes bar
SHSE.600000.bar.900 // 15 minutes bar
SHSE.600000.bar.1800 // 30 minutes bar
</code></pre>
重新设计模拟行情(MODE=3)模拟行情,按订阅的数据推送
模拟行情是7*24推送,方便非交易时段仍然能驱动策略作调试工作,从v2.8开始模拟行情将根据策略订阅的代码进行推送数据。
新增一组order与交易日历查询API
以下以Python为例说明,其他语言API详见对应的API文档
<pre><code class="language-python" data-lang="python"># 查询日内未结委托
get_unfinished_orders()
查询指定时段的全部委托
get_orders(start_time, end_time)
查询指定时段、指定symbol的全部委托
get_orders_by_symbol(exchange, sec_id, start_time, end_time)
查询指定交易所的交易日历
get_calendar(exchange, start_date, end_date)
</code></pre>
支持Python3.5
正式支持Python3.5版本。Python3.4版本SDK不再支持。
各种语言SDK具体动态如下:
更详细情况请参考sdk的文档和示例,以及sdk中的changelog。新的SDK下载
这是一个已从原 http://www.myquant.cn/news/2016/03/16/sdk-2-8-0-release/ 中分离的主题