Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Миллионы трейдеров качают коды из библиотеки MQL5. Поделись своей программой!
Lian3
31
Lian3 2016.01.19 19:56 

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

 

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
18208
Vasyl Nosal 2016.01.19 20:18  

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

???

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

Lian3
31
Lian3 2016.01.19 20:29  
eevviill:

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

???

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

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

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

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

Lian3
31
Lian3 2016.01.19 21:17  
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
18208
Vasyl Nosal 2016.01.20 09:07  
ок. Теперь давай поиграем в игру А что делает return(0); в цыкле?
Victor Nikolaev
Модератор
14041
Victor Nikolaev 2016.01.20 13:18  
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 2016.01.20 18:46  
Убрал return(0) , все заработало. Очень  благодарен за помощь!!!
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий