|
|
|


Клиентам
:
Торговая платформа
:
MetaTrader API
MetaTrader API - это открытый интерфейс, реализующий доступ ко всем функциям информационно-торговой платформы MetaTrader. Мы предоставляем программистам очень широкие возможности для написания своих собственных версий клиентских терминалов.
Интерфейс клиентского терминала (MetaTrader API) - MetaTrader API (MSVC++ 6.0, с примером использования, ZIP) - MetaTrader API (Delphi, с примером использования, ZIP)
Клиентский API состоит из 29 функций, реализованных в mtapi.dll. Доступ к функциям API осуществляется так, как это показано в исходном файле MetaTraderAPI.cpp. Описания функций, а также необходимых структур данных, находятся в файле MetaTraderAPI.h. Для статической линковки имеются файлы mtapi.lib и mtapi.h.
 | int MtGetVersion( void ); |  | Возвращает номер версии MTAPI в виде составного числа, первые 3 цифры которого представляют собой номер версии клиентского терминала, совместимого с API. Младшие 3 цифры представляют собой версию API.
 | int MtSetWorkingDirectory(const char * path); |  | Назначение рабочего каталога, в котором будут храниться log-файлы, приходящие от сервера письма, а также некоторые другие рабочие файлы. В качестве параметра необходимо указать существующий каталог. Если в качестве параметра указать NULL, то рабочим каталогом будет назначен тот, из которого запущен exe-файл клиента (по умолчанию рабочим каталогом считается каталог, содержащий mtapi.dll). Коды возврата описаны в файле MetaTraderAPI.h.
 | int MtCreate(void); |  | Создание объекта сокета для связи с сервером MetaTrader. Возвращает хэндл открытого сокета (внутренний номер сокета) в случае успеха. Либо -1 в случае ошибки. Имеется ограничение на количество одновременно существующих объектов сокетов.
 | int MtDelete(const int handle); |  | Удаление ранее созданного объекта сокета. В качестве параметра передается хэндл, ранее полученный функцией создания объекта сокета.
 | int MtConnect(const int handle,const char *server,const int port); |  | Установление связи с сервером. Параметры:
- handle - хэндл сокета, через который необходимо установить связь;
- server - адрес сервера (IP-address или domain name);
- port - номер порта (обычно 1950 для демо-счетов и 1952 - для реальных).
 | int MtDisconnect(const int handle); |  | Разрыв ранее установленной связи с сервером. В качестве параметра передается хэндл сокета.
 | int MtLogin( const int handle, const int login, const char *password ); |  | Запрос серверу на подключение в качестве авторизованного клиента.
- handle - хэндл сокета, через который уже установлена связь с сервером;
- login - номер клиента (фактически номер счета, которым управляет данный клиент);
- password - пароль для входа в систему.
 | int MtOpenDemoAccount( const int handle, DemoAccountInfo *info ); |  | Запрос серверу на открытие тренировочного (демонстрационного) счета и получение права на управление этим счетом. - handle - хэндл сокета, через который уже установлена связь с сервером;
- info - адрес переменной типа структуры DemoAccountInfo, в которой заполнены необходимые для регистрации на сервере поля.
В случае успешного выполнения функции номер счета и пароль для входа в систему будут записаны в поля login и password структуры DemoAccountInfo по адресу info. После открытия счета соединение через данный сокет необходимо будет закрыть функцией MtDisconnect и затем заново открыть функцией MtConnect.
 | int MtChangePassword( const int handle, const char *newpass ); |  | Запрос серверу на смену текущего пароля. - handle - хэндл сокета, через который уже установлена связь с сервером и произведен вход в систему в качестве авторизованного клиента;
- newpass - новый пароль для следующего входа в систему.
 | RateInfo* MtGetRates( const int handle, const char *symbol, const int period, const time_t lasttime, int *counter ); |  | Запрос серверу на получение истории котировок. - handle - хэндл сокета;
- symbol - наименование инструмента, по которому необходимо получить котировки;
- period - период котировок (PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1);
- lasttime - время (в секундах с 1 января 1970 г), начиная с которого интересуют котировки;
- counter - адрес переменной типа int, куда будет записано количество возвращаемых котировок.
Возвращает массив структур RateInfo с котировками размером *counter, либо NULL в случае неудачи. Массив котировок должен быть освобожден при помощи функции HeapFree (GetProcessHeap(), 0, pRates).
 | int MtGetTrades( const int handle ); |  | Запрос серверу на получение списка открытых позиций. Список открытых позиций, полученный от сервера, запоминается в объекте сокета и может быть получен при помощи функции MtGetTradeRecords.
 | TradeRecord* MtGetTradeRecords( const int handle, BriefUserInfo *bui, int *items ); |  | Получение списка открытых позиций. - handle - хэндл сокета;
- bui - адрес переменной типа структуры BriefUserInfo, куда будет записана информация о клиенте;
- items - адрес переменной типа int, куда будет записано количество открытых позиций.
Возвращает массив структур TradeRecord, содержащий список открытых позиций. Массив открытых позиций должен быть освобожден при помощи функции HeapFree.
 | TradeRecord* MtGetTradeHistory( const int handle, const time_t from, const time_t to, int *items ); |  | Запрос серверу на получение истории торговых операций. - handle - хэндл сокета;
- from, to - диапазон времени (в секундах с 1 января 1970 г), в пределах которого интересуют проведенные торговые операции по данному счету;
- items - адрес переменной типа int, куда будет записано количество торговых операций.
Возвращает массив структур TradeRecord, содержащий историю торговых операций или NULL в случае неудачи. Массив торговых операций должен быть освобожден при помощи функции HeapFree.
 | char* MtGetNewsBody( const int handle, const int key ); |  | Запрос серверу на получение новости по ее номеру. - handle - хэндл сокета;
- key - номер новости.
Возвращает символьную строку, содержащую новость, либо NULL в случае неудачи. Строка, содержащая новость должна быть освобождена при помощи функции HeapFree.
 | int MtGetPrices( const int handle, const char *symbol, const int lots, double *bid, double *ask ); |  | Запрос серверу на получение цен по указанному инструменту. - handle - хэндл сокета;
- symbol - наименование инструмента, по которому необходимо получить цены;
- lots - количество лотов;
- bid - адрес переменной типа double, в которую будет записана цена bid;
- ask - адрес переменной типа double, в которую будет записана цена ask;
Необходимое замечание Если инструмент, по которому запрашиваются цены, находится в режиме Instant Execution, то необходимо просто брать последние котировки по запрашиваемому инструменту. Как определить инструмент, который находится в режиме Instant Execution. В массиве структур ConSecurity, который может быть получен функцией MtGetSecurities, соответствующий инструмент имеет в поле exemode значение EXE_MARKET.
 | int MtSendOrder( const int handle, const SendOrderInfo *soi ); |  | Запрос серверу на открытие позиции либо на выставление <отложенного> ордера. - handle - хэндл сокета;
- soi - адрес переменной типа структуры SendOrderInfo, в которой клиент должен заполнить необходимые поля.
Список ордеров может быть получен при помощи вызова MtGetTrades и MtGetTradeRecords. Если же сокет был переведен в режим подкачки данных, то список ордеров обновится автоматически и получить его можно при помощи MtGetTradeRecords (без предварительного вызова MtGetTrades).
 | int MtDeleteOrder( const int handle, const int order ); |  | Запрос серверу на удаление <отложенного> ордера. - handle - хэндл сокета;
- order - номер отложенного ордера.
 | int MtModifyOrder(const int handle, const int order, const double price, const double sl, const double tp ); |  | Запрос серверу на изменение характеристик ордера. - handle - хэндл сокета;
- order - номер ордера;
- price - новое значение цены;
- sl - новое значение Stop Loss;
- tp - новое значение Take Profit.
 | int MtCloseOrder( const int handle, const int order, const double price, const int volume ); |  | Запрос серверу на закрытие позиции. - handle - хэндл сокета;
- order - номер ордера;
- price - цена;
- volume - размер закрываемой позиции (возможно частичное закрытие позиции - появится новый ордер с остаточным объемом).
 | int MtCloseByOrder( const int handle, const int order, const int byorder ); |  | Запрос серверу на закрытие одной открытой позиции другой открытой позицией по этому же инструменту, но противоположного направления. - handle - хэндл сокета;
- order - номер закрываемого ордера;
- byorder - номер закрывающего ордера.
 | int MtRefreshSecurities( const int handle ); |  | Запрос серверу на обновление списка доступных инструментов. Данная функция работает с файлом securities.dat, создающемся в рабочем директории. Наличие этого файла с актуальным списком инструментов позволяет значительно снизить трафик в процессе обновления списка. Полученный список доступных инструментов записывается в файл, а также хранится в объекте сокета и может быть запрошен функцией MtGetSecurities.
- handle - хэндл сокета, через который уже произведен вход в систему в качестве авторизованного клиента.
 | ConSecurity* MtGetSecurities( const int handle, int *items ); |  | Получение списка доступных инструментов. - handle - хэндл сокета;
- items - адрес переменной типа int, куда будет записано количество доступных инструментов.
Возвращает массив структур ConSecurity, содержащий список доступных инструментов. Массив доступных инструментов должен быть освобожден при помощи функции HeapFree.
 | int MtAddSymbol( const int handle, const char * symbol ); |  | Добавить инструмент в список выбранных инструментов для получения котировок в режиме подкачки данных. Список выбранных инструментов хранится в объекте сокета. - handle - хэндл сокета;
- symbol - наименование добавляемого инструмента.
 | int MtHideSymbol( const int handle, const char * symbol ); |  | Удалить инструмент из списка выбранных инструментов для получения котировок в режиме подкачки данных. - handle - хэндл сокета;
- symbol - наименование удаляемого инструмента.
 | int MtSetPumpingMode( const int handle, const HWND destwnd, const UINT eventmsg ); |  | Запрос серверу на перевод клиента в режим подкачки данных (пассивный режим). Этот режим предполагает уменьшение трафика, так как сервер без дополнительного запроса клиента будет посылать новые данные, относящиеся к клиенту. Этот режим предполагает более оперативное получение данных - котировок, новостей, изменения состояния открытых позиций, изменения состояния счета.
Важно! После перевода объекта сокета в режим подкачки данных недопустимо обращаться к серверу через данный сокет с запросами, кроме запроса на разрыв связи MtDisconnect. Можно вызывать следующие функции: MtGetTradeRecords, MtGetSecurities, MtAddSymbol, MtHideSymbol, MtGetUpdatedTickInfo, MtGetLastNews, MtGetLastMail.
- handle - хэндл сокета;
- destwnd - хэндл окна, которому будут приходить сообщения о поступлении новых данных от сервера;
- eventmsg - идентификатор сообщения, которое будет посылаться окну. В качестве параметра WPARAM может быть передано одно из значений: UPDATE_BIDASK, UPDATE_NEWS, UPDATE_TRADES, UPDATE_MAIL или END_PUMPING.
В качестве параметра LPARAM передается хэндл объекта сокета, пославшего сообщение.
 | TickInfo* MtGetUpdatedTickInfo( const int handle, int *items ); |  | Получение списка последних котировок. Обычно вызывается после поступления события UPDATE_BIDASK. Так как котировки приходят в процессе подкачки данных, то и запрашивать список измененных котировок следует у того объекта сокета, который находится в режиме подкачки данных, и послал соответствующее сообщение. - handle - хэндл сокета;
- items - адрес переменной типа int, куда будет записано количество котировок.
Возвращает массив структур TickInfo, содержащий список котировок. Массив котировок должен быть освобожден при помощи функции HeapFree.
 | NewsTopic* MtGetLastNews( const int handle, int *items ); |  | Получение списка последних новостей. Вызывается после поступления события UPDATE_NEWS. Список последних новостей следует запрашивать у того объекта сокета, который находится в режиме подкачки данных, и послал соответствующее сообщение. - handle - хэндл сокета;
- items - адрес переменной типа int, куда будет записано количество заголовков новостей.
Возвращает массив структур NewsTopic, содержащий список новостей. Массив новостей должен быть освобожден при помощи функции HeapFree.
 | int MtGetLastMail( const int handle, char * path, int *lenofpath ); |  | Получения имени файла, в который было записано пришедшее с сервера письмо. - handle - хэндл сокета, переведенного в режим подкачки данных и пославшего сообщение UPDATE_MAIL;
- path - строка символов для приема имени файла;
- lenofpath - адрес переменной типа int, в которой записана длина приемной строки.
Если имя файла (включая завершающий ноль) больше, чем приемная строка, то в приемную строку записывается строка нулевой длины, а в переменную по адресу lenofpath записывается длина строки, необходимая для приема имени файла.
 | TradeRecord* MtGetTradeRecords( const int handle, BriefUserInfo *bui, int *items ); |  | Эта функция уже описана выше. Необходимое дополнение для объекта сокета, переведенного в режим подкачки данных: список открытых позиций необходимо запрашивать у того объекта сокета, который послал сообщение UPDATE_TRADES.
 | const char* MtGetErrorDescription( const int errorcode ); |  | Возвращает символьное описание ошибки. В качестве параметра используется код возврата от какой-либо вышеописанной функции.
|
|
 |
| |
|
| |

 
 |
 |
FinMarket Trade Station 4 |
|
|
 |

|
|
|
|
|
Компания
/ НАМ 6 ЛЕТ! / О компании / Новости компании / Партнеры / Наши преимущества / Наши публикации / Архив / Вакансии / Контакты
Клиентам
/ ДОВЕРИТЕЛЬНОЕ УПРАВЛЕНИЕ / Как открыть свой счет / КОНКУРС ТРЕЙДЕРОВ / Акции / Отзывы клиентов / 5 преимуществ Forex / Ввод и вывод средств / Условия торговли / Спецификация контрактов / Финансовые инструменты / Торговая платформа / Конфиденциальность / Техподдержка / Документы / Информация дороже золота / Зарабатывать можно быстрее / Программа лояльности / Cвой бизнес на форекс
Аналитика
/ Рынок в фокусе: Новости, Комментарии, Обзоры, Новости от Reuters, Экономический календарь / Стратегии: Инвестиционные портфели, Рекомендации Mizuho банка, Обзор позиций на IMM, Eженедельный обзор, Eжемесячный обзор, Годовой обзор, Обзор опционов и их уровней, Доска ордеров от Dow Jones / Технический анализ: Тренды и уровни, Волновой анализ, Свечной анализ, Долгосрочные тенденции / Фундаментальный анализ: Фундаментальные обзоры, Макроэкономические прогнозы, Прогнозы процентных ставок, Товарные рынки - Commodities, Анализ макроэкономической ситуации в США, Долгосрочные прогнозы валютных курсов, Еженедельный анализ валютных индексов / Волновой анализ валют и металлов / Ежедневный технический анализ / Еженедельный технический анализ / Макроэкономическая статистика / Пропорции по Фибоначчи
Обучение
/ Курс "Программа подготовки финансовых трейдеров на Фондовом рынке (Stock). VIP" / Программа подготовки финансовых трейдеров. VIP Мастер - Курс / Он-Лайн Курс "Основная дистанционная программа подготовки трейдеров рынка FOREX" / Он-Лайн Курс "Практические дистанционные занятия по программе подготовки трейдеров рынка FOREX" / Курс "Программа подготовки финансовых трейдеров рынка FOREX. VIP" / Он-Лайн сертификаты / Бесплатный ознакомительный курс / Теоретические курсы / Практические курсы / VIP-курсы / Дистанционное обучение / Курс "ТОРГОВЛЯ С ИСПОЛЬЗОВАНИЕМ ВОЛН ЭЛЛИОТА" / Список всех курсов
FOREX
/ Чем Форекс лучше остальных рынков? / Как зарабатывать на Форекс / Форекс: мифы и реальность / Участники валютного рынка / Фундаментальный анализ / Технический анализ / Торговые стратегии / Психология рынка / Основы риск менеджмента / Форекс за 15 минут
Справочная
/ Курсы обмена наличных валют / Ставки по депозитам / Стоимость пункта / История фондовых рынков / История фьючерсных рынков / DownLoad / FAQ / Таблица основных праздников / Макроэкономические показатели / Учебники / Рекомендуемая литература / Библиотека / Полезные ссылки / Биржевые истории / Математические модели / Глоссарий |
Лицензия Министерства Финансов Украины AB№082820 от 03.07.2006г.
|
Copyright © FinMarket 2000-2010
|
|
|
|
|