2.2.4

  • 所有的下单函数进行了扩展,扩展如下:
  1. # 以 order_shares 举例,其他的下单函数同理。
  2. # 原本的下单方式: 以 200 元的价格下单 100 股 000001.XSHE
  3. order_shares("000001.XSHE", 100, style=LimitOrder(200))
  4. # 下单的如下方式都OK:
  5. order_shares("000001.XSHE", 100, 200)
  6. order_shares("000001.XSHE", 100, LimitOrder(200))
  7. order_shares("000001.XSHE", 100, price=200)
  8. order_shares("000001.XSHE", 100, style=LimitOrder(200))
  • buy_closesell_close API 增加 close_today 参数,现在您现在可以指定发平今单了。
  • Breaking Change: 原本期货中的 buy_closesell_close API 返回的 Order 对象。但实际交易过程中,涉及到昨仓今仓的时候,可能会存在发单被拒单的情况,RQAlpha 进行平昨/平今智能拆单的处理,因此在一些情况下会生成多个订单,对应也会返回一个订单列表。期货平仓更新的内容请参考 Issue 116
  • Breaking Change: 取消 Order | Trade 对应的 from_create 函数中 calendar_dttrading_dt 的传入,对接第三方交易源,构建订单和成交的 Mod 可能会产生影响,需要进行修改.
  1. # 原先的构建方式
  2. Order.__from_create__(
  3. calendar_dt,
  4. trading_dt,
  5. order_book_id,
  6. amount,
  7. side,
  8. style,
  9. position_effect
  10. )
  11. #修改为
  12. Order.__from_create__(
  13. order_book_id,
  14. amount,
  15. side,
  16. style,
  17. position_effect
  18. )
  • iPython 更新至 6.0 版本以后不再支持 Python 2.x 导致在 Python 2.x 下安装RQAlpha 因为 line-profiler 依赖 iPython 的缘故而报错。目前增加了在 Python 2.x 下依赖 iPython 5.3.0 版本解决此问题。
  • 不再提供 rqalpha-cmd 命令的扩展和注入,目前只有一个 entry point: rqalpha 第三方 Mod 可以扩展 rqalpha 命令。
  • 增加 from rqalpha import subscribe_event 来支持事件订阅(暂时不增加到API中,您如果想在策略里使用,也需要主动 import 该函数), 如下示例所示:
  1. from rqalpha.api import *
  2. from rqalpha import subscribe_event
  3.  
  4.  
  5. def on_trade_handler(event):
  6. trade = event.trade
  7. order = event.order
  8. account = event.account
  9. logger.info("*" * 10 + "Trade Handler" + "*" * 10)
  10. logger.info(trade)
  11. logger.info(order)
  12. logger.info(account)
  13.  
  14.  
  15. def on_order_handler(event):
  16. order = event.order
  17. logger.info("*" * 10 + "Order Handler" + "*" * 10)
  18. logger.info(order)
  19.  
  20.  
  21. def init(context):
  22. logger.info("init")
  23. context.s1 = "000001.XSHE"
  24. update_universe(context.s1)
  25. context.fired = False
  26. subscribe_event(EVENT.TRADE, on_trade_handler)
  27. subscribe_event(EVENT.ORDER_CREATION_PASS, on_order_handler)
  28.  
  29.  
  30. def before_trading(context):
  31. pass
  32.  
  33.  
  34. def handle_bar(context, bar_dict):
  35. if not context.fired:
  36. order_percent(context.s1, 1)
  37. context.fired = True
  38.  
  39. # rqalpha run -f ./rqalpha/examples/subscribe_event.py -s 2016-06-01 -e 2016-12-01 --stock-starting-cash 100000 --benchmark 000300.XSHG
  • sys_stock_realtime 提供了一个行情下载服务,启动该服务,会实时往 redis 中写入全市场股票行情数据。多个 RQAlpha 可以连接该 redis 获取实时盘口数据,就不需要重复获取数据。详情参考文档 sys stock realtime mod README
  • 解决期货策略持仓到交割导致可用资金计算不准确的问题
  • 解决 –plot 时候会报错退出的问题