下单/平仓
2024-11-05 17:14:44 0 举报
下单/平仓是一份关于投资交易的文件,它详细列出了投资者买入或卖出金融工具的具体信息,如股票、债券、期货、期权等。文件包含核心内容,如交易价格、交易数量、交易时间等。此外,文件还可能包含一些修饰语,如交易原因、市场分析等,为投资者提供更全面的交易背景。
作者其他创作
大纲/内容
IBKR web下单:获取交易账户为空
一直等待回调返回价格信息1.重试20次2.每次等待1秒
将准备好的订单信息丢进kafka
保存订单信息入库1. 订单信息2. 订单记录3. 组合订单关系4. 保存订单与策略的关系
异步返回标的物详情信息
是
是否获取到详情数据
1.当日必定成交撮合2.指定交易时限必定成交
重试3次,每次等待300毫秒
收到异步回调,缓存ACC账户列表
单独流程图描述
如果订单状态为:完成或取消
限价,价格:限价金额非组合保证订单才有
市价,价格为:-999
需要用户手动输入的参数:1. 交易数量需要下拉选择的参数:1. 时限规则2. 下单方式(立即/预约)单选项:1. 保证多腿同比例成交(默认选中)
异步返回标的物详情信息,缓存24小时
统一请求IBKR接口类,由该类统一管理请求IBKR相关接口
收到异步回调,缓存价格,缓存时间30秒
ACC账户列表检查
是否获取到价格
否
将立即下单和预约单为今天的订单放入需要下单的集合
统计希腊值
目的:多腿对冲数量相减等于0比率:当前订单数量/最小订单数量当前订单数量:当前订单多少手最小订单数量:这批订单里面订单数最少那个的数量
更新/新增订单
依次循环组装IBKR下单参数,循环调用
将所有订单信息组装好,调用一次IBKR下单参数
一次性快照结束返回标记:end,只作用于一次性请求
异步返回价格信息,价格只要有变动会持续返回(关键信息)
缓存24小时
下单:期权组合
回调方法:tickPrice具体返回参数:tickerId: 整数。用于跟踪数据的请求标识符。field: 整数。接收到的价格类型(例如,卖一价,买一价)。price: 双精度浮点数。实际价格。attribs: TickAttrib。一个包含价格属性的 TickAttrib 对象,例如 TickAttrib::CanAutoExecute(可自动执行)、TickAttrib::PastLimit(超限)和 TickAttrib::PreOpen(盘前)。
调用IBKR订阅行情数据:买一价
回调方法:contractDetails具体返回参数:reqId: 整数。用于跟踪数据的请求标识符。contract: ContractDetails。包含完整的合约对象内容,包括特定交易工具的所有信息。主要拿以下几个参数,才能拿到后面的价格:conid:标的物唯一号minTick:价格最小变动单位
是否组合保证订单
当收到回调信息,表示一次性请求异步返回结束回调方法:tickSnapshotEnd具体返回参数:reqId: 整数。用于跟踪数据的请求标识符。
当日限价撮合非组合保证订单才有
回调方法:tickOptionComputation具体返回参数:tickerId: 请求的唯一标识符。field: 整数。指定期权计算的类型。将字段值传递给 TickType.getField(int tickType) 以检索字段描述。例如,字段值 13 映射为 modelOptComp,其他值如下:10 = 买入价11 = 卖出价12 = 最后成交价tickAttrib: 整数。0 – 基于回报,1 – 基于价格。impliedVolatility: 双精度浮点数。由 TWS 期权模型计算的隐含波动率,使用指定的 tick 类型值。delta: 双精度浮点数。期权的 delta 值。optPrice: 双精度浮点数。期权价格。pvDividend: 双精度浮点数。期权标的资产预期股息的现值。gamma: 双精度浮点数。期权的 gamma 值。vega: 双精度浮点数。期权的 vega 值。theta: 双精度浮点数。期权的 theta 值。undPrice: 双精度浮点数。标的资产的价格。
调用IBKR接口获取ACC账户列表
通过回调接口异步返回数据
提交订单
接口方法:reqContractDetails接口类型:一次性入参:reqId: 整数。用于跟踪数据的请求标识符。contract: ContractDetails。用于查询可用合约的样本合约,通常至少包含 Symbol(符号)、SecType(证券类型)、Exchange(交易所)和 Currency(货币)。 Contract 对象
缓存中是否存在价格
IBKR
每当订单发生变化时,提供订单的最新信息
设置父订单id
是否为组合保证订单
1.重试10次2.每次等待1秒
#下单接口:placeOrder#下单参数{ \"orderId\":\"订单号\
填入参数1. 交易数量
将所有订单信息组装获取一个价格
下单失败,根据检查项给出对应提示
下单前置检查
接收交易详情。回调中直接更新数据。
接收订阅行情请求
返回方法:managedAccounts具体返回参数:accountsList: 字符串。包含托管账户 ID 的逗号分隔字符串。
行情快照获取。开盘60秒更新一次最新数据。未开盘300秒更新一次
立即成交
调用IBKR获取标的物详细信息接口
接口名:reqMktData入参:reqId: 整数。用于跟踪数据的请求标识符。contract: Contract。用于指定交易工具的合约对象。 Contract 对象(标的物信息)genericTickList: 字符串。可用通用 tick 的逗号分隔 ID 列表。(目前传的是空字符串)snapshot: 布尔值。用于获取数据的单次快照,适用于已有市场数据订阅的用户。(false:订阅,true:快照)regulatorySnapshot: 布尔值。用于获取付费数据的单次快照。每次快照费用为 $0.01。(目前:false 没用到)mktDataOptions: List<TagValue>。仅供内部使用。(IBKR 内部使用,目前没用到)
获取摆盘数据为空,请重试!
调用IBKR订阅行情数据:卖一价
循环订单集合分别获取价格
1.订单号2.订单类型3.行情市场4.下单来源5.下单时间6.标的7....
检查是否通过
平仓
检查项:1.内部订单号是否生成2.是否重复下单3.策略规则是否存在4.组合保证订单检查5.多腿对冲数量相减等于0
1. 放入集合的订单表示需要丢进kafka,消费端提交IBKR下单2. 循环结束
WEB端
收到异步回调,缓存期权相关信息,缓存一分钟(订阅行情没做处理,只做了缓存)
异步返回期权相关信息,用于订单展示,不影响功能
设置组合订单成交比率
未查询到当前标的物的信息
本次请求是否是下单
根据交易限制类型获取价格
日里量化-下单/多腿组合下单/平仓/多腿平仓
缓存中是否存在
消费者
组装订单基础信息
接收标的物详情信息请求
需要用户手动输入的参数:1. 各腿交易数量2. 各腿行权价需要下拉选择的参数:1. 组合类型(到期日)2. 期权类型3. 时限规则4. 下单方式(立即/预约)单选项:1. 保证多腿同比例成交(默认选中)
获取下单价格
1.更新订单信息2.记录下单操作日志
是否获取到
回调方法:orderStatus返回参数:orderId: 整数。订单的客户端 ID。status: 字符串。订单的当前状态。filled: 十进制。已成交的数量。remaining: 十进制。剩余的数量。avgFillPrice: 双精度浮点数。平均成交价格。permId: 长整数。订单的永久 ID,由 TWS 用于标识订单。parentId: 整数。父订单的 ID。用于括号订单和自动追踪止损订单。lastFillPrice: 双精度浮点数。最近成交的价格。clientId: 整数。提交订单的 API 客户端 ID。whyHeld: 字符串。当 TWS 尝试为卖空找到股票时,用于识别被挂起的订单。指示值为“locate”。mktCapPrice: 双精度浮点数。如果订单被封顶,则表示当前的封顶价格。
统计手续费
接收获取ACC账户列表请求
接收下单请求
#下单接口:placeOrder#下单参数{ \"orderId\":\"订单号\
填入参数1. 各腿交易数量2.各腿行权价(4腿)
只是为了获取保证金
生产者
日里后端服务
0 条评论
下一页