[关闭]
@BurdenBear 2017-03-15T04:32:37.000000Z 字数 1617 阅读 304

接口设计讨论

列表项


  1. 列表项

引擎设计


合约相关

quantopian

fxdayu

个人看法:类似quantopian,收集整理合约列表,编码ID,提供使用代码查询的接口,IB接口的品种可以使用爬虫爬取、股票可以看tushare,期货从ctp接口可以查询。合约相关信息的整理还是需要做的,否则每次下单自己根据不同交易所不同合约类型手动输入各种信息将是十分痛苦的事情。

订单相关

quantopian

fxdayu

个人意见:偏好喜欢我们现在用的风格,更简约,感觉quantopian设计的接口保证词意完整,应该是为了让英文母语的人不会产生歧义。(可能order_to比较最容易产生歧义,可以改成order_pos_to这种?)

portfolio

quantopian

fxdayu

个人看法:
quantopian的接口还是那种风格,长但词意清晰。感觉这种就找金融中常用的词就好。内容应该要包含以下几个:

1.净值
2.市值
3.现金
4.已实现和未实现盈亏
5.起始资金
6.保证金占用

数据接口

quantopian

current
history
can_trade
is_stale

fxdayu

current
history
can_trade
基本一致,接口返回和pandas兼容的数据,方便用户处理

其他的对象中的属性,暂时主要是在FIX和vnpy中找的名字,常用的属性名基本已经确定
比如仓位:

  1. class PositionData(BaseData):
  2. """
  3. Attributes:
  4. symbol(str): symbol of position
  5. """
  6. __slots__ = ["gateway", "account", "symbol", "sid", "exchange", "side", "volume", "frozenVolume", "avgPrice", "marketValue"]
  7. def __init__(self):
  8. self.gateway = EMPTY_STRING # 发单网关名,实盘一个网关对应一种交易所接口
  9. self.account = EMPTY_STRING # 交易账户名
  10. self.symbol = EMPTY_STRING # 交易合约字符代码
  11. self.sid = EMPTY_INT # 交易合约数字id
  12. self.exchange = EMPTY_STRING # 交易所
  13. self.side = EMPTY_UNICODE # 交易方向,unicode类型,按vnpy的设计来的,其设计中用到中文名主要是方便直接在GUI上显示,代码中一般都用的枚举值,这个值可以修改,或者是让用户的代码中也尽量使用枚举值,亦或是再度封装,比如下单接口中的订单价格类型)
  14. self.volume = EMPTY_INT
  15. self.frozenVolume = EMPTY_UNICODE
  16. self.avgPrice = EMPTY_FLOAT
  17. self.marketValue = EMPTY_FLOAT

版本更替相关

引擎的1.0版本已经经过了充分的DEBUG,可以作为我们以后整个测试的基础,可以将引擎的1.0版本所计算出的策略结果和之后版本的输出进行自动化的比对。为了实现自动化的比对,需要在以下几条输出上进行约定:

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注