Em relação ao spread, tenho uma sugestão, garantir spread na execução de ordem pendente não existe. Mas o que pode ser feito é o seguinte, tenho um EA que utiliza uma espécie de filtro de proteção contra a oscilação de spread, funciona da seguinte forma: a cada tick ele analisa o spread atual e faz uma média (spread médio). Nos parâmetros, você limita qual o spread máximo para abrir operações. Se o EA identifica um aumento constante ou repetino de spread médio ele remove todas as ordens pendentes e só as recoloca/reposiciona, quando o spread médio volta ao normal.
Se quiserem que eu adicione essa funcionalidade no EA, me passem a ultima versão do mq4 já com as últimas atualizações feitas que eu adiciono esse filtro do spread.