« Предыдущий пост | На главную страницу | Следующий пост »

Пример использования функции OrderDelete()

В прошлом выпуске я рассмотрел функцию OrderDelete(). Эта функция удаляет отложенный ордер.

Рассмотрим применение этой функции на примере:

Предположим, что наш эксперт по какой-то логике (не будем здесь вдаваться в подробности) выставляет по одному инструменту сразу два отложенных ордера - Buy Limit и Sell Limit. Наша задача - если один из ордеров сработал, то удалить оставшийся отложенный ордер.

Предположим, что по данному инструменту работает только наш эксперт.


Пусть в момент выставления каждого отложенного ордера было задано "магическое" число, одинаковое для каждого отложенного ордера. Предположим, что это "магическое" число хранится в переменной MyMagicNumber.

   // просмотрим все открытые позиции и выставленные ордера
   int pos;
   for(pos=0; pos<OrdersTotal(); pos++)
     {
      // выделим текущий ордер, чтобы получить о нем информацию
      if (OrderSelect(pos, SELECT_BY_POS))
        {
         // Если "магическое" число совпадает и это открытая позиция 
         if ((OrderMagicNumber()==MyMagicNumber) && (OrderType()<=OP_SELL))
          {
           // найти второй отложенный ордер
           int i;
           for(i=0; i<OrdersTotal(); i++)
            {
              if (OrderSelect(i, SELECT_BY_POS))
               {
                if ((OrderMagicNumber()==MyMagicNumber) && (OrderType()>OP_SELL))
                 {
                   // ордер найден - удалим его
                   if (OrderDelete(OrderTicket()))
                    {
                     Print("Ордер удален");
                    }
                   else
                    {
                     Print("Ошибка ", GetLastError(), " при удалении ордера");
                    }
                 }
               }
            }
           // выйти из цикла
           break;
          } 
        } 
     }

В следующем выпуске я продолжу рассмотрение торговых функций и расскажу о функции OrderClose().



Все статьи по теме "Пишем советников для MetaTrader 4".

« Предыдущий пост | На главную страницу | Следующий пост »

Подписаться на мою рассылку



Размещение статьи "Пример использования функции OrderDelete()" на Вашем сайте

Размещение статьи "Пример использования функции OrderDelete()" на Вашем сайте возможно при условии выполнениия следующих условий:

  • Запрещается изменение оригинального текста без согласия автора - Андрея Ведихина.
  • Должен быть указан первоисточник. В случае публикации в интернете Вы должны разместить следующий код гиперссылки без изменений:
  • Запрещается коммерческое использование материалов, взятых с блога "Интернет-трейдинг на форекс / forex". Доступ к ним должен быть свободным, без взимания какой-либо платы, без обязательной регистрации и/или заполнения опросного листа (анкеты) и т.д.

В случае выполнения данных условий не требуется согласия автора блога "Интернет-трейдинг на форекс / forex" на размещение статьи "Пример использования функции OrderDelete()" на Вашем сайте.

Журнал FOREX MAGAZINE:



Архив номеров FOREX MAGAZINE
Котировки Forex:

Счетчики:

Авторские права © 2005-2006 Андрей Ведихин

Условия использования материалов блога "Интернет-трейдинг на форекс / forex"

Контакты с автором:


Движок сайта:
Movable Type 5.04