技术支持服务信息

- 如何快速入门?
  • 安装东方财富量化本地终端(一个集成化、图形化的量化终端)和配置东方财富量化策略api(api:多语言的、供策略调用的接口插件),参见快速入门
  • api的使用介绍,包括对应的策略开发规范,请参考api文档
  • 量化策略的开发需要必要的编程技能、金融知识和数学基础,这些内容可以在东方财富量化的论坛和策略示例中学习,也可以在东方财富量化的交流群中提问和下载学习资料
- 从哪里可以获取专业技术支持、量化相关的信息资料,或者与其他量化爱好者交流?

技术支持QQ群: 971584613

终端问题

- 安装SDK报错,系统找不到指定文件:setuptool.exe
  • 卸载后重新安装
- 盘中数据提取数据响应慢的原因?
  • 盘中大量实时数据在推送,负荷比较重,为了不影响实时行情的接收,应尽量避免盘中的回测和大量数据的提取。
- 什么是token?什么是策略ID(stragetyid)
  • token是用户登录身份验证和识别的一串字符,策略通过此ID获取数据的权限,在终端右上角系统设置处获取和更新,更新后将导致原token不可用。
  • 策略ID是策略身份的识别ID,终端通过策略ID区分策略,匹配相关设置

python策略编程问题

- 终端运行策略,提示找不到解析器怎么办?
  • 首先检查是否把python添加到环境变量中了
  • 如果还是不行,需要在策略设置处(右下角齿轮)手动指定解析器位置。
- 运行策略,提示找不到gm模块怎么办?
  • 首先检查是否安装sdk,并且检查版本是否对应。
  • 终端支持python3.6到python3.12的版本。
  • 此外如果选择第三方ide,请注意选取的解释器是否是安装了sdk的那一个。
  • 如果已经安装了python SDK,但是还是提示找不到,可能是因为安装有多个python,而安装SDK的python环境并不是当前使用的python环境,需要手动切换
- 运行策略, 提示ModuleNotFoundError: No module named 'gm.csdk.c_sdk'怎么办?
  • 网络限制导致某些包安装不完整, 一般会表现为某些包找不到, ModuleNotFoundError: No module named 'XXX',请卸载重装下gm。
  • 可以通过更换安装源pip install gm -i https://pypi.doubanio.com/simple 重新安装
- 运行策略, 提示error code=1001, error info=无法连接到终端服务, 或者直接提取数据, 提示raise EnvironmentError("获取不到数据服务地址")、("获取不到基本面服务地址")
  • 检查下终端是否有启动,或者终端是否运行异常,或者尝试重启下终端。
- 运行策略, 提示from google.protobuf.pyext import _message ImportError: DLL load failed: 找不到指定的程序 怎么办?
  • protobuf已经更新, protobuf安装的是最新版本3.6.1, 出现了不兼容的问题。
  • 更换为 protobuf 3.6.0即可。
- 运行策略, 报错ImportError: Missing required dependencies ['numpy'] 怎么办?
  • anaconda可能有多个版本的numpy, pandas的numpy依赖包和现有的numpy有冲突, 需要卸载pandas和numpy再重新安装pandas,在cmd里依次执行pip uninstall pandas, pip uninstall numpy, pip install pandas命令行
win10 安装anaconda(python=3.7)后用pip install xxx安装第三方模块时,报错 ……that require TLS/SSL, however the ssl module in Python is not available……怎么办?
  • python与系统原有的一个dll有冲突, 需要把anaconda的安装目录添加进系统的path环境变量里,例如D:\Anaconda3; D:\Anaconda3\Scripts; D:\Anaconda3\Library\bin 。
- 使用第三方ide策略为什么启动不了?
  • 请严格按照run函数的说明配置参数
  • 检查策略id以及token是否正确。
  • 策略的文件名称是否正确,filename的参数需要和文件名一致,如策略文件名为test.py,则此处需要输入test.py
- 量化终端是否支持使用第三方工具和外部数据?
  • 支持用户自由使用第三方库和外部文件、数据等。
- 为什么策略运行一半会停掉,过一会又会继续运行,或者莫名其妙的停止运行了?
  • cmd控制台进入了快速编辑模式导致策略运行挂起
  • 解决办法:打开cmd控制台, 右键-->选择属性-->选项-->编辑选项,把里面的快速编辑模式前的勾选去掉,然后按确定退出
- 如何安装talib?
  • 下载对应的TA_Lib.whl文件,保存到\Scripts文件夹。

    选择与系统版本、Python版本对应的文件,如TA_Lib‑0.4.10‑cp36‑cp36m‑win_amd64.whl 适用于Windows64位系统, Python3.6版本。

  • 安装TA_Lib,在whl文件目录下执行以下命令行,注意输入的.whl文件名与原文件保持一致
    pip install TA_Lib‑xxxxx‑cpxxx‑cpxxx‑winxx.whl
    
  • 检验TA_Lib是否安装成功
      import talib
    
    没有报错则说明安装成功。
- 支持多线程吗?
  • SDK为了使策略简单稳定,采用单线程方式,不支持多线程。用户进行多线程编程时需要自主维护多线程可能遇到的问题
- 如果没有网络怎么安装pythonSDK呢?

pythonSDK gm安装需要依赖其他基础库,如果要无网络安装,则需要事先下载好相关的安装包(wheel)

  • 首先需要有网络的python环境,在pip.exe目录下运行cmd窗口,输入

pip wheel --wheel-dir . gm -i https://pypi.doubanio.com/simple

(该语句会自动下载gm所需要的依赖安装包,并下载到当前文件夹中)

  • 将whl文件全部移动到无网络环境的python环境的pip.exe目录下,cmd窗口运行

pip install --no-index --find-links=. gm

(该语句会安装本地文件中的gm及管理库)

其他语言策略编程问题

- 支持其他语言吗?其他语言的api要怎么用呢?
  • 目前终端已经支持了MATLAB,C#,C++的策略语言,更多语言种类会根据大家反馈和实际使用情况添加
  • 其他语言api均在终端内下载SDK包,不支持自动安装,具体使用方式请参照对应语言的接口说明
  • 其他语言SDK包下载地址

数据问题

- 目前已经支持的市场有哪些?
- 历史数据支持什么频度和时间范围?
  • 支持tick(分时线),60s以及60s的整数倍(分钟线), 1d(日线)频率。

  • 支持范围可通过实盘申请版本查看。

订阅问题

- 为什么订阅50个以上的标的数据没有全部返回?
  • 免费版目前只支持订阅50个标的, 超过会报错。
- 订阅实时数据支持哪些频率?
- 实时模式Tick数据多久推送一次?
  • 上交所:3秒
  • 深交所:3秒
- 关于tick 和 bar的数据都是固定推送的吗?
  • tick无限制,bar无交易不推送。
- 实时行情订阅中,是等单根bar走完才能取到数据吗?
  • 是的,在单根bar的eob(结束时间)后才能获取到。
- 一个股票同时订阅了同周期不同品种的bar,推送的顺序为什么不是订阅的顺序?
  • 按时间推送,不同品种的时间有微小的差异,所以顺序会不一致。
- 实时行情订阅主力连续合约为什么没有数据?
  • 实时模式不支持订阅主力连续合约,需要订阅具体的月份合约。

数据查询

- history和history_n限制多少条数据
  • 请求线上服务的数据都是33000条限制。本地有数据缓存后可以超过33000条了,但是数据包大小有限制,建议还是分批取。
- 为什么股票今天停牌,指定过滤掉停牌股票,却没有被过滤掉?
  • 盘前发布停牌公告,当天才会处理到。
- 有没有竞价数据?怎么取竞价数据?
  • 有,实时行情中订阅了tick就会推送; 历史的集合竞价数据可通过Tick的相关查询函数获取。
- 请问history函数获取的价格,经过复权了吗?
  • 可以通过参数指定,参看history
- 为什么tick数据获取的 asks / bids报价为空?
  • 涨停附近ask可能为空;跌停附近bid 可能为空;但是ask,bid为空不一定要是在涨跌停附近的,有些合约不活跃确实可能出现非涨跌停阶段没有买卖挂单。
- history或者history_n前复权查询结果有误
  • 需要填写adjust=ADJUST_PREV 和adjust_end_time=context.now.date()参数,接口通过adjust_end_time参数定点复权。

其他数据问题

- 为什么回测订阅日线,成交时间是15:15?
  • 有些标的一直到15:15都可以交易,为了对齐时间,统一15:15成交。
- 请问的数据是什么时候更新的,收盘后获取不到当日的数据。
  • tick, bar 可以实时更新。
  • 日线数据当天 19:00左右更新。
  • 当天主力合约晚上20:50左右更新
  • 市场指标 第二天 早上6:00左右更新。
- 为什么同一段时间的相同品种的两个合约,bar数据长度不一样?
  • 没有成交量的时间段不会推送数据。
- 为什么回测时推送的复权价格和行情软件上看到的不一样?
  • 回测时复权的时间基准是回测指定的结束时间(backtest_end_time,参见run),相当于行情软件中的定点复权,通常看行情时用的是前复权不复权,因此有时侯会不一样。
- Subscribe中的 count 和 context.data 中的 count 有什么区别和联系?
  • Subscribe 的count用于指定订阅的数据滑窗大小,推送时不同标的还是指推送一根bar的数据。
  • context.data的count用于指定读取的数据滑窗的大小,应小于等于subscribe的数据滑窗大小。
- 停牌或交易不活跃代码为什么没有bar数据?
  • 停牌的股票代码不会生成日线和bar数据;交易不活跃的代码,在没交易的期间,也不会生成bar数据。

仿真和实盘问题

- 仿真市价单以什么价格下单?
  • 市价单发出时是没有价格的,按对手挂单逐档撮合,有成交价。
- 仿真模式的订单待报是什么状态?
  • 订单已发出去,还没有得到柜台确认。
- 仿真模式11:30下的单如何处理?实盘呢?
  • 仿真模式此单挂在云端,实盘直接发往柜台。
- 仿真在哪里设置手续费?
  • 在账户管理-仿真账户-设置手续费进行设置,目前支持对给交易所和品种手续费的独立设置
- 目前支持的交易品种有哪些?
  • 目前支持全A股股票、基金(ETF基金、货币基金、分级基金);暂不支持的交易品种:期权(50ETF期权,期货期权)
- 策略下单会经过东方财富的服务器吗?
  • 不会。策略委托根据交易通道的配置,直接发送到对应的券商柜台。
- 非交易时段, 在实时模式下策略能运行吗?
  • 不能, 实时模式推送的是实时行情,也就是交易所的实时行情,只有交易时段才有。
- 实盘各种市价单和限价单的下单参数组合?
  • 不同委托类型按照表中参数填写,斜杠为默认值可不填
市场 订单类型 order_type order_duration order_qualifier price stop_price
深交所 限价 OrderType_Limit / / 委托价格 /
深交所 盘后定价交易(仅创业板支持) OrderType_Market OrderDuration_AHT / 委托价格
深交所 市价 (对方最优价) OrderType_Market / / / /
深交所 对方最优价 OrderType_Market / OrderQualifier_BOC / /
深交所 本方最优价 OrderType_Market / OrderQualifier_BOP / /
深交所 即时成交剩余撤销 OrderType_Market OrderDuration_FAK / / /
深交所 五档即成剩撤 OrderType_Market OrderDuration_FAK OrderQualifier_B5TC / /
深交所 全额成交或撤销 OrderType_Market OrderDuration_FOK / / /
市场 订单类型 order_type order_duration order_qualifier price stop_price
上交所 限价 OrderType_Limit / / 委托价格 /
上交所 盘后定价交易(仅科创板支持) OrderType_Market OrderDuration_AHT / 委托价格
上交所 市价(五档即成转限) OrderType_Market / / 市价保护价 /
上交所 五档即成剩撤 OrderType_Market / OrderQualifier_B5TC 市价保护价 /
上交所 五档即成转限 OrderType_Market / OrderQualifier_B5TL 市价保护价 /
上交所 对方最优价 OrderType_Market / OrderQualifier_BOC 市价保护价 /
上交所 本方最优价 OrderType_Market / OrderQualifier_BOP 市价保护价 /

回测问题

- 回测模式市价单以什么价格成交?
  • 如果订阅了该交易标的,默认下单为下一根K线开盘价成交。如tick 为下一根tick的最新价成交, 日线以第二天开盘价成交。
  • 如果未订阅行情,则所有成交价都是第二日的开盘价。
- 回测模式下市价单,是复权还是不复权价格?
  • 按照回测模式推送,持仓均价计算亦如此。
- 回测中股票今天买入的也能卖?
  • 回测目前不限制今昨仓,今天的买的今天可以卖,卖出需要计算下昨仓, 股票均是如此逻辑。仿真和实盘状态下会有限制。
- 回测中股票超过涨跌停价格也能成交?
  • 回测对股票成交价格没有限制.
- 回测时复权价格是如何计算得来的?
  • 在回测模式下,当run()的backtest_adjust参数设置为 1 时,推送的情行价格采用定点前复权,即以回测结束时间为基点,向前做复权。假设回测中t时间点的真实价格为P[t], 复权因子为 A[t], 回测结束时间点的复权因子为A[end],那么 t时刻复权后价格:

  • P[t]_adj = P[t] * A[t] / A[end]

  • 后复权价格根据复权因子计算公式:

  • P[t]_adj = P[t] * A[t]

终端相关问题

- 同一个账户在不同电脑上登录,是否可以同时交易?
  • 最好不要这样做,账户可能会被踢掉,最好再申请一个。

部分旧数据接口下线更换计划通知

东财掘金量化用户朋友们,我们现计划于2024.9.30 正式下线老版数据函数,届时以下13个老版数据函数将无法正常获取数据。如您对老版数据函数仍有调用查询数据的需求,建议您及时修改调用程序,提前切换至新版数据函数。感谢您对掘金量化的支持!

现提供一套全新的数据 API,新的 API 可以获取更丰富的财务数据、市场数据和多品种特色数据,满足更多样的使用场景,同时新的数据接口设计更加贴合用户的使用,体验更佳;

1. 新老数据函数切换对照表:
老版数据函数 可切换至新版数据函数
get_instrumentinfos - 查询交易标的基本信息 get_symbol_infos - 查询标的基本信息
get_instruments - 查询最新交易标的信息 get_symbols - 查询指定交易日多标的交易信息
get_history_instruments - 查询交易标的历史信息数据 get_history_symbol - 查询指定标的多日交易信息
get_trading_dates - 查询交易日列表 get_trading_dates_by_year - 查询年度交易日历
get_previous_trading_date - 返回指定日期的上一个交易日 get_previous_n_trading_dates - 查询指定日期的前n个交易日
get_next_trading_date - 返回指定日期的下一个交易日 get_next_n_trading_dates - 查询指定日期的后n个交易日
get_industry - 查询行业股票列表 stk_get_industry_constituents - 查询行业成分股
get_dividend - 查询分红送配 stk_get_dividend - 查询股票分红送股信息 stk_get_ration - 查询股票配股信息
get_constituents - 查询指数最新成份股 stk_get_index_constituents - 查询指数成分股
get_history_constituents - 查询指数成份股的历史数据 stk_get_index_constituents - 查询指数成分股
get_fundamentals - 查询基本面数据 stk_get_fundamentals_balance - 查询资产负债表数据
stk_get_fundamentals_cashflow - 查询现金流量表数据
stk_get_fundamentals_income - 查询利润表数据
stk_get_finance_prime - 查询财务主要指标数据
stk_get_finance_deriv - 查询财务衍生指标数据
stk_get_daily_valuation - 查询估值指标每日数据
stk_get_daily_mktvalue - 查询市值指标每日数据
stk_get_daily_basic - 查询股本等基础指标每日数据
get_fundamentals_n - 查询基本面数据最新n条 stk_get_fundamentals_balance_pt - 查询资产负债表截面数据(多标的)
stk_get_fundamentals_cashflow_pt - 查询现金流量表截面数据(多标的)
stk_get_fundamentals_income_pt - 查询利润表截面数据(多标的)
stk_get_finance_prime_pt - 查询财务主要指标截面数据(多标的)
stk_get_finance_deriv_pt - 查询财务衍生指标截面数据(多标的)
stk_get_daily_valuation_pt - 查询估值指标单日截面数据(多标的)
stk_get_daily_mktvalue_pt - 查询市值指标单日截面数据(多标的)
stk_get_daily_basic_pt - 查询股本等基础指标单日截面数据(多标的)
get_continuous_contracts - 获取主力合约 fut_get_continuous_contracts - 查询连续合约对应的真实合约
2. 复权因子

老版数据函数的复权因子仅支持股票,新版数据函数的复权因子增加支持场内基金。由于数据源变更,累计后复权因子adj_factor的数值在部分股票上可能与老数据源存在一定差异。

3. 财务数据

老版财务数据函数get_fundamentals和get_fundamentals_n单次只能查询200个symbol,新版财务数据函数(多标的)没有查询symbol个数限制,且数据字段更丰富,强烈建议您尽早切换。

4. 调用流控

如果接口调用触发了数据接口流控限制,策略程序会默认自动等待冷却时间,等待下一时间窗口再请求下一轮,不会中止策略; 您可以自行通过设置参数 max_wait_time 避免超过预期的等待时长,等待超过max_wait_time,策略会终止运行并返回流控错误,您可以根据具体报错调整数据接口调用逻辑。

数据函数有分钟流控和每日封顶流控,调用流控一览表:

数据功能点 数据接口 分钟流控 每日封顶流控
标的基本信息(码表) get_symbol_infos - 查询标的基本信息 5min/1000次 24h/5万次
get_symbols - 查询指定交易日多标的交易信息 5min/1000次 24h/5万次
get_history_symbol - 查询指定标的多日交易信息 5min/1000次 24h/5万次
get_instrumentinfos - 查询交易标的基本信息 5min/1000次 24h/5万次
get_instruments - 查询最新交易标的信息 5min/1000次 24h/5万次
get_history_instruments - 查询交易标的历史信息数据 5min/1000次 24h/5万次
交易日历 get_trading_dates_by_year - 查询年度交易日历 5min/1000次 24h/5万次
get_previous_n_trading_dates - 查询指定日期的前n个交易日
get_next_n_trading_dates - 查询指定日期的后n个交易日
get_trading_dates - 查询交易日列表 5min/1000次 24h/5万次
get_previous_trading_date - 返回指定日期的上一个交易日 5min/1000次 24h/5万次
get_next_trading_date - 返回指定日期的下一个交易日 5min/1000次 24h/5万次
交易时段 get_trading_session - 查询交易时段 5min/1000次 24h/5万次
合约到期剩余日 get_contract_expire_rest_days - 查询合约到期剩余天数 5min/1000次 24h/5万次
股票行业 get_industry - 查询行业股票列表 5min/1000次 24h/5万次
股票分红送配 get_dividend - 查询分红送配 5min/1000次 24h/5万次
指数成分股和权重 stk_get_index_constituents - 查询指数成分股 5min/1000次 24h/2万次
get_constituents - 查询指数最新成份股 5min/1000次 24h/5万次
get_history_constituents - 查询指数成份股的历史数据 5min/1000次 24h/5万次
股票基本面数据 get_fundamentals - 查询基本面数据 5min/50次 24h/0.2万次
get_fundamentals_n - 查询基本面数据最新n条 5min/50次 24h/0.2万次
stk_get_fundamentals_balance - 查询资产负债表数据 5min/1000次 24h/2万次
stk_get_fundamentals_cashflow - 查询现金流量表数据 5min/1000次 24h/2万次
stk_get_fundamentals_income - 查询利润表数据 5min/1000次 24h/2万次
stk_get_fundamentals_balance_pt - 查询资产负债表截面数据 5min/200次 24h/2万次
stk_get_fundamentals_cashflow_pt - 查询现金流量表截面数据 5min/200次 24h/2万次
stk_get_fundamentals_income_pt - 查询利润表截面数据 5min/200次 24h/2万次
stk_get_finance_prime - 查询财务主要指标数据 5min/300次 24h/2万次
stk_get_finance_deriv - 查询财务衍生指标数据 5min/300次 24h/2万次
stk_get_daily_valuation - 查询估值指标每日数据 5min/300次 24h/2万次
stk_get_daily_mktvalue - 查询市值指标每日数据 5min/300次 24h/2万次
stk_get_daily_basic - 查询基础指标每日数据 5min/300次 24h/2万次
stk_get_finance_prime_pt - 查询财务主要指标截面数据 5min/60次 24h/2万次
stk_get_finance_deriv_pt - 查询财务衍生指标截面数据 5min/60次 24h/2万次
stk_get_daily_valuation_pt - 查询估值指标单日截面数据 5min/100次 24h/2万次
stk_get_daily_mktvalue_pt - 查询市值指标单日截面数据 5min/100次 24h/2万次
stk_get_daily_basic_pt - 查询基础指标单日截面数据 5min/100次 24h/2万次
连续合约 fut_get_continuous_contracts - 查询连续合约对应的真实合约 5min/1000次 24h/5万次
get_continuous_contracts - 获取主力合约 5min/1000次 24h/5万次
股票行业 stk_get_industry_category - 查询行业分类 5min/1000次 24h/5万次
stk_get_industry_constituents - 查询行业成分股 5min/1000次 24h/5万次
stk_get_symbol_industry - 查询股票的所属行业 5min/1000次 24h/5万次
股票概念板块 stk_get_sector_category - 查询板块分类 5min/1000次 24h/5万次
stk_get_sector_constituents - 查询板块成分股 5min/1000次 24h/5万次
stk_get_symbol_sector - 查询股票的所属板块 5min/1000次 24h/5万次
股票分红送配 stk_get_dividend - 查询股票分红送股信息 5min/1000次 24h/5万次
stk_get_ration - 查询股票配股信息 5min/1000次 24h/5万次
股票复权因子 stk_get_adj_factor - 查询股票的复权因子 5min/1000次 24h/5万次
上市公司股本股东 stk_get_shareholder_num - 查询股东户数 5min/1000次 24h/5万次
stk_get_top_shareholder - 查询十大股东 5min/1000次 24h/5万次
stk_get_share_change - 查询股本变动 5min/1000次 24h/5万次
龙虎榜 stk_abnor_change_stocks - 查询龙虎榜股票 5min/1000次 24h/5万次
stk_abnor_change_detail - 查询龙虎榜营业部 5min/1000次 24h/5万次
北向资金 stk_quota_shszhk_infos - 查询沪深港通额度 5min/1000次 24h/5万次
stk_hk_inst_holding_detail_info - 查询沪深港通标的港股机构持股明细 5min/1000次 24h/5万次
stk_hk_inst_holding_info - 查询沪深港通标的港股机构持股 5min/1000次 24h/5万次
stk_active_stock_top10_shszhk_info - 查询沪深港通十大活跃成交股 5min/1000次 24h/5万次
期货品种数据 fut_get_contract_info - 查询期货标准品种信息 5min/1000次 24h/5万次
期货每日成交持仓排名 fut_get_transaction_ranking - 查询期货每日成交持仓排名 5min/1000次 24h/5万次
fut_get_transaction_rankings - 查询期货每日成交持仓排名(多标的多指标) 5min/1000次 24h/5000次
期货仓单数量 fut_get_warehouse_receipt - 查询期货仓单数据 5min/1000次 24h/5万次
ETF成分股 fnd_get_etf_constituents - 查询ETF最新成分股 5min/1000次 24h/5万次
场内基金持仓 fnd_get_portfolio - 查询基金资产组合 5min/1000次 24h/5万次
场内基金净值 fnd_get_net_value - 查询基金净值数据 5min/1000次 24h/5万次
基金复权因子 fnd_get_adj_factor - 查询基金复权因子 5min/1000次 24h/5万次
基金分红折算 fnd_get_dividend - 查询基金分红信息 5min/1000次 24h/5万次
fnd_get_split - 查询基金拆分折算信息 5min/1000次 24h/5万次
可转债转股价调整 bnd_get_conversion_price - 查询可转债转股价变动信息 5min/1000次 24h/5万次
可转债回售赎回 bnd_get_call_info - 查询可转债赎回信息 5min/1000次 24h/5万次
bnd_get_put_info - 查询可转债回售信息 5min/1000次 24h/5万次
可转债规模变动 bnd_get_amount_change - 查询可转债剩余规模变动 5min/1000次 24h/5万次
5. Matlab SDK用户注意事项

由于Matlab SDK不再维护,老版数据函数下线后,以下5个数据函数没有可切换的新版数据函数。Python / C++ / C# SDK 用户请参照新老数据函数对照表进行切换。

  • get_fundamentals - 查询基本面数据

  • get_fundamentals_n - 查询基本面数据最新n条

  • get_constituents - 查询指数成份股信息

  • get_industry - 查询行业成分股

  • get_dividend - 查询分红送配