Скачать MetaTrader 5

Закрытие ордеров по нескольким магикам внутри одного советника

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Запустили испанскую и португальскую версии сайта. Оцени сам!
ALex
742
ALex 2013.03.19 07:33 
Добрый день. Подскажите какую функцию можно добавить в готовый советник, который торгует, например по трем сигналам. По каждому сигналу нужен отдельный контроль количества отложенных ордеров для их закрытия. Допустим, если выставить количество 2, то функция будет отслеживать по каждому сигналу отдельно, чтобы отложенные ордера не превышали двух и будет удалять старые при появлении новых сигналов. Уже открытие ордера не трогаются. Заранее спасибо.
Igor Kim
2739
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
8197
khorosh 2013.03.19 09:54  
Не надо удалять старые, чтобы открыть новые. Нужно просто модифицировать старые.
ALex
742
ALex 2013.03.19 10:42  

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

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

TarasBY
1739
TarasBY 2013.03.19 11:54  
ALex2008:

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

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

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

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

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

ir0407
122
ir0407 2013.03.19 23:15  
ALex2008:

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

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

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