这个不是用于EA的算法,而是用来解说平台是如何把你的订单发送到银行间市场撮合成功的。
循环调度(Round Robin Scheduling)算法就是以循环的方式依次将请求调度不同的服务器,即每次调度执行i = (i + 1) mod n,并选出第i台服务器。算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。
在系统实现时,我们引入了一个额外条件,当服务器的权值为零时,表示该服务器不可用而不被调度。这样做的目的是将服务器切出服务(如屏蔽服务器故障和系统维护),同时与其他加权算法保持一致。所以,算法要作相应的改动,它的算法流程如下:
循环调度算法流程
假设有一组服务器S = {S0, S1, …, Sn-1},一个指示变量i表示上一次选择的
服务器,W(Si)表示服务器Si的权值。变量i被初始化为n-1,其中n > 0。
j = i;
do {
j = (j + 1) mod n;
if (W(Sj) > 0) {
i = j;
return Si;
}
} while (j != i);
return NULL;
循环调度算法假设所有服务器处理性能均相同,不管服务器的当前连接数和响应速度。该算法相对简单,不适用于服务器组中处理性能不一的情况,而且当请求服务时间变化比较大时,循环调度算法容易导致服务器间的负载不平衡。
也就是说,你的订单由平台商形成队列发送,如果平台商接入12家银行的情况下,进行无差别(当然受权重排序影响,成交量最大,成交最迅速即流动性最佳的银行对手排第一)轮询。如果你有10万手报价,第一家银行这个价位只能接受5万手,然后转第二个交易商...如果想快速成交到现价,使用立即成交否则取消指令(Immediate or Cancel,IOC)同时向12家银行报价,否则执行轮询。
高频交易的特点,
-
平台发现12家银行,订单都排到第5家银行了,那就代表这个方向的力度很大,因此开始在这个方向上增加订单。
-
12家银行中,一般付费即交易成本高的报价来源都成交了,意味着后市往这个方向运动。
-
微信公众号:天泓评测

发表评论