Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Подключи MQL5 Cloud Network. Увеличивай свой рейтинг!
A.N.F
10
A.N.F 2013.11.21 09:32 

Здравствуйте, уважаемые!

Подскажите пожалуйста следующий момент!Есть условие по которому открывается ордер:

if(OrdersTotal()==0&&High[0]>High[1])

OrderSend(Symbol(),OP_BUY,Lot,Ask,10,SL,ТP,"",0,0,Green);

и условие по которому ордер закрывается:

if(OrdersTotal()==1&&Hour()==16&&Minute()==44)

{

OrderSelect(ticket,SELECT_BY_POS,MODE_TRADES);

OrderClose(ticket,OrderLots(),Bid,10,Yellow);

}

Вопрос???!!!

Каким образом можно прописать в коде запрет открытия позиции после отработки if(OrdersTotal()==1&&Hour()==16&&Minute()==44) т.к. условие на открытие ордера сохраняется

if(OrdersTotal()==0&&High[0]>High[1]) происходит повторное открытие . Помогите пожалуйста!

Valeriy Korobeynik
24218
Valeriy Korobeynik 2013.11.21 09:53  
Fil-ov:


if(OrdersTotal()==0&&High[0]>High[1])bool o=true;

if(OrdersTotal()==1&&Hour()==16&&Minute()==44)bool c=true;

if(c)

{

OrderSelect(ticket,SELECT_BY_POS,MODE_TRADES);

OrderClose(ticket,OrderLots(),Bid,10,Yellow);

}

else if(o)OrderSend(Symbol(),OP_BUY,Lot,Ask,10,SL,ТP,"",0,0,Green);

Bicus
2395
Bicus 2013.11.21 11:18  

valeryk, а если терминал перегрузится?

Мне кажется, более правильным будет вариант заглядывания в историю.

Valeriy Korobeynik
24218
Valeriy Korobeynik 2013.11.21 11:34  
Bicus:

valeryk, а если терминал перегрузится?

Мне кажется, более правильным будет вариант заглядывания в историю.


Я направление дал, а там уже от требований автора...)
Dmitiry Ananiev
6332
Dmitiry Ananiev 2013.11.21 11:49  

смотрим время, сравниваем с рачетным. Ставим соответсвующие флаги на открытие и закрытие.

я пользуюсь для ночного скальпинга вот таким кодом.

bool OpenTime()
  {
        MqlDateTime dt;
        bool tradehour=false;
   if(begin>end && (dt.hour>begin-1 || dt.hour<end)) tradehour=true;
   if(begin<end && (dt.hour>begin-1 && dt.hour<end)) tradehour=true;

   return(tradehour);
  }

Если возвращается true то и открываем и закрываем ордера, если false, то только закрываем.

Alexey Subbotin
4999
Alexey Subbotin 2013.11.21 17:34  
Fil-ov:

OrderSelect(ticket,SELECT_BY_POS,MODE_TRADES);



1) так нельзя; если выбираем по номеру надо указывать номер, если же указываем тикет, надо указывать SELECT_BY_TICKET


2) эта строчка вообще лишняя, так как перед OrderClose() делать OrderSelect() не требуется

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