为了提升发现交易机会的概率,经过和对接的工作人员商议, 提出如下两个OpenAPI需求方案。
首先我们描述一下发现交易机会的基本步骤和当前的瓶颈:
1) 查看日K线; 2) 查看各种分钟K线; 通过价格成交量计算是一个潜在交易机会; 需要进一步3) 查看资金流入流出; 确认交易机会,开展交易;
步骤1) 2) 在订阅该标的后, 接口调用次数是不限制的; 问题出在步骤3)getCapitalFlow(获取资金流向, 分钟级) 和 getCapitalDistribution(获取资金分布) 每30秒调用30次, 这个就限制了我们发现潜在交易标的的概率; 就算我们设置K线3秒更新一次, 一个标的一分钟会更新20次, 那么1分钟60次的限额, 就限制了我们时时刻刻基本只能观察3只标的; 大大的约束了我们及时发现交易机会的能力。 为了能够更多的及时发现交易机会, 我们提议如下:
方案一, 提升查看资金流入流出的限流:
1.1) getCapitalFlow(获取资金流向, 分钟级) 和 getCapitalDistribution(获取资金分布)两个接口的限流去处, 限流策略和 获取实时 K 线(getKL) 一致,对于已订阅标的, 调用次数不限;
1.2) 获取资金再提供一个接口, 或者在getCapitalDistribution 补充一点数据, 就是超级大单、大单、小单的分割线, 多少金额算超级大单,多少算大单等;
1.3) 为了能够让大家更加迅速的建模, getCapitalFlow(获取资金流向, 分钟级) 和 getCapitalDistribution(获取资金分布) 要能够至少获取半年内的数据。 否则无法获取到历史数据,对于新入局的玩家,需要漫长的数据积累才能开展数据建模;
方案二, 提供完整Ticker数据:
2.1) getTicker(获取实时逐笔) 提供1天内的完整数据; 新增一个参数startTime开始时间(格式参考Ticker.time),避免在日内多次拉取时数据重复; 客户自行完成相关计算;
2.2)同1.2, 以便于客户自行计算的数据能够和API提供的getCapitalFlow(获取资金流向), 和 getCapitalDistribution(获取资金分布)配对上, 便于客户自行计算时采用增量计算,减少全量计算,达到实时计算的性能要求。
优缺点对比
|-------|------------------------------------------------------------------------|---------------------------------------------------------------|
| 比较因子 | 方案一, 提升查看资金流入流出的限流: | 方案二, 提供完整Ticker数据: |
| 容量压力 | 资金流数据和K线数据类似, 单位时间内是静态走缓存的数据,只要已订阅标的的数据缓存在OpenD客户端中, 接口调用多次,对服务端压力影响小; | Ticker 最大一天可达100多万条, 数据传输压力大; 通过增量计算的方式, 每次获取近一两分钟数据, 影响可以减少。 |
| 技术复杂度 | 资金流入流出单位时间内的偏静态数据,可以走缓存的 接口限流扩容; 补充日级别内的静态数据, 大小单分割线的输出 | 数据量较大,潜在的技术复杂度增加; 但是很多友商都提供这个基本数据 |