Как заработать деньги. Проект сам себе финансист.
апрель 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
Главная » » »

Выбор ордера или позиции с помощью OrderSelect()

В предыдущей статье был приведен полный перечень торговых функций, которые можно использовать в эксперте. Как Вы уже, наверное, успели заметить, подавляющее большинство этих функций позволяет получить какую-то информацию об ордере или позиции, которые были предварительно выбраны с помощью функции OrderSelect().

Формат функции OrderSelect():

 bool OrderSelect ( int index, int select, int pool=MODE_TRADES ) 

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

Ордер/позицию можно выбрать двумя способами:

  • По номеру тикера;
  • По порядковому номеру ордера/позиции в списке.
  • Если Вы знаете тикер ордера или позиции, то в качестве параметра select надо передать значение SELECT_BY_TICKET, а в качестве параметра index - номер тикера ордера или позиции. Третий параметр в этом случае не используется и его можно опустить.

    Пример выбора по тикеру:

     //---- выбираем ордер/позицию с тикером 77777 if ( OrderSelect (77777, SELECT_BY_TICKET) == true) Print("Ордер #77777 выбран успешно"); else Print("OrderSelect() вернул ошибку - ",GetLastError()); 

    Если Вы не знаете тикера, то существует другой способ выбрать ордер или позицию. Для этого Вам надо выбрать ордер или позицию из списка открытых позиций или неудаленных отложенных ордеров (значение параметра pool равно MODE_TRADES) или из списка закрытых позиций или удаленных ордеров (параметр pool равен MODE_HISTORY). В обоих случаях параметр select должен быть равен SELECT_BY_POS. В параметре index Вы должны указать порядковый номер этой позиции или ордера в списке открытых позиций или неудаленных отложенных ордеров (pool равен MODE_TRADES) или в списке закрытых позиций и удаленных отложенных ордеров (pool равен MODE_HISTORY).

    Этот способ очень полезен, когда Вам нужно "пробежаться", например, по всем открытым позициям:

     int pos; int total = OrdersTotal(); for ( pos = 0; pos
    

    В этом примере для нас новой является функция OrdersTotal(). Эта функция выводит количество открытых позиций и неудаленных отложенных ордеров. Ее, а также функцию HistoryTotal(), будет рассмотрен в следующих выпусках.



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

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

    Оператор переключения switch

    Ранее мы узнали об условном операторе if-else, с помощью которого можно изменить порядок выполнения операторов в эксперте. Достаточно часто возникают ситуации, когда нам надо заложить в эксперте не два, а больше варианта развития событий. Например, переменная i может принимать целочисленные значения от 1 до 5 и в зависимости от того, какое значение имеет эта переменная, возможны 5 различных последовательностей операторов. Такую задачу легко можно решить с использованием множества вложенных условных операторов if-else.

     if (i == 1) оператор1; else if (i == 2) оператор2; else if (i == 3) оператор3; else if (i == 4) оператор4; else if (i == 5) оператор5; 

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

    Формат оператора switch:

     switch(выражение) { case константа1: операторы1 case константа2: операторы2 ... default: операторы_default } 

    Принцип работы этого оператора: сначала вычисляется значение "выражения", потом среди констант "константа1", "константа2" и др. ищется константа, которая равна результату "выражения". Если такая константа найдена, то оправление передается на соответствующую группу операторов. После этого последовательно выполняются все операторы этой группы и всех последующих, пока не будет выполнен последний оператор в операторе switсh или не будет осуществлен досрочный выход из оператора switсh с помощью оператора break. Если же не было найдено подходящей константы, то управление передается на группу операторов "операторы_default".

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

    Каждый вариант case может быть помечен целой константой, символьной константой или константным выражением.

    Теперь в качестве примере перепишем наш пример с переменной i и 5 вариантами действий с помощью оператора switch:

     switch (i) { case 1: оператор1; break; case 2: оператор2; break; case 3: оператор3; break; case 4: оператор4; break; case 5: оператор5; break; } 

    По-моему, выглядит гораздо более читаемо.

    Я уверен, что Вам уже не терпиться научить Вашего эксперта торговать. Язык MetaQuotes Language 4 позволяет осуществлять ПОЛНЫЙ контроль над торговым счетом - открывать/закрывать позиции, размещать/модифицировать и удалять ордера, получать информацию об открытых позициях и уже закрытых сделках и многое-многое другое.

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



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

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


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






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

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

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




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

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

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

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