Понятно. Кратко - S/L и T/P в теле SetOrder вычисляются неправильно (у меня). Как внешние переменные - всё в порядке. Версия 3.70.

 
Понятно. Кратко - S/L и T/P в теле SetOrder вычисляются неправильно (у меня). Как внешние переменные - всё в порядке. Версия 3.70.
 
пришлите свой вариант эксперта
Без детальной информации, к сожалению, никак помочь не получится.
Пришлите, пожалуйста, своего эксперта по адресу: stringo@metaquotes.ru
 
Стандартная процедура из вашего примера MACD, но ...

....
If iACPrevious>iACLast and iACPrevious>iACCurrent then
{
SetOrder(OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,LawnGreen); // открываем длинную
prevTime=Time;
Exit; // выходим, так как все равно после совершения торговой операции
};
...

Использование внешних переменных (по отношению к SetOrder) не спасает. Наверное, дело в скорости изменения цены, интерпретатор, очевидно, не успевает.
Для получения симметричных стопа и профита приходится использовать
TP=TakeProfit*Point;
SL=TP;
 
приведите полный код и укажите значения SL и TP
Пожалуйста, экономьте свое и наше время - сразу пишите детали. Если это касается эксперта, то приводите весь код с указанием входных данных, включая финансовый инструмент и его период. Краткость тут не нужна.