Как заработать деньги. Проект сам себе финансист.
май 2011
пн вт ср чт пт сб вс
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Главная » » »

OrderDelete() - удаление отложенного ордера

Мы уже знаем, как можно выставить отложенный ордер. Для этого надо использовать функцию OrderSend(). Также мы умеем изменять параметры отложенных ордеров с помощью функции OrderModify().

В данной статье будет рассказано о том, как можно удалить отложенный ордер. Это можно сделать с помощью функции OrderDelete().

 bool OrderDelete(int ticket) 

Эта функция удаляет отложенный ордер с тикером ticket. Функция возвращает true в случае успешного удаления и false - в случае возникновения ошибки. Код ошибки можно получить, вызвав функцию GetLastError().

Применение функции 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().



Автор статьи: Андрей Ведихин

Хомячковый рай. Уйти и потеряться:

Комментарии к этой заметке больше не принимаются.




Есть что сказать? Не стесняйтесь!






Последние статьи:

Выгодные «исламские счета» для трейдеров Форекс Выгодные «исламские счета» для трейдеров Форекс Таким образом, вне зависимости от стиля работы стоит использовать «исламские счета» и сотрудничать с компаниями, которые не берут с трейдеров swap-комиссии. ..
2014-09-29
Стоит ли покупать чужие торговые сигналы и прогнозы? Стоит ли покупать чужие торговые сигналы и прогнозы? И все же основным нашим советом станет отказ от покупки торговых сигналов и прогнозов. Куда лучше научиться анализировать валютный рынок и думать всегда только своей головой. ..
2015-02-12

Видео по теме:




В мире больших денег

  • Самые богатые люди
    планеты. Ежегодные рейтинги FORBS. Истории успеха признаных финансовых гуру
  • Самые дорогие вещи:
    Часы, автомобили, ноутбуки стоимотью в десятки и сотни тысяч долларов. Рубрика "Чтоб я так жил"
  • Денежные прогнозы
    Что покупать и что продавать? Периодические прогнозы цен на иностранные валюты, акции крупнейших компаний и драгоценные металлы

ВКонтакте с деньгами

УГОЛОК АДМИНИСТРАТОРА