PDF下载 下载

常见问题

阅读 118395

技术支持服务信息

- 从哪里可以获取专业技术支持、量化相关的信息资料,或者与其他量化爱好者交流?

技术支持QQ群:

终端问题

- 在哪里下载安装和更新掘金3?
  • 请在掘金官方首页下载,安装时一些安全软件可能会误报病毒,允许通过即可。如有疑问,可选择在另外电脑上用其他安全软件检查。
  • 终端安装后会自动提示有新版本并自动下载,安装升级版本即可覆盖升级,用户资料不会被覆盖。
- 安装SDK报错,系统找不到指定文件:setuptool.exe
  • 卸载后重新安装
- 为什么我的掘金终端登录不上?
  • 系统服务每天在早晚08:50会有重启,可能会临时影响登录和使用,请避开这个时间段。
  • 本地防火墙或网络路由器可能封锁了掘金服务需要用到的端口,请要求网络管理员开放以下端口:
    • ip: 112.74.194.96 端口: 7061,7071,7072,7075,80,443
    • ip: 119.23.139.32 端口: 7021,7022,7042,7101,7102,7103
    • ip: 119.23.163.104 端口: 7031,7032
    • ip: 119.23.163.23 端口: 7106,7107,80,443
  • 登录时报错:ENOENT = error no entry. 终端UI尝试启动终端服务程序,但是找不到。可能是杀毒软件破坏终端文件,需要关闭杀毒软件重新安装掘金终端
  • 登录时报错:”无法连接终端服务:终端服务启动超时” 可能是gmserv.json里面的配置项已被修改, 需要删除在用户目录下~/.goldminer3/里的gmserv.json文件
  • 登录时报错:无法连接终端服务 undefined。请重试,或联系客服支持。可能是终端和终端程序未连接成功,可重启几次终端或重启电脑
  • 登录时报网络错误,状态报告里显示‘http://www.myquant.cn:80 myquant-mainsite 221ms Network Error’, 可能是本地日期和时间不准, 访问不了官网,需要校准本地日期和时间
- 同一个掘金账户在不同电脑上登录,是否可以同时交易?
  • 最好不要这样做,账户可能会被踢掉,最好再申请一个。
- 一台跑python,一台电脑登录终端是否可以?
  • 可以,指定服务地址即可。终端的IP地址和端口可以通过 “用户目录 - goldminer3 -.gmserv.json ”路径找到,文件中的hostAddrrpcPort即为IP地址和端口。具体请参照run函数终端服务地址参数说明。
- 外部运行策略提示无法连接到终端服务
  • 外部运行策略,需要打开终端

python 编程问题

- 终端运行策略,提示找不到解析器怎么办?
  • 首先检查是否把python添加到环境变量中了
  • 如果还是不行,需要在策略设置处(右下角齿轮)手动指定解析器位置。
- 运行策略,提示找不到gm模块怎么办?
  • 首先检查是否安装sdk,并且检查版本是否对应。
  • 掘金3只支持2.7.*, 3.6.*,3.7.*,3.8.*和3.9.*的Python版本
  • 此外如果选择第三方ide,请注意选取的解释器是否是安装了sdk的那一个
  • 如果已经安装了python SDK,但是还是提示找不到,可能是因为安装有多个python,而安装SDK的python环境并不是当前使用的python环境,需要手动切换
- 运行策略, 提示ModuleNotFoundError: No module named ‘gm.csdk.c_sdk’怎么办?
  • 网络限制导致某些包安装不完整, 一般会表现为某些包找不到, ModuleNotFoundError: No module named ‘XXX’
  • 可以通过更换安装源pip install gm -i https://pypi.doubanio.com/simple 重新安装
- 运行策略,提示 “cannot import name ‘cygrpc’ from ‘grpc._cython’”
  • 可以卸载重装grpcio这个包。在cmd里输入 “pip uninstall grpcio” “pip install grpcio”
- 运行策略, 提示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有冲突, 需要把D:\Anaconda3; D:\Anaconda3\Scripts; D:\Anaconda3\Library\bin 从前面添加进系统的path环境变量里
- 使用第三方ide策略为什么启动不了?
  • 请严格按照run函数的说明配置参数
  • 检查策略id以及token是否正确
  • 策略的文件名称是否正确,filename的参数需要和文件名一致,如策略文件名为test.py,则此处需要输入test.py
- 为什么策略运行一半会停掉,过一会又会继续运行,或者莫名其妙的停止运行了?
  • 控制台进入了快速编辑模式导致策略运行终止
  • 解决办法:打开控制台, 右键—>选择属性—>选项—>编辑选项,把里面的快速编辑模式前的勾选去掉,然后按确定退出
- 如何安装talib?
  • 下载对应的TA_Lib.whl文件,保存到\Scripts文件夹。

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

  • 安装TA_Lib,运行命令提示符,在Python的Scripts目录下安装wheel,注意输入的.whl文件名与原文件保持一致
    1. C:\Python\Scripts pip install TA_Libxxxxxcpxxxcpxxxwinxx.whl
  • 检验TA_Lib是否安装成功
    1. import talib
    没有报错则说明安装成功。

SDK 问题

- 如何使用Linux版本的python SDK?
  • SDK需要和掘金终端通信, 但是掘金终端只有Windows版本, 所以策略需要指向windows终端
  • 需要指定IP,在C:\Users\用户名.goldminer3编辑.gmserv.json文件:”hostAddr”:的IP修改为Windows IP, 策略run()的serv_addr设置为’Windows IP:7001’
  • 最后在python中输入conda install gm -i https://pypi.doubanio.com/simple 命令
- 支持多线程吗?
  • 掘金SDK为了使策略简单稳定,采用单线程方式,不支持多线程。用户进行多线程编程时需要自主维护多线程可能遇到的问题
- gm SDK 与 gmtrade SDK之间的关系?
  • gmtrade SDK 是交易接口,可以下单、撤单,查询资金、持仓与委托成交等数据。只能进行仿真和实盘交易,不能用于回测。仿真不需要接入掘金终端,直接可以线上仿真,适合只有交易需求,不需要投研的投资者。

  • gm SDK 既包括行情接口,也包括交易的接口。既可以实时模式,也可以回测模式。在使用过程中需要关联终端,适合有投研需求的投资者。

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

数据问题

数据频率及范围

- 目前已经支持的市场有哪些?
- 历史数据支持什么频度和时间段?
  • 股票支持范围

    • Tick行情:最近三个月内
    • 分钟行情:60s以及60s的整数倍(2016-1-1 - 至今), 1d(2005-1-1 - 至今)(注:暂不支持60s以下数据)
  • 期货支持范围

    • Tick行情:最近三个月内
    • 分钟行情:60s以及60s的整数倍(2016-1-1 - 至今), 1d(2005-1-1 - 至今)(注:暂不支持60s以下数据)
- 订阅实时数据支持哪些频率?
- 实时模式Tick数据多久推送一次?
  • 上交所:3秒
  • 深交所:3秒
  • 中金所:0.5秒
  • 上期所:0.5秒
  • 大商所:平均约0.5秒
  • 郑商所:平均约0.5秒
- 掘金有没有竞价数据?怎么取竞价数据?
  • 有,实时行情中订阅了tick就会推送; 历史的集合竞价数据可通过Tick的相关查询函数获取。
- 如何获取全市场股票或期货合约代码?
  • 使用get_instruments函数即可获取全市场代码,通过指定sec_level可以对市场标的进行筛选
  • 获取全市场股票示例代码get_instruments(exchanges='SZSE,SHSE', sec_types=1, fields='symbol',df=1)['symbol'].tolist()

    - 掘金的数据更新时间,为什么收盘后获取不到当日的数据。
  • tick, bar 可以实时更新。

  • 日线数据当天 19:00左右。
  • 当天主力合约晚上 20:00 左右后更新
  • 市场指标第二天早上6:00左右更新。

数据返回

- 为什么我输入标的代码没有数据,关于上期所、大商所、郑商所、中金所的代码有什么区别?
  • 所有交易所的主力合约和连续合约为虚拟合约,不可交易,代码为大写,如:热卷主力SHFE.HC, 连一SHFE.HC00上期所大商所国际能源交易中心,可交易合约代码为小写,如SHFE.hc1710DCE.i1805, INE.sc1809郑商所规则比较特殊,可交易真实合约代码也是大写,并且数字只有3位,如:CZCE.SF710中金所规则中合约代码是大写,数字是正常的4位,如CFFEX.IF1806
- 为什么订阅50个以上的标的数据没有全部返回?
  • 免费版目前只支持订阅50个标的, 超过的不会返回, 并且暂时没有提示
- 实时行情订阅主力合约为什么没有数据?
  • 因为当天主力合约要收盘后才知道,所以没有数据。
- 实时行情15:00:00也会收到tick 和bar吗?
  • 会的:
    • 不同合约收盘时间不同,比如国债期货T,TF的收盘时间是15:15:00;
    • 同时bar的合成也会有稍许的延时,会在收盘时间后收到。
    • 期货交易所在收盘后还有当天结算价的数据推送,会收到tick
- 关于tick 和 bar的数据都是固定推送的吗?
  • tick无限制,bar无交易不推送。
- 实时行情订阅中,是等单根bar走完才能取到数据吗?
  • 是的,在单根bar的eob(结束时间)后才能获取到。
- 一个股票同时订阅了同周期不同品种的bar,推送的顺序为什么不是订阅的顺序?
  • 按时间推送,不同品种的时间有微小的差异,所以顺序会不一致。
- 1分钟bar历史数据,一次最多提取多少根?有哪些限制? tick最多提取多少根?
  • 都是33000。33000 是一分钟bar的上限,因为其他频度是一分钟bar合成的,所以上限数会下降,提取数据时超出该部分的数据将不会被返回。
  • 股票不提供60s以下频率的历史和实时数据,如30s;
  • tick最多不能超过33000条,tick数据可提取最近3个月
- 为什么股票今天停牌,指定过滤掉停牌股票,却没有被过滤掉?
  • 盘前发布停牌公告,当天才会处理到。
- 为什么tick数据获取的 asks / bids报价为空?
  • 涨停附近ask可能为空;跌停附近bid 可能为空;但是ask,bid为空不一定要是在涨跌停附近的,有些合约不活跃确实可能出现非涨跌停阶段没有买卖挂单。

数据差异

- history函数获取的价格,经过复权了吗?
  • 可以通过参数指定,参看history
- history或者history_n前复权查询结果有误
  • 需要填写adjust=ADJUST_PREV 和adjust_end_time=context.now.date()参数
- 为什么回测订阅日线,成交时间是15:15?
  • 有些标的一直到15:15都可以交易,为了对齐时间,统一15:15成交。
- 为什么同一段时间的相同品种的两个合约,bar数据长度不一样?
  • 没有成交量的时间段不会推送数据。
- 复权因子提供精确到多少位?为什么和wind的不一样?计算方法是什么?
  • 目前是提供了16位小数。
  • 因为我们不是拿的wind的数据;
  • 以上市第一天为标准,计算每次时间区间的累积除权因子,即顺推复权价格与每天实际交易价格之间的比值关系.
- 为什么回测时推送的复权价格和行情软件上看到的不一样?
  • 回测时复权的时间基准是回测指定的结束时间(backtest_end_time,参见run),相当于行情软件中的定点复权,通常看行情时用的是前复权不复权,因此有时侯会不一样。
- 停牌或交易不活跃代码为什么没有bar数据?
  • 停牌的股票代码不会生成日线和bar数据;交易不活跃的代码,在没交易的期间,也不会生成bar数据。
- Subscribe中的 count 和 context.data 中的 count 有什么区别和联系?
  • Subscribe 的count用于指定订阅的数据滑窗大小,推送时不同标的还是指推送一根bar的数据。
  • context.data的count用于指定读取的数据滑窗的大小,应小于等于subscribe的数据滑窗大小。

仿真问题

- 仿真市价单以什么价格下单?
  • 市价单发出时是没有价格的,按对手挂单逐档撮合,有成交价。
- 仿真模式的订单待报是什么状态?
  • 订单已发出去,还没有得到柜台确认。
- 仿真模式11:30下的单如何处理?
  • 仿真模式此单挂在云端。
- 仿真在哪里设置手续费?
  • 在账户管理-仿真账户-设置手续费进行设置,目前支持对给交易所和品种手续费的独立设置
- 仿真模式期货交易是否有结算处理?
  • 目前没有
- 策略下单会经过掘金服务器吗?
  • 不会。策略委托根据交易通道的配置,直接发送到对应的券商/期货柜台。
- 非交易时段, 在实时模式下策略能运行吗?
  • 不能, 实时模式推送的是实时行情,也就是交易所的实时行情,只有交易时段才有。
- 仿真挂单冻结资金是怎样计算的?
  • 限价冻结资金:报价委托数量+手续费(买入金额0.001),市价冻结资金:当前价委托数量+手续费(买入金额0.001)

回测问题

- 回测模式市价单以什么价格成交?
  • 如果订阅了该交易标的,默认下单为下一根K线开盘价成交。如tick 为下一根tick的最新价成交, 日线以第二天开盘价成交。
  • 如果未订阅行情,则所有成交价都是第二日的开盘价。
- 回测模式下市价单,是复权还是不复权价格?
  • 按照run中指定的复权方式计算,持仓均价计算亦如此。
- 复权回测模式下限价单,委托价格price如何设置合理?
  • 建议使用订阅行情数据。
  • 限价单的委托价格price通过history,history_n接口获取时,需要将复权基点时间参数adjust_end_time设置为与run函数回测结束时间参数backtest_end_time一致,否则限价单的成交价为非统一口径复权价格,回测失效。
- 回测中股票今天买入的也能卖?
  • 回测目前不限制今昨仓,今天的买的今天可以卖,卖出需要计算下昨仓, 股票期货均是如此逻辑。仿真和实盘状态下会有限制。
- 回测中股票超过涨跌停价格也能成交?
  • 回测对股票成交价格没有限制.
- 回测时复权价格是如何计算得来的?
  • 在回测模式下,当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]

- 回测缓存的数据在哪里?
  • 策略文件同一目录下的gmcache文件夹中。
- 如何提高回测效率?
  • 使用订阅行情方式, 每次回测会缓存相应的行情数据,方便下次使用相同回测参数,效率会提升。

实盘问题

账户问题

- 手续费设置
  • 实盘账户不支持手续费字段,按照券商\期商实际收取为准。
- 多账户设置
  • 同一券商的多个资金账户具体看券商的合规要求通不通过(一般情况产品户下多个资金账户是支持的,个人户不支持)

  • 多个不同券商的资金账户不支持。

- 子账户和分账户
  • 掘金暂不支持
- 账户一直断线重连
  • 检查下CPU和内存的占用情况,一般是内存不足或者网络问题导致的,策略在本机上运行消耗的内存较大,建议升级配置,网络问题请联系网络同事检查。
- 满仓用order_value()或者order_target_value()下市价单报资金不足
  • 柜台冻结会按照涨停价冻结资金,order_value()或者order_target_value()或者order_percent()或者order_target_percent()会根据当前价计算委托量,会导致柜台冻结的资金超出可用资金,建议使用order_volume()接口
- 每天初始化
  • 终端和策略需要每天自动重启,终端自动重启会自动登录上交易账户,建议终端重启时间在(早晚8:50之后,因为早晚8:50掘金服务会重启),策略需要在交易账户登录之后重启,可使用Windows的任务计划程序执行定时启动策略,建议时间设置在终端重启时间之后
- CTP柜台重连
  • 夜盘开始前需要设置掘金终端自动重启,重连资金账户,更新数据。例:20:55

实盘市价单和限价单

  • 不同委托类型按照表中参数填写,斜杠为默认值可不填
    市价单和限价单

其他

- 下单延迟
  • 下单系统延迟10毫秒左右,网络延迟以本地网络为准。
- 运行在云端出现断线问题
  • 可能存在端口限制,建议在安全组里设置开放全部协议和端口。
- 数据延迟
  • 所有的行情软件都是转发交易所数据,都有延迟。
  • 上海的行情会延迟一个tick,想要更快的行情需要用券商托管版。
  • 深市采用流式行情,延迟会比沪市的小。
- 券商托管版能否与外部连接
  • 券商托管服务器部署在券商内网,一般是不能和外网连接的,只能通过拷贝的方式传递数据。需要开放外网端口的,需要联系券商协调沟通。
- 实盘委托常见报错
  • 数量一栏不显示数字:委托数量填了0或负数。
  • 撤单拒绝显示返回码26:20:55-20:59是集合竞价可以下单,20:59-21:00这一分钟是撮合时间不能撤单。
- 识别今仓和昨仓
  • 上期所需要识别今仓和昨仓,否则会默认平昨仓。
- 买入卖出时间记录
  • 实盘柜台没有返回买入或卖出时间的字段,需要自行记录本地时间。
- 策略重启
  • 实盘策略需要每日重连,确保数据更新。
- 持仓查询问题
  • 为什么有些持仓在掘金里可以看到,在同花顺等软件中看不到?

  • 对接的柜台不同,相互之间是看不到的。详情可咨询券商工作人员询问接的是哪个柜台,下载对应柜台版本的app或者终端。

- SPC、SP表示什么意思
  • 期货持仓里会出现类似“DCE.SPC jd1809 &jd1901”的字样,意思是套保组合。大商所和郑商所针对这两种套利方式设计专门的套利指令,规定套利交易的保证金只收取两个保证金中较高的一个。如果是通过普通下单功能自行组合的套利单,大商所会自动判定,郑商所不会自动认定,整体上对交易无太大影响。
- 实盘时11:30下的单如何处理?
  • 实盘会直接发往柜台。
- 策略下单会经过掘金服务器吗?
  • 不会。策略委托根据交易通道的配置,直接发送到对应的券商/期货柜台。
- 期货实盘时用order_percent/order_target_percent中percent是根据交易所保证金计算还是真实保证金?
  • percent是根据交易所计算的而非真实保证金计算。期货下单时不建议使用order_percent,因为保证金比例总会发生变化,建议使用order_volume

撮合方式

回测投研的业务规则

支持品种
  • 股票(A股和B股)、期货、场内基金
撮合机制
  • 市价单委托,成交价为下一根bar的开盘价。(在定时任务中下单则以下一交易日开盘价成交, tick回测用下个tick的price成交)

  • 限价单委托,成交价为下单函数中指定的price参数数值 (设置滑点成交价会增加相应的滑点)

  • 不考虑价格和成交量限制 (下单价格注意不要偏离当前价格,如果委托量较大,需要考虑对盘口的冲击,建议适当增加滑点)

  • 股票没有限制T+0 (卖出时注意要用昨仓)

结算规则
  • 交易结算,根据交易变动结算账户的资金和持仓数据

  • 盘后结算,盘后校验账户全天交易数据

手续费规则
  • 手续费按双边收取,不区分交易品种,只能设置佣金比例
分红配送
  • 不支持分红配送,可设置前复权模式,回测的数据经过复权处理,不需要计算分红配送
委托校验
  • 支持委托校验,开仓验资\平仓验券\标的代码\合法性校验, 不支持价格和成交量校验
资金调整
  • 不支持对账户资金的转入转出
挂单冻结
  • 不支持挂单冻结,下单会立刻成交
条件单
  • 不支持条件单
  • 不支持预埋单

仿真交易的业务规则

支持品种
  • 股票(A股和B股)、期货、场内基金
撮合机制
  • 交易时间段撮合

  • 委托按照价格优先,时间优先

  • 市价单委托,按照对手挂单价和量逐档撮合(从第一档开始撮合,若对手挂单量>=委托量,则以当前价成交。若对手挂单量<委托量,则继续用第二档数据撮合,成交价为第二档)

  • 限价单委托,按照对手挂单价和量逐档撮合(价格优先,若对手价<=挂单价, 则从第一档开始撮合,若对手挂单量>=委托量,则全部成交。若对手挂单量<委托量,则继续用第二档数据撮合, 若对手价>挂单价,则继续等待)

  • 支持交易所的各种委托类型

  • 股票T+1交易,期货T+0交易

结算规则
  • 盘中实时结算,根据交易实时结算账户的资金和持仓数据

  • 盘后结算,盘后校验账户全天交易数据,期货合约过期第二天自动交割

手续费规则
  • 股票和基金手续费,支持按设定的费率收取,有最低手续费限制,

  • 期货手续费,支持按交易方向,交易金额比例和交易手数收取,保证金比例默认按交易所比例设置

  • 手续费双边收取

分红配送
  • 股票账户会在除权除息日自动根据分红配送数据,调整账户的资金和持仓数量
委托校验
  • 支持委托校验,开仓验资\平仓验券\标的代码\价格\数量等字段合法性校验
资金调整
  • 支持对账户资金的转入转出
挂单冻结
  • 开仓委托\平仓委托未成交时,冻结对应资金\持仓

  • 委托已成\已撤\过期时,解除对应的冻结资金

交易时段
  • 支持期货市场的日盘和夜盘,连续竞价交易时段

  • 支持股票市场的集合竞价,连续竞价交易时段

条件单
  • 不支持条件单
  • 不支持预埋单
0 篇笔记