自营交易公司如何执行日亏损与最大亏损规则,以及为什么时效很重要
作者:曾祈荣 · · 阅读约 4 分钟
自营交易公司出售评测挑战:交易者拿到一个带规则的模拟账户,通过考核后获得资金账户并分享利润。对公司来说,规则就是产品;对工程师来说,难点在于又快又准地执行这些规则。
常见的规则
- 盈利目标:在初始余额基础上达到一定百分比的收益,才能通过当前阶段。
- 日亏损限额:一个交易日内,亏损不得超过初始余额的一定百分比。
- 最大亏损:账户净值任何时候都不得低于初始余额的某个百分比。
- 一致性:任何单日的盈利不得在总盈利中占比过高。
- 最少交易天数:需要在一定数量的盈利交易日内达成目标。
要算上未平仓的持仓,而不只是已平仓的
只看已平仓交易的日亏损检查很容易被钻空子:一直不平掉亏损的仓位就行。剩余额度必须包括当日已平仓的盈亏,加上持仓的浮动盈亏,以及隔夜利息和手续费。还要明确用哪个时钟来定义“一天”,因为交易服务器往往运行在自己的时区。
近实时,而不是每小时一次
如果违规检查由每小时一次的定时任务执行,交易者可能在超限后继续交易将近一个小时。一个基于本地快速交易数据副本、每隔几秒检查一次所有活跃账户的监控器,可以补上这个缺口。规则本身由主后端发布,确保两边使用的永远是同一套数字。
判定失败必须可靠
一旦超限,需要在交易服务器上平掉持仓并禁止交易,而不只是在数据库里标记为失败。让失败操作保持幂等,重试不会造成伤害;对交易服务器的调用要重试,服务器拒绝时要抛出错误。数据库显示“已失败”,账户却还能交易,这是最糟糕的情况。
晋级之前先核实
通过一个阶段,和判定失败一样需要谨慎。在开设下一阶段账户之前,从独立的数据源重新读取净值,确认数字一致。涉及资金的决定,值得有两个证人。
- 自营交易
- 风控
- MetaTrader 5
- 交易