基于JavaScript的跨平台指标策略编辑系统

78 阅读4分钟

1 背景目标

行情线图中的指标是用于分析市场价格动态、预测未来价格走势的工具,对帮助用户识别趋势、寻找买卖信号和做出交易决策有重要作用。 随着客户基数的增长和市场行情的不断变化,客户对指标的需求日益增加,新增指标的诉求越来越多。

因此,本方案将 打造一个统一的指标策略编辑系统,利用JavaScript的强大跨平台能力,在iOS、Android和H5等多平台上实现一致的指标计算与展示功能,并支持算法逻辑的动态更新。 通过该方案:

  1. 将提升指标开发的可复用性,降低开发成本;
  2. 提升指标算法从设计到开发、到上线的一致性,保证多端效果一致;
  3. 提高动态性,避免原生硬编码,实现算法的动态下发和更新;
  4. 提升投产的及时性,方便业务侧快速产出指标策略;

2 核心功能

2.1 介绍

该指标编辑系统的核心功能,是基于JavaScript实现一个算法引擎。通过编辑算法代码,结合输入的行情数据展开计算,输出可渲染的格式化的json数据,再下发给各个应用系统,由各端app进行图形绘制。借助JavaScript语言在各个原生系统上的通用性,可以在各系统实现一个JavaScript虚拟机,从而进行算法逻辑的执行。同时,由于JavaScript脚本的动态性,可以实现算法代码的动态下发和更新。

核心功能:

整体架构:

  • 通用指标编辑模块:负责指标的计算,输出指标展示数据。各平台在自身系统的JavaScript执行环境中使用。

    • 指标编辑器:执行指标算法,将行情数据计算为可展示的指标线图(点、线、柱图等)。
    • 行情数据:获取行情数据(K线数据),转化为指标编辑器可用的数据格式。
  • H5指标开发调试页面:提供了一个基于Web的开发环境,便于开发者或业务分析师快速迭代和测试新的指标算法。

  • 各平台指标线图:各个系统的APP中,实现指标绘制。

    • JavaScript引擎:各平台需支持提供JavaScript执行环境。
    • 指标数据解析器:格式化本地行情数据,使用通用指标编辑模块执行指标计算,对计算结果进行解析和转化,转化为各平台线图库支持的可渲染数据。
    • 行情线图:各平台用可渲染数据绘制指标线图,提供交互功能。

2.2 核心功能预览

  1. 开发者在H5指标开发平台上,进行指标策略开发和测试。
    1. 拉取或导入行情数据
    2. 输入算法代码,开发调试
    3. 输出开发完成的算法代码

  1. 下发指标算法到各端APP,实时计算指标数据并展示。
    1. 载入算法代码到本地指标计算器
    2. 载入实时行情数据
    3. 计算并输出图形JSON
    4. 依据图形JSON实现指标线图绘制和展示

3 整体方案

整体流程

  • H5指标开发平台:提供H5指标开发调试页面,进行指标开发调试,输出可用的指标算法。
  • 指标管理平台:对指标算法进行管理,供各端APP调用。
  • 各端APP:从指标管理平台拉取指标算法,本地维护,使用本地实时行情数据,进行算法计算,展示指标线图。

统一指标编辑器框架

需基于JavaScript实现一个指标计算器框架。满足以下要求:

  • 行情数据读取和格式化
  • 指标算法执行环境
  • 指标算法可动态增删
  • 指标算法执行
  • 指标算法结果格式化

各端线图统一绘制JSON

指标计算器执行后,需输出可渲染的指标线图JSON,供各端APP绘制线图。满足以下要求:

  • JSON格式统一,各端APP遵从统一的字段定义
  • 各端APP线图组件,需支持各基本元素(坐标轴、线、柱图、点)绘制