ricequant / rqalpha-mod-ctp

RQAlpha 对接 ctp 的扩展 Mod。通过启用该 Mod 来实现期货策略的实盘交易
Apache License 2.0
234 stars 36 forks source link

接收不到行情数据 #4

Open rickyall opened 7 years ago

rickyall commented 7 years ago

用户登录:RspInfo(ErrorID=0, ErrorMsg=b'CTP:No Error') 交易日期: b'20171020' 连接市场数据: RspInfo(ErrorID=0, ErrorMsg=b'CTP:No Error')

KimChow commented 6 years ago

[2018-03-03 20:12:43.020316] INFO: system_log: 同步数据中。 Traceback (most recent call last): File "TraderApi.pyx", line 701, in ctp._TraderApi.TraderSpi_OnRspQryInvestorPosition (ctp/TraderApi.cpp:17799) File "/home/supervisor/venv/rq/lib/python3.5/site-packages/rqalpha_mod_ctp/ctp/api.py", line 47, in wrapper result = func(api, pData, pRspInfo, nRequestID, bIsLast) File "/home/supervisor/venv/rq/lib/python3.5/site-packages/rqalpha_mod_ctp/ctp/api.py", line 256, in OnRspQryInvestorPosition if pInvestorPosition.InstrumentID: AttributeError: 'NoneType' object has no attribute 'InstrumentID'

我也遇到类似的问题

asxzy commented 6 years ago

我这里也遇到了相同的问题。 配置文件

# http://rqalpha.readthedocs.io/zh_CN/stable/intro/run_algorithm.html
version: 0.1.6

# 白名单,设置可以直接在策略代码中指定哪些模块的配置项目
whitelist: [base, extra, validator, mod]

base:
  # 数据源所存储的文件路径
  data_bundle_path: ~
  # 启动的策略文件路径
  strategy_file: strategy.py
  # 策略源代码
  source_code: ~
  # 回测起始日期
  start_date: 2015-06-01
  # 回测结束日期(如果是实盘,则忽略该配置)
  end_date: 2050-01-01
  # 设置保证金乘数,默认为1
  margin_multiplier: 1
  # 运行类型,`b` 为回测,`p` 为模拟交易, `r` 为实盘交易。
  run_type: p
  # 目前支持 `1d` (日线回测) 和 `1m` (分钟线回测),如果要进行分钟线,请注意是否拥有对应的数据源,目前开源版本是不提供对应的数据源的。
  frequency: tick
  # Benchmark,如果不设置,默认没有基准参照。
  benchmark: ~
  # 在模拟交易和实盘交易中,RQAlpha支持策略的pause && resume,该选项表示开启 resume 功能
  resume_mode: false
  # 在模拟交易和实盘交易中,RQAlpha支持策略的pause && resume,该选项表示开启 persist 功能呢,
  # 其会在每个bar结束对进行策略的持仓、账户信息,用户的代码上线文等内容进行持久化
  persist: false
  persist_mode: real_time
  # 设置策略可交易品种,目前支持 `stock` (股票账户)、`future` (期货账户),您也可以自行扩展
  accounts:
    # 如果想设置使用某个账户,只需要增加对应的初始资金即可
    stock: ~
    future: 100000
  # 设置初始仓位
  init_positions: {}
  # 根据价格最小变动单位调整发单价格
  round_price: false

extra:
  # 选择日期的输出等级,有 `verbose` | `info` | `warning` | `error` 等选项,您可以通过设置 `verbose` 来查看最详细的日志,
  # 或者设置 `error` 只查看错误级别的日志输出
  log_level: verbose
  user_system_log_disabled: false
  user_log_disabled: false
  # 通过该参数可以将预定义变量传入 `context` 内。
  context_vars: ~
  # force_run_init_when_pt_resume: 在PT的resume模式时,是否强制执行用户init。主要用于用户改代码。
  force_run_init_when_pt_resume: false
  # enable_profiler: 是否启动性能分析
  enable_profiler: false
  is_hold: false
  locale: zh_Hans_CN
  logger: []

validator:
  # close_amount: 在执行order_value操作时,进行实际下单数量的校验和scale,默认开启
  close_amount: true

mod:
  ctp:
    enable: true
    # CTP 登录信息
    login:
      user_id: ""
      password: ""
      broker_id: "9999"

    # 事件相关设置
    event:
      # 是否使用默认的 CTP 实时数据源
      enabled: true
      # 是否在非交易时间段内触发行情事件
      all_day: false
      #address: "tcp://180.168.146.187:10011"
      address: "tcp://180.168.146.187:10031"

    # 交易相关设置
    trade":
    # 是否使用默认的 CTP 交易接口
      enabled: true
      #address: "tcp://180.168.146.187:10001"
      address: "tcp://180.168.146.187:10030"

使用的是simnow的模拟ctp