如何实现FAK发单

各位老师,请教一下:要想实现FAK功能的自动发单,TB用那个函数可以实现?

想在集合竞价发单,确保在开盘价成交,如何实现
fok和fak两种报单模式
如何开盘就发单
Buy Sell体系实盘下单支持FOK、FAK订单类型吗?
如何解决重复发单问题
这样写能实现发单5秒钟后不成交,马上撤单吗?
如何实现实时判断
延迟发单
如何实现涨跌停不开仓
如何实现无源码导入导出

FOK 和FAK指令的定义

(一)立即全部成交否则自动撤销指令(FOK指令),指在限定价位下达指令,如果该指令下所有申报手数未能全部成交,该指令下所有申报手数自动被系统撤销。

(二)立即成交剩余指令自动撤销指令(FAK指令),指在限定价位下达指令,如果该指令下部分申报手数成交,该指令下剩余申报手数自动被系统撤销。

看了解释应该理解,举个例子,如果报买入10手,盘口能买入的只有6手,

那么按照fok判断,不能全部成交,那就撤单10手,一单都不要了

如果按照fak判断,那就买入6手,剩下4手撤单。

从程序化的角度来讲,fok是很难做到的,因为本地端运行的判断总是有延迟的,在本地段判断盘口单量是否够成交,等报了单到交易所,可能情况又不一样了。

fak可以近似做到,但是也不一定。思路就是用onfill和onorder事件域,跟踪订单,发单后分别在onorder和onfill域判断。如果一手都成交不了,必然进onorder呈declared状态,那就直接写全部撤单。如果部分成交,那会进onfill域,根据fill结构体的已成交量,撤掉剩下的单量即可。