听说最近因为其他项目占用,OpenAPI的投入减少了, 减少归减少,发展慢一点也要发展啊, 现向你提出如下建议, 是我们富途量化用户期盼了1年的功能,已和产品技术等交流过,还望安排,慢一点也没关系,只要能安排上。
为了提升发现交易机会的概率,经过和对接的工作人员商议, 提出如下两个OpenAPI需求方案。
首先我们描述一下发现交易机会的基本步骤和当前的瓶颈:
1) 查看日K线; 2) 查看各种分钟K线; 通过价格成交量计算是一个潜在交易机会; 需要进一步3) 查看资金流入流出; 确认交易机会,开展交易;
步骤1) 2) 在订阅该标的后, 接口调用次数是不限制的; 问题出在步骤3)getCapitalFlow(获取资金流向, 分钟级) 和 getCapitalDistribution(获取资金分布) 每30秒调用30次, 这个就限制了我们发现潜在交易标的的概率; 就算我们设置K线3秒更新一次, 一个标的一分钟会更新20次, 那么1分钟60次的限额, 就限制了我们时时刻刻基本只能观察3只标的; 大大的约束了我们及时发现交易机会的能力。本来还可以通过getTicker来获取逐笔自行计算,可是因为不知道无法知道大单小单的分割线,只能获取所有ticker才方便自行计算。 为了能够更多的及时发现交易机会, 我们提议如下, 两个方案二选一或者都实现也行。
方案一, 提升查看资金流入流出的限流:
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多万条, 数据传输压力大; 通过增量计算的方式, 每次获取近一两分钟数据, 影响可以减少。 |
技术复杂度 | 资金流入流出单位时间内的偏静态数据,可以走缓存的 接口限流扩容; 补充日级别内的静态数据, 大小单分割线的输出 | 数据量较大,潜在的技术复杂度增加; 但是很多友商都提供这个基本数据 |
数据精度和完整度提升
有非常大的概率出现分钟级的成交量叠加和日成交量相差5%及以上, 一般是分钟级求和数值更小, 且分钟级成交量已包含盘前和盘后成交量,但是依然远小于日成交量。 请排查并提升数据精度; 量化的本质是要考数学模型的精确啊, 输入数据不精确,也很难有好结果啊。
getCapitalDistribution 接口, 请补充两个字段, 中性盘成交额,全天成交总额;
因为可能会和日K或者分钟K求和对不上的, 所以还是需要把完整数据提供一下,一遍核对和发现问题;
getCapitalFlow 接口, 也请补充上两个字段, 中性盘成交量额(即没有作为资金流入流出计算的那部分), 成交额;
也是方便核对, 确保数据的完整性和准确性。