628
10.3.1 Функция OrderSend()
int OrderSend (string symbol, int cmd, double volume, double price, int
slippage, double stoploss,
double takeprofit, string comment=NULL, int magic=0, datetime expiration=0,
color arrow_color=CLR_NONE)
(обратите внимание, здесь и далее для справки представляется заголовок функции, а не
пример использования вызова функции в программе).
Рассмотрим подробно, из чего состоит эта функция.
OrderSend - название функции. Функция возвращает номер тикета (ticket - уникальный
порядковый номер ордера), который назначен ордеру торговым сервером или -1 в случае,
если торговый приказ был отклонён севером или клиентским терминалом. Для получения
информации о причине отклонения торгового приказа необходимо использовать функцию
GetLastError() (в дальнейшем изложении мы рассмотрим несколько наиболее
распространённых ошибок).
symbol - наименование финансового инструмента, с которым проводится торговая
операция. Каждому финансовому инструменту поставлено в соответствие значение
строковой переменной. Например, для валютной пары Eur/Usd это значение "EURUSD".
Если открытие ордера проводится по заранее известному финансовому инструменту, то
этот параметр можно указать в явном виде: "EURUSD", "EURGBP" и т.д. Если же
предполагается использование советника в окне любого другого финансового
инструмента, то можно использовать стандартную функцию Symbol(). Эта функция
возвращает строковое значение, соответствующее названию того финансового
инструмента, в окне которого исполняется советник или скрипт.
cmd - тип операции. Тип операций может быть указан в виде предопределённой
константы или её значения и в соответствии с типом торговой операции.
volume - количество лотов. Для рыночных ордеров всегда проверяется достаточность
свободных средств на счёте. Для отложенных ордеров количество лотов не ограничено.
price - цена открытия. Устанавливается в соответствии с требованиями и ограничениями,
принятыми для проведения торговых операций (см. Характеристики ордеров). Если
заявленной цены для открытия рыночных ордеров не было в ценовом потоке или она
сильно устарела, то такой торговый приказ отклоняется; если же цена устарела, но
присутствует в ценовом потоке и при этом отклонение от текущей цены находится в