Obrigado por entradas e suas dicas. Eu joguei com algumas tweakings sem uso e quase desisti rsrs. Entendi, então, que o ea reconhecia inicialmente o valor newSL (como SELL orders) como zero, alterando instantaneamente a ordem livre do SL. Uma vez eu coloquei esta linha simples no topo: newSL = OrderStopLoss (); , a questão desapareceu. Eu consegui implementar o TrailingStep. Não é grande coisa, mas para um codificador novato como eu é uma grande conquista e muito útil: - RRB- NOVO CÓDIGO: Código Inserido else/move para short standing {newSL = OrderStopLoss (); if ((OrderOpenPrice () - Ask) gt; 200 * Estágio) newSL = OrderOpenPrice () (200 * Estágio); if ((OrderOpenPrice () - Ask) gt; 400 * Estágio) newSL = Perguntar (Ponto * TrailingStop); {newSL = NormalizeDouble (newSL, Digits); if (((OrderStopLoss () - (TrailingStep * Estágio)) gt; newSL) || (OrderStopLoss () == 0)) OrderModify (OrderTicket (), OrderOpenPrice (), novoSL, OrderTakeProfit (), 0, Vermelho); retorno (0); Não sei por que isso é necessário apenas para pedidos de Economia, mas parece funcionar perfeitamente.