股票点买3.0交易系统接口设计思路

487 阅读2分钟

一、点买【市价委托】

参数:

    股票代码:symbol、股票名称、委托方式:style(2市价)、委托价格:buyPrice、委托数量:buyNum、涨停价、跌停价、持仓时间:holdingTime、止盈线:stopProfitLine、止损线:stopLossLine、抵扣卷id:discountId、杠杆:multiple

逻辑:

  • 参数校验
  • 履约保证金的计算
  • 从缓存中获取手动接单和自动接单配置
  • 初始化订单的接单类型【自动接单还需要初始化投资人信息】
  • 将初始化的订单作为参数,调用service层方法
  • 履约保证金+交易综合费,判断用户账户的可用余额是否充足
  • 若是自动接单,判断投资人的可用余额是否充足,登录三方接口获取token,查看三方劵商的可用余额是否充足,发送委托单数据及token获取委托订单model,手动接单则不需要
  • 资金处理:冻结履约保证金和交易综合费,在交易综合费中扣除抵扣卷,抵扣卷金额大于交易综合费,则将交易综合费置为0,抵扣卷直接置为已使用并添加抵扣卷使用记录。
  • 生成资金冻结记录
  • 插入订单【委托状态交易中】,手动接单的状态是匹配中,自动接单的状态是交易中
  • 订单放入redis队列中(push、标志:订单的前缀+委托单的uuid):队列名称分为手动和自动的队列

同步成交定时器设计

  • 获取redis自动接单队列,通过队列的名称弹出(pop)订单对象
  • 将队列中的订单对象当做参数,调用service层方法
  • 校验订单的委托状态:只有交易中的才可以进行同步成交操作。
  • 从缓存中获取自动交易订单的model,判断返回状态是已成交还是部分成交。
  • 处理扣除资金的流程: 获取成交时候的。。。。。。【待续】

点卖

描述:类似于期权中的持仓中,在点买中的同步成交系统中生成持仓中的点卖订单。

平仓:

根据点买规定的持仓时间,创建一个定时器,定时查找点卖列表,通过根据创建时间与持仓时间,判断是否到了平仓的时间,需要给会员发送短信提醒平仓的时间到了。若到了时间点还没有平仓则强制平仓。

追加保证金

保证金不足,短信提醒,会员自己手动追加保证金,若没有追加保证金,不够则强制平仓。

修改止盈止损

穿仓

委托中

结算中

管理端投资人手动抢单【手动接单的匹配】

流单定时刷选