Skip to content

数据池实例 API

WARNING

  • 请求和接口返回结果中的数据字段以及其对应含义请通过指标平台查询
  • 如果没特殊限制,获取历史数据默认请求数据长度最大为:500条(两年半,建议单次请求2年内)
  • 除分时图或分时数据API外,其他API市场阶段均不支持all,请勿使用
  • 支持多股(code_list)的API(例如快照),单市场个股数量最大支持100个,超出报错
  • 订阅类型api(例如快照):轮询限制单市场100支code,ws暂无限制
  • 快照行情字段单次最多支持50个,超出报错

👉 以下是获取历史行情 API

getKlineData(params: KlineDataParams)

typescript
(params: KlineDataParams) => Promise;

获取历史 K 线数据

  • params 请求参数

    typescript
    {
    // 个股代码,由于数据源限制,目前只支持单个个股
    code_list: [{
      codes: [code:string]
      market: string
    }]
    // 各个时间周期及有效数据范围(默认日K):"min_1"(近3月) "min_5" "min_15" "min_30"(近一年) "min_60" "day_1" "week_1" "month_1" "quarter_1" "year_1"(所有时间)
    time_period: TimePeriod
    // 交易时段:盘前:pre_market、盘中:intraday、盘后:post_market
    trade_class: TradeClass
    // 开始时间,当为数字值时必须<0表示获取交易日数量
    begin_time: number | Date
    // 结束时间, 为0时表示最近交易日
    end_time: Date | 0
    // 复权类型(默认前复权):前复权:'forward'、后复权:'backward'不复权:'actual'
    adjust_type?: AdJustType
    // 绕过鉴权标识符:0-鉴权(默认,国内美股需要特定权限)、1-绕过、2-登陆即返回实时(注意,绕过鉴权返回15min延时数据)
    gpid?: GpidAuthType;
    }
  • return Promise 对象,resolve 时返回数据,reject 时返回错误信息。

getTrendData(params: TrendDataParams)

typescript
(params: TrendDataParams) => Promise;

获取历史分时数据

TIP

国外市场分时接口走分钟 K 线接口,注意可能存在问题。

  • params 请求参数 请求历史分时数据参数
typescript
{
  // 个股代码,由于数据源限制,目前只支持单个个股
  code_list: [{
    codes: [code:string]
    market: string
  }]
  // 时间,为0时表示最近交易日
  trade_date: 0Date
  // 交易时段:盘前:pre_market、盘中:intraday、盘后:post_market、所有时间段:all、集合竞价:open_auction、close_auction
  // ⚠ 注意,all并非所有市场都支持,例如国内市场仅支持intraday、仅沪深A支持集合竞价
  trade_class: TradeClass
  // 绕过鉴权标识符:0-鉴权(默认,国内美股需要特定权限)、1-绕过、2-登陆即返回实时(注意,绕过鉴权返回15min延时数据)
  gpid?: GpidAuthType;
  // 美股专用-各个时间周期及有效数据范围(默认min_1):"min_1"(近3月) "min_5" "min_15" "min_30"(近一年)
  time_period: TimePeriod
  // 指定时区(默认已经获取交易所所在时区):不同市场时区不同,例如:美国东部时间、北京时间,主要用于绘制分时图,其中期货影响最大
  time_zone?: string
}
  • return Promise 对象,resolve 时返回数据,reject 时返回错误信息。

getTrendDataWithTime(params: TrendDataParams)

typescript
(params: TrendDataParams) => Promise;

获取携带时间轴的历史分时数据,用于绘制分时图,未来时间点数据为 NaN(开发中……)

getTradeTimeData(params: TradeTimeDataParams)

typescript
(params: TradeTimeDataParams) => Promise;

获取市场时间轴数据(开收盘时间、盘前盘后时间)

  • params 请求参数 开收盘时间、盘前盘后时间
typescript
{
  // 个股代码,由于数据源限制,目前只支持单个个股
  code_list: [{
    codes: [code:string]
    market: string
  }];
  // 绕过鉴权标识符:0-鉴权(默认,国内美股需要特定权限)、1-绕过、2-登陆即返回实时(注意,绕过鉴权返回15min延时数据)
  gpid?: GpidAuthType;
}
  • return Promise 对象,resolve 时返回数据,reject 时返回错误信息。

getSnapshotData(params: SnapshotDataParams)

typescript
(params: SnapshotDataParams) => Promise;

获取快照数据

typescript
{
  // 个股代码,支持获取多个个股数据,code_list中元素以市场区分,每个市场元素中codes为多个股代码列表
  code_list: [{
    codes: [code:string]
    market: string
  }]
  // 交易时段:盘前:pre_market、盘中:intraday、盘后:post_market
  // ⚠ 注意,快照API不支持ALL(但是ws订阅支持)
  trade_class: TradeClass
  // 可选:请求数据字段列表,不传时返回默认字段。查询字段列表请参考:[数据字段名称含义](https://fuyao.myhexin.com/tangram-console/#/metric/manager)
  data_fields: string[]
  // 绕过鉴权标识符:0-鉴权(默认,国内美股需要特定权限)、1-绕过、2-登陆即返回实时(注意,绕过鉴权返回15min延时数据)
  gpid?: GpidAuthType;
}
  • return Promise 对象,resolve 时返回数据,reject 时返回错误信息。

WARNING

  • 单次个股数量最大支持100个,超出报错
  • 快照API的交易阶段字段 trade_class 不支持 all
  • 数据字段 data_fields 最多支持50个行情字段,超出报错

getCalculateData(params: CalculateParams)

typescript
(params: CalculateParams) => Promise;

获取计算数据:一些特殊的计算行情数据需要通过本接口获取,例如:换手率(1968584) 查询字段列表请参考:数据字段名称含义

  • params 请求参数
typescript
{
  // 个股代码,由于数据源限制,目前只支持单个个股
  code_list: [{
    codes: [code:string]
    market: string
  }]
  // 必需:请求数据字段列表,不传时返回默认字段。查询字段列表请参考:[数据字段名称含义](https://fuyao.myhexin.com/tangram-console/#/metric/manager)
  data_fields: string[]
  // 各个时间周期及有效数据范围(默认日K):"min_1"(近3月) "min_5" "min_15" "min_30"(近一年) "min_60" "day_1" "week_1" "month_1" "quarter_1" "year_1"(所有时间)
  time_period: TimePeriod
  // 交易时段:盘前:pre_market、盘中:intraday、盘后:post_market、所有时间段:all
  // ⚠ 注意,all并非所有市场都支持,例如国内市场仅支持intraday
  trade_class: TradeClass
  // 开始时间,当为数字值时必须<0表示获取交易日数量
  begin_time: number | Date
  // 结束时间
  end_time: Date
  // 复权类型(默认前复权):前复权:'forward'、后复权:'backward'不复权:'actual'
  adjust_type?: AdJustType
  // 绕过鉴权标识符:0-鉴权(默认,国内美股需要特定权限)、1-绕过、2-登陆即返回实时(注意,绕过鉴权返回15min延时数据)
  gpid?: GpidAuthType;
}
  • return Promise 对象,resolve 时返回数据,reject 时返回错误信息。

getStatusData(params: StatusDataParams)

typescript
(params: StatusDataParams) => Promise;

获取市场状态(⚠️ 仅支持美股)

  • params 请求参数
typescript
{
  // 个股代码,支持获取多个个股数据,code_list中元素以市场区分,每个市场元素中codes为多个股代码列表
  code_list: [{
    codes: [code:string]
    market: string
  }];
  // 绕过鉴权标识符:0-鉴权(默认,国内美股需要特定权限)、1-绕过、2-登陆即返回实时(注意,绕过鉴权返回15min延时数据)
  gpid?: GpidAuthType;
}

👉 以下是订阅实时行情 API

subscribeStocks(codeList,immediateRequest)

typescript
(codeList: codeData[],immediateRequest: boolean) => void

订阅个股数据

  • codeList 订阅个股列表
  • immediateRequest 是否立即请求一次数据,默认false
typescript
{
   /*
   * 用户传入(对用户来说是必传的,即便是传false)
   * 如果为订阅请求,则id不能为等效false的值
   * 如果为取消订阅请求,id等效false的值时,则删除该个股当前Key下的所有订阅,否则删除指定id的订阅
   */
  id: boolean | string;
  // 必需:个股代码
  code: string;
  // 必需:个股市场id(优先使用小市场代码,对新的四位市场代码可能存在兼容性问题)
  market: string;
  // 必需:数据类型:*分时:trend、K线:kline、快照:snapshot、状态:code_status、逐笔:tick、盘口:order_book、期权大单:gms-ext-uus-option-block-trade
  data_class: DataClass;
  // 必需:交易时段:盘前:pre_market、盘中:intraday、盘后:post_market、所有时间段:all;仅美股支持TradeClass数组获取多个交易时段数据
  trade_class: TradeClass;

  /* 可选(默认为normal,通常会自动判断,但polling轮询时则为必选):
   * 订阅类型:
   * - Quote(ws): 普通行情,使用WebSocket订阅(推送固定字段)
   * - Option(wsOption): 期权行情,使用WebSocket订阅(推送固定字段)  
   * - OptionBigDeal(wsOptionBigDeal): 期权大单,使用WebSocket订阅(推送固定字段)
   * - Polling(polling): 轮询订阅,使用HTTP轮询而非WebSocket(可通过data_fields指定需要订阅的数据字段)
   * 注:只有polling类型使用轮询订阅,其他类型均使用WebSocket订阅
   */
  subscribe_type?: SubscribeType;

  // k线可选:各个时间周期及有效数据范围(默认日K):"min_1"(近3月) "min_5" "min_15" "min_30"(近一年) "hour_1" "day_1" "week_1" "month_1" "quarter_1" "year_1"(所有时间)
  time_period?: TimePeriod;
  // K线可选:k线专用-复权类型(默认不复权):前复权:'forward'、后复权:'backward'不复权:'actual'
  adjust_type?: AdJustType;

  // 收费K线可选:收费K线专用-行数(SVP、VFP)(仅限Polling轮询订阅时生效)
  custom_candle_request_info?: CustomCandleRequestInfo;

  // 快照可选:data_fields,用于指定需要订阅的数据字段(仅限Polling轮询订阅时生效,因为ws推送字段是固定的)
  data_fields?: string[];
  // 快照可选:是否需要盘口:true、false
  need_order_book?: boolean;
  // 快照可选:开盘时间类型:open_ny: 美东0点、open_hk: 香港0点、open_utc: utc0点、open_ttm: 滚动24小时0点
  open_type?: openType;

  // ws推送频率配置(注意,当订阅类型为polling时该字段不会生效,轮询订阅频率请在全局配置中设置)
  push_level?: pushLevel;
  // 绕过鉴权标识符:0-鉴权(默认,国内美股需要特定权限)、1-绕过、2-登陆即返回实时(注意,绕过鉴权返回15min延时数据)
  gpid?: GpidAuthType;

  // ws回调函数,用于接收该个股对应的ws推送数据以及相关事件;SocketEvent:open、close、error、message、success、fail,并通过data参数返回数据。
  msgCallback: (type: SocketEvent, data: any) => void;
  
}

autoSnapshotSubscribe(codeList,immediateRequest)

typescript
(codeList: codeData[],immediateRequest:boolean) => void

自动快照类型订阅:仅适用于获取最新快照数据!会自动根据data_fields发起ws/轮询订阅,同时默认会立刻推送一次数据(⚠️取消订阅时请将isAutoSnapshot设置为true)

WARNING

  • 取消订阅时请将unsubscribeStocks API的isAutoSnapshot设置为true,否则会存在订阅未完全取消的情况

unsubscribeStocks(codeList,isAutoSnapshot)

typescript
(codeList: codeData[],isAutoSnapshot: boolean) => void

取消订阅个股数据

  • codeList 取消订阅个股列表,遵循订阅 API 的数据结构
  • isAutoSnapshot 是否为自动快照类型订阅,默认false

stopSubscribe(cb)

typescript
(cb) => void

停止所有订阅请求、但不清空订阅队列

  • cb 停止订阅后的回调函数。

startSubscribe()

typescript
() => void

在 stop 的前提下,重新开始所有订阅请求,由于 start 会重新建立 ws,此处无 cb 函数

getSubscribedStocks()

typescript
() => codeData[]

获取当前订阅列表,遵循订阅 API 的数据结构

👉 以下是定制化指标 API

getDataApiData(params: DataApiParams)

typescript
(params: DataApiParams,type: 'Interval' | 'Specific') => Promise;

获取定制化指标(DataAPI)数据(⚠️ 仅支持国内、需要 Cookie 鉴权)

  • params 请求参数
typescript
{
  /*
   * 个股代码,支持获取多个个股数据,code_list中元素以市场区分,每个市场元素中codes为多个股代码列表
   * 目前仅支持个股,其他复杂筛选请用:code_selectors
   * [Interval ✅、Specific ❌] 
  */
  code_list?: [{
    codes: [code:string]
    market: string
  }];
  /* 
   * 代码筛选器,用于确定证券代码列表,Specific可选,Interval不选
   * 代码筛选器类型定义
   * interface CodeSelector {
   * // stock_code(个股代码)、market_code(市场代码)、block_code(板块代码)、tag(标签)等
   * type: 'stock_code' | 'market_code' | 'block_code' | 'tag';
   * // 根据 type 类型传递不同的值数组
   * // - stock_code: 格式为 {market}:{code},如 "33:300033"
   * // - block_code: 板块代码列表
   * // - tag: 业务开发过程中生成的代码列表,如热榜列表等
   * values: string[];
   * }
   * [Interval ❌、Specific ✅] 
  */
  code_selectors?: {
    // 包含的代码列表,多个 code_selector 的结果会进行合并
    include?: CodeSelector[];
    // 排除的代码列表,多个 code_selector 的结果会进行合并
    exclude?: CodeSelector[];
    // 交集的代码列表,多个 code_selector 的结果会取交集
    intersection?: CodeSelector[];
  };
  /*
   * 时间周期:各个时间周期及有效数据范围(默认日K):"min_1"(近3月) "min_5" "min_15" "min_30"(近一年) "hour_1" "day_1" "week_1" "month_1" "quarter_1" "year_1"(所有时间)
   * [Interval ✅、Specific ❌] 
  */
  time_period?: TimePeriod;
  /* 
   * 指标信息IndexInfo:指标名称列表
   * index_id: 指标id,来源于tangram平台上的指标id
   * timestamp: 时间信息,一般为秒级的时间戳,如果为天的话,以当地交易所的时间为准(A股是东八区零点时间戳,港股是12点时间戳,美股是美东时间中午12点时间戳),如果为小时,以小时整点的时间戳为准,依此类推,特殊表示:当传0的时候表示最新,用于取偏移量的话,0表示最新,-1表示往前偏移1,-2表示往前偏移2,不能小于-1000(按照当前偏移不能太小)
   * time_type: 数据周期,为分钟,天还是周、月、季等等,具体传参可以通过Tangram上查询指标对应的周期
   * req_uniq_id: 非必传,请求方用于区分指标的唯一id,如果index_id重复,将优先通过本字段作为主键
   * attribute:指标的附加属性,根据具体的指标决定是否需要传相应的信息,非必需,如果指标没有attribute的不需要填,详细信息可以看: 指标的额外属性,可以看下文补充部分
   * [Interval ✅、Specific ✅] 
  */
  index_info?: IndexInfo[] | string[];
  // [可选]分页信息:分页详情用于控制返回结果的数量和起始位置 [Interval ❌、Specific ✅] 
  page_info?: {
    // 数据起始下标,从0开始
    page_begin: number;
    // 分页大小
    page_size: number;
    // 代码下标,该字段非必传,主要用于返回额外的排序代码列表
    code_begin: number;
    // 代码分页大小,该字段非必传,当需要返回额外代码表的时候可以传
    code_page_size: number;
  };
  // [可选]排序信息:排序信息 [Interval ❌、Specific ✅] 
  sort?: [{
    // 指定排序的字段,代表的是index_info的列表的下标 
    idx: number; 
    // 升序或者降序规则,大小写不区分
    type: 'asc' | 'desc' | 'ASC' | 'DESC';
  }];
  // 开始时间 [Interval ✅、Specific ❌] 
  begin_time?: Date | number | 0;
  // 结束时间 [Interval ✅、Specific ❌] 
  end_time?:  Date | number | 0;
}
  • type 请求类型,默认Interval 表示区间取数(类似历史K线),Specific 表示表格式取数(类似快照) ˝
  • return Promise 对象,resolve 时返回数据,reject 时返回错误信息。

TIP

  • index_info中由于attribute的存在,导致index_id并不能完全唯一标识一个指标,所以如果需要区分指标,请务必传入req_uniq_id字段。且返回数据中会优先使用req_uniq_id作为主键。
  • DataAPI源文档地址:DataAPI

getCustomLineData(params: CustomLineParams)

typescript
(params: CustomLineParams) => Promise;

获取自定义线型数据(⚠️ 仅支持 Ainvest)

  • params 请求参数
typescript
{
  // 个股代码,支持获取多个个股数据,code_list中元素以市场区分,每个市场元素中codes为多个股代码列表
  code_list: [{
    codes: [code:string]
    market: string
  }];
  // 时间周期:各个时间周期及有效数据范围(默认日K):"min_1"(近3月) "min_5" "min_15" "min_30"(近一年) "hour_1" "day_1" "week_1" "month_1" "quarter_1" "year_1"(所有时间)
  time_period?: TimePeriod;
  // 线型参数
  lineParams: {
    CountOfTicks: number;
    PeriodInDay: number;
    MarketStage: number;
    op: string;
    type: string;
  };
  // 开始时间
  begin_time: Date;
  // 结束时间
  end_time: Date;
}
  • return Promise 对象,resolve 时返回数据,reject 时返回错误信息。

getIndicatorsData(params: IndicatorParams)

typescript
(params: IndicatorParams) => Promise;

获取自定义指标数据(⚠️ 仅支持 Ainvest)

  • params 请求参数
typescript
{
  // 个股代码,支持获取多个个股数据,code_list中元素以市场区分,每个市场元素中codes为多个股代码列表
  code_list: [{
    codes: [code:string]
    market: string
  }];
  // 时间周期:各个时间周期及有效数据范围(默认日K):"min_1"(近3月) "min_5" "min_15" "min_30"(近一年) "hour_1" "day_1" "week_1" "month_1" "quarter_1" "year_1"(所有时间)
  time_period?: TimePeriod;

  // 交易时段:盘前:pre_market、盘中:intraday、盘后:post_market
  trade_class?: TradeClass;

  // 计算字段:计算字段列表
  calc_fields: Array<{
    // 指标code:例如主图神奇电波为:'265375'
    data_field: string;
    // 指标参数,根据不同指标,参数不同
    input_params?: any;
    }>;

  // 复权类型:前复权:'forward'、后复权:'backward'不复权:'actual'
  adjust_type?: 'forward' | 'backward' | 'actual';

  // 开始时间,number表示偏移交易日天数
  begin_time: Date | number | 0;
  // 结束时间,number表示偏移交易日天数
  end_time: Date | number | 0;

  // trade_date[可选,默认会自动判断s]:仅限13位时间戳表示指定交易日
  trade_date?: number(13);
}
  • return Promise 对象,resolve 时返回数据,reject 时返回错误信息。

👉 以下是 datafeed 配置 API

getProjectMode()

typescript
() => SourceModeMap;

获取当前业务域数据源模式,遵循业务域名配置

getConfig()

typescript
() => GlobalConfig;

获取全局配置,遵循全局配置数据结构

setConfig(config)

typescript
(config: GlobalConfig) => void

设置全局配置,遵循全局配置数据结构

dispose(cb)

typescript
(cb: function) => void

停止所有订阅请求、清空个股订阅队列。仅用于清空数据订阅,注销分时 K 线实例请使用HXKline.dispose()方法。

  • cb 回调函数。

Released under the Apache License V2.