Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Построение обычных программ 1 страница




Стандартные функции

Простые программы на MQL4

Программирование торговых операций

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

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

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

Как правило, после самостоятельного программирования нескольких простых прикладных программ на MQL4, программист переходит к более сложному проекту - созданию удобной программы для практического использования. Простые программы в ряде случаев не удовлетворяют потребностям трейдера-программиста по крайней мере по двум причинам:

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

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

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

Программирование торговых операций


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

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

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

Открытие и установка ордеров.
Наиболее важная торговая функция - OrderSend(). Именно с ее помощью торговому серверу отсылаются приказы на открытие рыночного ордера или постановку отложенного. При этом можно сразу указать требуемые значения StopLoss и TakeProfit. Некоректное значение этих параметров, а также цены открытия и объема ордера, может приводить к получению ошибок. Важно правильно обрабатывать эти ошибки. Функция MarketInfo() позволяет свести количество таких ошибок к минимуму.

Закрытие и удаление ордеров. Функция OrderSelect.
Закрытие рыночных ордеров производится с помощью функции OrderClose(), для удаления отложенных ордеров существует функция OrderDelete(). При отсылке приказа на закрытие или удаление ордера необходимо указать тикет этого ордера. Нужный ордер мы выберем с помощью функции OrderSelect(). Кроме того, если по некоторому финансовому инструменту имеется два встречных ордера, то их можно закрыть одновременно, один за счёт другого, с помощью функции OrderCloseBy(). При исполнении такой торговой операции экономится один спред.

Модификация ордеров.
Уровни TakeProfit и StopLoss можно изменять с помощью торговой функции OrderModify(). Для отложенных ордеров можно также менять уровень открытия ордера. Изменять объем для отложенных ордеров нельзя. Модификация рыночных и отложенных ордеров также налагает определенные требования на корректность этой торговой операции. При любой торговой операции крайне желательна обработка результатов этих операций, обработка ошибок.

Общий порядок проведения торговых операций

 

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

Рассматривая торговые операции, мы будем различать следующие понятия:

Рыночный ордер - исполненный торговый приказ на покупку или продажу активов по финансовому инструменту. Рыночный ордер отображается в окне финансового инструмента до тех пор, пока не выполнен приказ на закрытие ордера.

Отложенный ордер - торговый приказ на покупку или продажу активов по финансовому инструменту при достижении заданного значения цены. Отложенный ордер отражается в окне финансового инструмента до тех пор, пока он не преобразуется в рыночный ордер либо будет удалён.

Торговый приказ -приказ, сформированный программой или трейдером с целью осуществления торговой операции.

Торговая операция -открытие, закрытие или модификации рыночных и отложенных ордеров.

Схема проведения торговых операций

 

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


Рис. 65. Схема передачи торговых приказов при проведении торговых операций.

Формирование торговых приказов

 

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

Свойства программы

 

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

OrderSend() - для открытия рыночных и отложенных ордеров;

OrderClose() и OrderCloseBy() - для закрытия рыночных ордеров;

OrderDelete() - для удаления отложенных ордеров;

OrderModify() - для модификации рыночных и отложенных ордеров.

Указанные торговые функции могут использоваться только в экспертах и скриптах; использование этих функций в индикаторах запрещено (см. также Таблицу 2). Существуют и другие функции, относящиеся к торговым (см. справку в редакторе MetaEditor и раздел Торговые функции), однако их исполнение связано с обращением к информационной среде клиентского терминала с целью получения справочной информации и не приводит к формированию торговых приказов и обращению к серверу.

Свойства клиентского терминала

 

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

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

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

Свойства сервера

 

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

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

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

Порядок проведения торговых операций

 

Процесс исполнения торговых операций является интерактивным и осуществляется в режиме реального времени. На диаграмме (рис. 66) отражены все события, связанные с осуществлением торговой операции.

 


Рис. 66. Последовательность событий при осуществлении торговой операции.

 

Событие 0. Программа запущена на выполнение в момент времени t 0.

Событие 1. В момент t 1 в результате исполнения одной из торговых функций программой сформирован торговый приказ. Торговый приказ передаётся клиентскому терминалу. В этот момент программа передаёт клиентскому терминалу управление, и выполнение программы приостанавливается (красная точка на диаграмме).

Событие 2. Клиентский терминал получил управление и информацию о содержании торгового приказа. В период времени t 2 - t 3 клиентский терминал анализирует содержание торгового приказа и принимает решение о дальнейших событиях.

Событие 3. Клиентский терминал осуществляет принятое решение (один из двух вариантов).

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

Событие 4. Программа получила управление (момент времени t 4, зелёная точка) и может продолжить исполнение с того места, где ранее был сформирован торговый приказ. В этот же момент программа получила информацию о том, что торговый приказ не исполнен. Какова причина отказа исполнения торгового приказа, можно выяснить, анализируя код возвращаемой ошибки. Как это сделать, мы рассмотрим позднее. Здесь же важно отметить, что не все торговые приказы приводят к осуществлению торговых операций. В данном случае программа сформировала некорректный приказ, в результате чего клиентский терминал отклонил этот приказ и вернул управление программе. Обращение к серверу в этом случае не происходит. Интервалы времени t 1 - t 2 - t 3 - t 4 пренебрежительно малы и в общей сложности не превышают нескольких мс.

Вариант 2. В случае, если программа сформировала корректный торговый приказ, клиентский терминал отправляет этот приказ на сервер, и тогда следующим событием будет Событие 5 (момент t 5) - получение торгового приказа сервером. Связь между клиентским терминалом и сервером осуществляется по сети Internet, поэтому время, затраченное на пересылку торгового приказа на сервер (интервал времени t 3 - t 5), полностью зависит от качества связи. При хорошей связи этот промежуток времени может составлять приблизительно 5 - 10 мс, а при плохой связи может измеряться секундами.

Событие 5. В момент времени t 5 сервер получил торговый приказ. Сервер может исполнить полученный приказ или отклонить его. Решение об исполнении или отклонении приказа может быть принято на сервере через некоторое время (в момент t 6). Интервал времени t 5 - t 6 может колебаться в зависимости от обстоятельств от нескольких микросекунд до десятков секунд. В одних случаях, если сервер работает в автоматическом режиме, на рынке нет резких движений цены и нет большой активности других трейдеров, торговый приказ может быть исполнен или отклонён в считанные микросекунды. В других случаях, если сервер перегружен в результате большой активности трейдеров, а решение об исполнении/отклонении приказа принимает человек, время, затраченное на решение может составлять десятки секунд.

Событие 6. Если в течение промежутка времени с момента формирования торгового приказа программой (t 1) до момента принятия решения сервером (t 6) на рынке не произошло каких-либо существенных изменений, торговый приказ как правило, будет исполнен. Если за это же время изменилась цена по финансовому инструменту, либо стоимость открываемого ордера на момент решения превышает количество свободных средств, либо возникли другие препятствия, то сервер принимает решение отклонить торговый приказ.

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

Вне зависимости от того, какое именно решение (исполнить/отклонить торговый приказ, Событие 6) было принято сервером, информация об этом будет направлена сервером клиентскому терминалу, приславшему приказ.

Событие 7. Клиентский терминал получил ответ сервера. Ответ сервера проходит тот же путь по сети Internet, что и при отправке приказа на сервер; и время, затраченное на получение ответа сервера, полностью зависит от качества связи. В зависимости от того, какие преобразования были выполнены на сервере, клиентский терминал покажет соответствующие изменения. Например, если в результате исполнения торгового приказа был закрыт или открыт ордер, то клиентский терминал отразит это событие: графически - в окне финансового инструмента, текстом - в окне Терминала (закладки Торговля и История счёта). Если же торговый приказ был отклонён сервером, то никаких изменений в окнах клиентского терминала не произойдёт.

Событие 8. Клиентский терминал закончил отображение изменений и передаёт управление программе.

Событие 9. Программа получила управление и может продолжать работу.

Обратите внимание:

С момента, когда программа отдаёт торговый приказ (и одновременно с этим передаёт управление) клиентскому терминалу, до момента, кода управление возвращается в программу, программа находится в режиме ожидания ответа. В этот период в программе не осуществляется никаких действий. Управление возвращается в программу в соответствии с правилом исполнения вызова функции (сформировавшей торговый приказ).

Если торговый приказ был некорректным, то программа находится в режиме ожидания ответа непродолжительное время (период t 1 - t 4). Если же торговый приказ был одобрен клиентским терминалом и отправлен на сервер, то программа может находиться в режиме ожидания ответа в течение различного по продолжительности времени (t 1 - t 9), в зависимости от качества связи и времени принятия решения на сервере - от нескольких миллисекунд до минут.

Одновременно с управлением программа получает возможность работать. Работающая программа может анализировать код последней ошибки, возвращённой клиентским терминалом, и таким образом судить о факте исполнения или отклонения торгового приказа.

Конфликты при проведении торговых операций. Ошибка 146

 

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


Рис. 67. Конфликты при передаче торговых приказов клиентскому терминалу от нескольких программ.

 

На рис. 67 представлена ситуация, когда в клиентском терминале запущено на исполнение одновременно два торгующих эксперта. Эксперт 1 сформировал торговый приказ в момент t 1 и передал его клиентскому терминалу в момент t 2.

Эксперт 2 также создал торговый приказ и обращается к клиентскому терминалу в период, когда клиентский терминал занят обработкой первого торгового приказа (период t 2 - t 3). В этой ситуации клиентский терминал не может принять к рассмотрению торговый приказ, созданный Экспертом 2, и поэтому отклонит этот приказ и вернёт управление Эксперту 2. Обратите внимание, в данном случае торговый приказ отклоняется клиентским терминалом не потому, что приказ оказался некорректным, а потому, что терминал занят обработкой другого приказа. Эксперт 2 продолжит работу и может проанализировать код ошибки, свидетельствующий о причине отклонения торгового приказа (в данном случае - ошибка 146).

Если в период t 1 - t 4 клиентскому терминалу передаёт свой торговый приказ Эксперт 2 (а в общем случае одна или несколько торгующих программ), то этот приказ отклоняется (группа событий в розовой области). Клиентский терминал освобождается в момент t 4 (зелёная точка). Начиная с этого момента, Эксперт 2 может успешно передать клиентскому терминалу свой торговый приказ (группа событий в зелёной области). Этот приказ будет принят и рассмотрен клиентским терминалом, в результате чего также может быть отклонён (но уже по причине некорректности) или отправлен на сервер.

Если торговый приказ, созданный Экспертом 1, будет принят клиентским терминалом как корректный, то в момент t 3 этот приказ отправляется терминалом на сервер. В этом случае клиентский терминал переходит в режим ожидания ответа сервера и считается недоступным для рассмотрения других торговых приказов. Клиентский терминал освободится для рассмотрения других торговых приказов только в момент t 9. Таким образом, согласно второму варианту развития событий клиентский терминал является недоступным для анализа торговых приказов в течение периода t 1 - t 9. Если в этот период к клиентскому терминалу обратится любая программа с целью передать на рассмотрение торговый приказ, то клиентский терминал откажет в этом событии и вернёт управление программе (группа событий в розовой области в период t 6 - t 7). Программа, получившая управление, продолжит свою работу и, проанализировав код ошибки, может выяснить причину отклонения торгового приказа (в данном случае - ошибка 146).

Начиная с момента t 9 клиентский терминал полностью освобождается для анализа любых других торговых приказов. Эксперт 2 может успешно передать торговый приказ клиентскому терминалу в период, следующий за моментом t 9. В зависимости от того, сочтёт ли клиентский терминал этот приказ корректным, приказ будет передан клиентским терминалом на сервер или отклонён.

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

Характеристики ордеров и правила проведения торговых операций

 

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

Характеристики финансовых инструментов

 

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

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

Bid - меньшая из цен в двухсторонней котировке по финансовому инструменту, предлагаемая брокером.

Ask - большая из цен в двухсторонней котировке по финансовому инструменту, предлагаемая брокером.

Пункт -единица измерения цены по финансовому инструменту (минимально возможное изменение цены, последняя значащая цифра в значении цены).

Спред -разница между большей и меньшей ценой в двухсторонней котировке по финансовому инструменту, выраженная в пунктах.

Спред обычно является фиксированной величиной. В MetaTrader 4 принято правило, в соответствии с которым в окне финансового инструмента изображается график цены, отражающий динамику изменения цены Bid:

Рис. 68. Обычный график цены по финансовому инструменту.

На рис. 68 показано окно финансового инструмента, в котором можно наблюдать график изменения цены Bid и двухстороннюю котировку - линию текущей цены Bid (чёрного цвета, 1.3005) и линию текущей цены Ask (красного цвета, 1.3007). Легко увидеть, что в данном случае брокер предлагает спред, равный 2 пунктам. На графике не отражена история цены по Ask, но она подразумевается и может быть легко посчитана для любого момента времени.

Типы и характеристики ордеров

 

Всего различаются шесть типов ордеров - два рыночных и четыре отложенных.

Buy -рыночный ордер, определяющий покупку активов по финансовому инструменту.

Sell -рыночный ордер, определяющий продажу активов по финансовому инструменту.

BuyLimit -отложенный ордер на покупку активов по финансовому инструменту по цене ниже текущей. Ордер исполнится (преобразуется в рыночный ордер Buy), если цена Ask достигнет или окажется ниже цены, заявленной в ордере.

SellLimit -отложенный ордер на продажу активов по финансовому инструменту по цене, превышающей текущую цену. Ордер исполнится (преобразуется в рыночный ордер Sell), если цена Bid достигнет или окажется выше цены, заявленной в ордере.

BuyStop -отложенный ордер на покупку активов по финансовому инструменту по цене, превышающей текущую цену. Ордер исполнится (преобразуется в рыночный ордер Buy), если цена Ask достигнет или окажется выше цены, заявленной в ордере.

SellStop -отложенный ордер на продажу активов по финансовому инструменту по цене ниже текущей. Ордер исполнится (преобразуется в рыночный ордер Sell), если цена Bid достигнет или окажется ниже цены, заявленной в ордере.

Lots -размер ордера, выраженный в количестве лотов.

StopLoss -стоп-приказ; заявленная цена, по которой рыночный ордер будет закрыт при движении цены финансового инструмента в сторону убытков по ордеру.

TakeProfit -стоп-приказ; заявленная цена, по которой рыночный ордер будет закрыт при движении цены финансового инструмента в сторону прибыли по ордеру.

 

Требования и ограничения при проведении торговых операций

 

Для правильного формирования торговых приказов в прикладных программах (экспертах и скриптах) необходимо принимать во внимание имеющиеся требования и ограничения. Рассмотрим их подробно.

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

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

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

Дилинговые центры ограничивают значение минимально допустимой разницы между рыночной ценой и заявленной ценой каждого из стоп-приказов рыночного ордера, между рыночной ценой и заявленной ценой отложенного ордера, а также между заявленной ценой отложенного ордера и заявленными ценами его стоп-приказов. Это значит, например, что в торговом приказе на открытие рыночного ордера могут быть заявлены только такие значения цен стоп-приказов, которые удалены от текущей рыночной цены не менее, чем на минимальную дистанцию. Торговый приказ, в котором цены стоп-приказов заявлены ближе к рыночной цене, чем на минимальную дистанцию, расценивается клиентским терминалом как ошибочный. Разные дилинговые центры могут устанавливать различные, свойственные только им, ограничения минимальной дистанции. Как правило, размер минимальной дистанции колеблется от 1 до 15 пунктов. Для наиболее распространённых финансовых инструментов (EUR/USD, GBP/USD, EUR/CHF и пр.) эта дистанция у большинства дилинговых центров обычно составляет 3 - 5 пунктов. Разные финансовые инструменты также могут иметь разные значения минимальной дистанции, например, для золота это значение может составлять 50-100 пунктов. Значение минимальной дистанции для любого финансового инструмента может быть изменено брокером в любое время (обычно это происходит перед выходом важных экономических новостей). Аналогичных правил для ограничения максимальной дистанции не существует.




Поделиться с друзьями:


Дата добавления: 2014-12-29; Просмотров: 266; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.068 сек.