Quanto a referencia as ordens isso pode ser feito através dos "números mágicos" uma espécie de ID do robô que enviou a ordem, mas pode servir para outras finalidades como identificar o setup que originou a ordem. Tem também o campo "comment" das ordens que pode conter mais informações sobre a origem/finalidade delas. Com as ordens devidamente referenciadas fica fácil desenvolver robôs que apenas atuem (monitorem, editem e cancelem) ordens que foram enviadas por eles.
Quanto a comunicação entre os robôs, vai depender do nível de comunicação que vc quer. Uma alternativa são as "Variáveis Globais do Terminal" (não confunda com as variáveis declaradas no escopo global do programa), as funções usadas para acessa-las já implementam semáforo. Há também a possibilidade de trabalhar com Pipes, no site mql5 tem artigos sobre isso.