Прошу помочь с экспертом

 

Нужно чтобы при модификации стоп лосса по сигналам параболика последняя модификация произошла на цену открытия ордера. Не могу правильно написать условие. Прошу помощи.

 

int dp()

{


double sl1;int i;

double sar1=iSAR(NULL,0,step,maximum,1);

double sar2=iSAR(NULL,0,step,maximum,2);

sl1=sar1;


for( i=1; i<=OrdersTotal(); i++) 

if (OrderSelect(i-1,SELECT_BY_POS)==true)


if(sar1>OrderOpenPrice())


return(0);


if(OrderType()==OP_BUY &&NormalizeDouble(sar2,5)<NormalizeDouble(sar1,5) && OrderSymbol()==Symbol())

bool res=OrderModify( OrderTicket(),OrderOpenPrice(),NormalizeDouble(sl1 ,5),OrderTakeProfit(),0);

}

return(0); 

 

for( i=1; i<=OrdersTotal(); i++)

???

for( i=0; i<OrdersTotal(); i++) 

 
eevviill:

for( i=1; i<=OrdersTotal(); i++)

???

for( i=0; i<OrdersTotal(); i++) 

  Сам не знаю почему . Убираю (=) модификация не происходит.
 
Оба варианта работают одинаково.
 
Neron_plus34:
  Сам не знаю почему . Убираю (=) модификация не происходит.

Давай поиграем в игру найди разницу.

Одну ты нашел. Ещё одна осталась. 

 
eevviill:

Давай поиграем в игру найди разницу.

Одну ты нашел. Ещё одна осталась.

 Все я нашел. Я же говорю работают одинаково. Хотел реализовать так:

 int dp()

{


double sl1;int i;

double sar1=iSAR(NULL,0,step,maximum,1);

double sar2=iSAR(NULL,0,step,maximum,2);

sl1=sar1;


for( i=0; i<OrdersTotal(); i++) 

if (OrderSelect(i,SELECT_BY_POS)==true)


if(sar1>OrderOpenPrice())

sl1=OrderOpenPrice();


return(0);


if(OrderType()==OP_BUY &&NormalizeDouble(sar2,5)<NormalizeDouble(sar1,5) && OrderSymbol()==Symbol())

bool res=OrderModify( OrderTicket(),OrderOpenPrice(),NormalizeDouble(sl1 ,5),OrderTakeProfit(),0);

}

return(0); 

}

Не модифицируеться. 

 
ок. Теперь давай поиграем в игру А что делает return(0); в цыкле?
 
Neron_plus34:

 Все я нашел. Я же говорю работают одинаково. Хотел реализовать так:

 

Не модифицируеться. 

Для вставки кода используйте кнопку SRC

int dp()
{
double sl1;int i;
double sar1=iSAR(NULL,0,step,maximum,1);
double sar2=iSAR(NULL,0,step,maximum,2);
sl1=sar1;
for( i=0; i<OrdersTotal(); i++) 
{ 
if (OrderSelect(i,SELECT_BY_POS)==true)
if(sar1>OrderOpenPrice())
sl1=OrderOpenPrice();
return(0);
{ 
if(OrderType()==OP_BUY &&NormalizeDouble(sar2,5)<NormalizeDouble(sar1,5) && OrderSymbol()==Symbol())
bool res=OrderModify( OrderTicket(),OrderOpenPrice(),NormalizeDouble(sl1 ,5),OrderTakeProfit(),0);
} 
}
return(0); 
}
 
Убрал return(0) , все заработало. Очень  благодарен за помощь!!!
Причина обращения: