Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Lian3
31
Lian3  

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

 

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); 

Vasyl Nosal
18655
Vasyl Nosal  

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

???

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

Lian3
31
Lian3  
eevviill:

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

???

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

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

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

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

Lian3
31
Lian3  
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); 

}

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

Vasyl Nosal
18655
Vasyl Nosal  
ок. Теперь давай поиграем в игру А что делает return(0); в цыкле?
Victor Nikolaev
Модератор
14662
Victor Nikolaev  
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); 
}
Lian3
31
Lian3  
Убрал return(0) , все заработало. Очень  благодарен за помощь!!!
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий