-
Notifications
You must be signed in to change notification settings - Fork 43
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
59851ea
commit 15f8ebd
Showing
16 changed files
with
367 additions
and
725 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,96 @@ | ||
.. _wsapi_general: | ||
.. _mdhis: | ||
|
||
K线数据及历史tick数据 | ||
图表数据(K线数据及历史tick数据) | ||
================================================== | ||
|
||
获取K线及Tick线数据 | ||
请求订阅图表数据 | ||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
扩展进程可以发送 :ref:`set_chart` 来请求订阅图表数据, 需要注意几点: | ||
终端通过发送 set_chart 包实现订阅图表数据 | ||
|
||
.. code-block:: javascript | ||
* 合约代码必须带交易所代码, 合约代码及交易所代码都是大小写敏感的 | ||
* 主进程给扩展进程推送的数据, 不保证只含有订阅的合约 | ||
{ | ||
"aid": "set_chart", // 必填, 请求图表数据 | ||
"chart_id": "abcd123", // 必填, 图表id, 服务器只会维护每个id收到的最后一个请求的数据 | ||
"ins_list": "SHFE.cu1701", // 必填, 填空表示删除该图表,多个合约以逗号分割,第一个合约是主合约,所有id都是以主合约为准 | ||
"duration": 180000000000, // 必填, 周期,单位ns, tick:0, 日线: 3600 * 24 * 1000 * 1000 * 1000 | ||
"view_width": 500, // 必填, 图表宽度, 请求最新N个数据,并保持滚动(新K线生成会移动图表) | ||
} | ||
需要注意几点: | ||
|
||
* chart_id 为一个任意字符串,当多次发送的set_chart包中的chart_id重复时,后一次的请求将覆盖前一次。chart_id不相同则视为不同的订阅 | ||
* 历史数据服务是订阅式而非查询式的。只要发送过一次 set_chart 请求,每当行情变化时,都会通过 rtn_data 包推送新的K线,不需要多次发送 set_chart 包 | ||
|
||
|
||
图表数据同步 | ||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
图表数据通过 `rtn_data` 包的 klines 字段和 ticks 字段进行差分发送, 如下所示: | ||
|
||
.. code-block:: javascript | ||
{ | ||
"aid": "rtn_data", //数据推送 | ||
"data": [ //diff数据数组, 一次推送中可能含有多个数据包 | ||
{ | ||
"klines": { //K线数据 | ||
"SHFE.cu1601": { //合约代码 | ||
180000000000: { //K线周期, 单位为纳秒, 180000000000纳秒 = 3分钟 | ||
"last_id": 3435, //整个序列最后一个记录的序号 | ||
"data": { | ||
3384: { | ||
"datetime": 192837400000000, //UnixNano 北京时间,如果是日线,则是交易日的 UnixNano | ||
"open": 3432.33, //开 | ||
"high": 3432.33, //高 | ||
"low": 3432.33, //低 | ||
"close": 3432.33, //收 | ||
"volume": 2, //成交量 | ||
"open_oi": 1632, //起始持仓量 | ||
"close_oi": 1621, //结束持仓量 | ||
}, | ||
3385: { | ||
... | ||
}, | ||
... | ||
}, | ||
"binding": { | ||
"SHFE.cu1709": { | ||
3384: 2900, //本合约K线所对应的另一个合约的K线号 | ||
3385: 2950, | ||
... | ||
} | ||
} | ||
}, | ||
... | ||
}, | ||
... | ||
}, | ||
"ticks": { | ||
"SHFE.cu1601": { | ||
"last_id": 3550, //整个序列最后一个元素的编号 | ||
"data": { | ||
3384: { | ||
"datetime": 1928374000000000, //UnixNano 北京时间 | ||
"trading_day": 1928374000000000, //交易日的UnixNano 北京时间 | ||
"last_price": 3432.33, //最新价 | ||
"highest": 3452.33, //最高价 | ||
"lowest": 3402.33, //最低价 | ||
"bid_price1": 3432.2, //买一价 | ||
"ask_price1": 3432.4, //卖一价 | ||
"bid_volume1": 1, //买一量 | ||
"ask_volume1": 2, //卖一量 | ||
"volume": 200, //成交量 | ||
"open_interest": 1621, //持仓量 | ||
}, | ||
3385: { | ||
... | ||
}, | ||
... | ||
} | ||
}, | ||
... | ||
}, | ||
] | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,72 @@ | ||
.. _wsapi_general: | ||
.. _quote: | ||
|
||
行情报价数据 | ||
================================================== | ||
|
||
请求订阅行情报价 | ||
-------------------------------------------------- | ||
终端通过发送 subscribe_quote 包实现订阅行情报价 | ||
|
||
.. code-block:: javascript | ||
从主进程接收业务数据 | ||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
当从主进程向扩展进程发送数据时, 与其它很多协议不同, 天勤的通讯协议并不会按照 "类别" 或 "请求", 将数据分解为多个包发送. | ||
相反, 天勤只使用一种包 :ref:`rtn_data`, 来将主程序内存中的全部数据 (实时行情, 历史行情, 交易数据等) 送往扩展进程. | ||
为减少数据量, 主程序每次发送 :ref:`rtn_data` 时, 通常只包含与前次相比有差异的数据. ( **注意: 协议并不承诺无差异的数据一定不会发送** ) | ||
{ | ||
"aid": "subscribe_quote", //必填, 请求订阅实时报价数据 | ||
"ins_list": "SHFE.cu1612,CFFEX.IF1701", //必填, 需要订阅的合约列表,以逗号分隔 | ||
} | ||
基于这一协议, 我们强烈建议 **扩展进程应设法维护一个完整的业务信息存储区** (在内存,数据库或文件中), 并在每次收到 :ref:`rtn_data` 时更新此存储区中的内容. | ||
扩展进程中的业务代码, 应从这一存储区中获取业务信息, 而 **不要直接让业务逻辑处理接收到的每个:ref:`rtn_data`包** | ||
|
||
|
||
请求实时行情数据 | ||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
扩展进程可以发送 :ref:`subscribe_quote` 来请求订阅行情数据, 需要注意几点: | ||
需要注意几点: | ||
|
||
* 合约代码必须带交易所代码, 例如cu1801应该写作 SHFE.cu1801. 目前支持的交易所为 CFFEX, SHFE, DCE, CZCE, INE | ||
* 用户自定义的组合, 交易所代码都为 USER | ||
* 合约代码及交易所代码都是大小写敏感的 | ||
* 主进程给扩展进程推送的实时行情, 不保证只含有订阅的合约, 未订阅合约的行情也可能在数据包中出现 | ||
* 每次发送 subscribe_quote 时,应在 ins_list 中列出所有需要订阅的合约代码。多次发送 subscribe_quote,后一次的订阅列表会覆盖前一次的 | ||
|
||
|
||
行情报价数据同步 | ||
-------------------------------------------------- | ||
行情报价数据通过 `rtn_data` 包的 quotes 字段进行差分发送, 如下所示: | ||
|
||
.. code-block:: javascript | ||
{ | ||
"aid": "rtn_data", //数据推送 | ||
"data": [ //diff数据数组, 一次推送中可能含有多个数据包 | ||
{ | ||
"quotes": { //实时行情数据 | ||
"SHFE.cu1612": { | ||
"instrument_id": "SHFE.cu1612", //合约代码 | ||
"volume_multiple": 300, //合约乘数 | ||
"price_tick": 0.2, //合约价格单位 | ||
"price_decs": 1, //合约价格小数位数 | ||
"max_market_order_volume": 1000, //市价单最大下单手数 | ||
"min_market_order_volume": 1, //市价单最小下单手数 | ||
"max_limit_order_volume": 1000, //限价单最大下单手数 | ||
"min_limit_order_volume": 1, //限价单最小下单手数 | ||
"margin": 4480.0, //每手保证金 | ||
"commission": 2.5, //每手手续费 | ||
"datetime": "2016-12-30 13:21:32.500000", //时间 | ||
"ask_price1": 36590.0, //卖价 | ||
"ask_volume1": 121, //卖量 | ||
"bid_price1": 36580.0, //买价 | ||
"bid_volume1": 3, //买量 | ||
"last_price": 36580.0, //最新价 | ||
"highest": 36580.0, //最高价 | ||
"lowest": 36580.0, //最低价 | ||
"amount": 213445312.5, //成交额 | ||
"volume": 23344, //成交量 | ||
"open_interest": 23344, //持仓量 | ||
"pre_open_interest": 23344, //昨持 | ||
"pre_close": 36170.0, //昨收 | ||
"open": 36270.0, //今开 | ||
"close": 36270.0, //收盘 | ||
"lower_limit": 34160.0, //跌停 | ||
"upper_limit": 38530.0, //涨停 | ||
"average": 36270.1, //均价 | ||
"pre_settlement": 36270.0, //昨结 | ||
"settlement": 36270.0, //结算价 | ||
}, | ||
}, | ||
] | ||
} | ||
} |
Oops, something went wrong.