Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Совершил прорыв? Напиши статью об этом и получи 200 USD!
ALex
742
ALex 2013.03.19 07:33 
Добрый день. Подскажите какую функцию можно добавить в готовый советник, который торгует, например по трем сигналам. По каждому сигналу нужен отдельный контроль количества отложенных ордеров для их закрытия. Допустим, если выставить количество 2, то функция будет отслеживать по каждому сигналу отдельно, чтобы отложенные ордера не превышали двух и будет удалять старые при появлении новых сигналов. Уже открытие ордера не трогаются. Заранее спасибо.
Igor Kim
2758
Igor Kim 2013.03.19 07:41  
Попробуйте функцию NumberOfOrders().
ALex
742
ALex 2013.03.19 08:26  

Спасибо Игорь, изучаю..

"Значение по умолчанию -1 - означает любой ордер."  Любой и даже открытый? Или только стоп ордера и лимитники?

 NumberOfOrders(NULL, -1, 111111);

Как теперь эти выбранные ордера можно закрывать(удалять), точнее самый старый из них? До этого момента пользовался функцией OrderDelete(Ticket). По магику не удалял ни разу. 

 Наверное так?  через DellAllOrders()...

if(NumberOfOrders(NULL, -1, magic)>=Ord) DellAllOrders();

  

//-------Удаление старых ордеров, открытых иили отложенных, т.к. поступил новый сигнал.
void DellAllOrders(){
      if(WorkOrders())OrderDelete(Ticket);
}
  
//-------Поиск ордера текущей пары
bool WorkOrders(){
      for (int i=OrdersTotal()-1;i>=0;i--){
      if (!OrderSelect(i,SELECT_BY_POS))  continue;
      if (OrderSymbol()!=Symbol())        continue;
      if (OrderMagicNumber()!=magic)      continue;
      //OpenPrise=OrderOpenPrice();
      //Type     =OrderType();
      Ticket   =OrderTicket();
      return(true);}
return(false);
}
khorosh
8043
khorosh 2013.03.19 09:54  
Не надо удалять старые, чтобы открыть новые. Нужно просто модифицировать старые.
ALex
742
ALex 2013.03.19 10:42  

Не думал об этом.... Надо подумать и вспомнить про модификацию)

Как можно модифицировать бай ордер в сел? по моему нельзя... Сигналы же разносторонние... У меня же по 2 ордера минимум одновременно висят. Бай может смениться селом, а может и снова новым баем.

TarasBY
1742
TarasBY 2013.03.19 11:54  
ALex2008:

Не думал об этом.... Надо подумать и вспомнить про модификацию)

Как можно модифицировать бай ордер в сел? по моему нельзя... Сигналы же разносторонние... У меня же по 2 ордера минимум одновременно висят. Бай может смениться селом, а может и снова новым баем.

"Пол" (тип) ордеру не поменяешь, а вот цену открытия, SL и TP запросто.
ALex
742
ALex 2013.03.19 16:22  

Я про закрытие этих ордеров, а не про замену им "пола")

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

ir0407
112
ir0407 2013.03.19 23:15  
ALex2008:

Я про закрытие этих ордеров, а не про замену им "пола")

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

OrderOpenTime() вам в помощь... :)
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий