Specification
Требуется реализация механизма выставления ордеров типа "айсберг" на рынке FORTS через клиентское место MetaTrader 5 с возможностью его использования на большом кол-ве терминалов.
Что такое приказ Iceberg?
Данный тип приказа позволяет выставить в торговую систему заявку на большой объем с малой видимой частью. Например, вы выставляете приказ купить 1000 RIZ @ 147,000 Island 100. Это означает, что МТ5 принял приказ на покупку 1000 контрактов RIZ, но на биржу будет выставлен только небольшой кусочек этого приказа (квант) в размере 100 контрактов. По мере исполнения этой заявки торговая система МТ5 должна довыставлять приказы до тех пор, пока не будет исполнен весь объем исходной заявки.
Приказ Iceberg должен быть реализован как дополнительная функция торговой системы МТ5.
Особенности работы и отображения приказов типа Iceberg:
В торговом терминале заявки отображаются как лимитные приказы с объемом, равным кванту айсберга.
В торговом терминале, сделки на основании заявки по приказам Iceberg отображаются как сделки по соответствующим квантам заявок, т. е. биржевой номер заявки у таких сделок будет разный для каждого кванта.
Отмена выставленного ранее приказа Iceberg осуществляется отменой любой открытой (частично исполненной) части этого приказа, выставленного на биржу. При этом снимается и текущая заявка и неисполненный остаток всего Iceberg приказа.
Активная порция айсберга – это обычная лимитная заявка, поэтому она может быть передвинута, в этом случае цена этой порции (кванта) не будет совпадать с ценой указанной в исходном приказе Iceberg.
К отмене приказа Iceberg приводит любая операция отмены активной его части – кванта, выставленного на биржу: user cancel, system reject, expired, кроме system cancel.
Все приказы Iceberg должны быть реализованы в торговой системе со сроком действия DAY (день), соответственно, неисполненный остаток приказов Iceberg снимается (expired) после окончания дневной торговой сессии. Iceberg-приказы со сроком действия GTC не надо реализовывать.