Читаем Язык программирования MQL5: Продвинутое использование торговой платформы MetaTrader 5. Издание 2-е, исправленное и дополненное полностью

Например, при ACCOUNT_MARGIN_SO_SO = 10 %, событие Stop Out наступит, когда размер средств на счете будет 10 % от маржи, при этом открытые позиции начнут принудительно закрываться брокером.

Другие свойства функции AccountInfoDouble.

ACCOUNT_MARGIN_INITIAL — размер средств, зарезервированных на счёте, для обеспечения гарантийной суммы по всем отложенным ордерам.

Как правило, эта величина равна 0.

ACCOUNT_MARGIN_MAINTENANCE — размер средств, зарезервированных на счёте, для обеспечения минимальной суммы по всем открытым позициям.

Как правило, эта величина равна 0.

ACCOUNT_ASSETS — текущий размер активов на счёте.

Как правило, эта величина равна 0.

ACCOUNT_LIABILITIES — текущий размер обязательств на счёте.

Как правило, эта величина равна 0.

ACCOUNT_COMMISSION_BLOCKED — текущая сумма заблокированных комиссий по счёту.

Как правило, эта величина равна 0.

С помощью свойств функции AccountInfoDouble можно организовать различного рода проверки в функции OnTick эксперта.



Например, наступление события Margin Call.

Здесь мы сравниваем значение свойства ACCOUNT_MARGIN_SO_CALL с размером средств на счете.



При проверке наступления события Stop Out, мы сравниваем значение свойства ACCOUNT_MARGIN_SO_SO с размером средств на счете.



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

Здесь MqlTick это стандартная структура для хранения цен, которая заполняется значениями с помощью функции SymbolInfoTick.

Вызов функции ResetLastError () производится для обнуления ошибки перед вызовом функции, после которой проверяется возникновение ошибки.

Функция OrderCalcMargin вычисляет размер средств, необходимых для открытия позиции.

И если размер свободных средств на счете (ACCOUNT_MARGIN_FREE) меньше, чем размер средств, необходимых для открытия позиции, денег на счете недостаточно и торговля невозможна.



Для функции AccountInfoString определены такие свойства как имя клиента ACCOUNT_NAME, имя торгового сервера ACCOUNT_SERVER, валюта депозита ACCOUNT_CURRENCY, имя компании, обслуживающей счет ACCOUNT_COMPANY.



С помощью свойства ACCOUNT_NAME, также как и с помощью свойства ACCOUNT_LOGIN, можно защитить советник.



Информацию о клиентском терминале можно получить с помощью функций TerminalInfoInteger и TerminalInfoString.

В качестве аргумента эти функции также принимают свойства.

Мы уже видели проверку подключения терминала к серверу с помощью свойства TERMINAL_CONNECTED.

Свойство TERMINAL_DLLS_ALLOWED позволяет выяснить, есть ли разрешение на использование DLL.

Файлы DLL это еще один способ создания повторно используемых библиотек — модулей кода для MQL5-программ.

DLL-библиотеки находятся в папке MQL5\Libraries торгового терминала и включаются в код MQL5-программы с помощью команды #import.

При этом разрешение на использование DLL-библиотек устанавливается во вкладке Советники настроек клиентского терминала.

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



Свойство TERMINAL_TRADE_ALLOWED показывает, включена ли кнопка авто-торговли в клиентском терминале.

Для проверки этого свойства в функцию OnTick () можно включить код, использующий свойство TERMINAL_TRADE_ALLOWED.

Однако разрешение на торговлю с помощью эксперта может быть отключено в общих свойствах самого эксперта.

Для проверки этого условия можно использовать свойство MQL_TRADE_ALLOWED функции MQLInfoInteger.



С помощью свойства SYMBOL_SPREAD функции SymbolInfoInteger можно осуществить контроль над спредом брокера:

Здесь с помощью свойства SYMBOL_DIGITS выясняем, сколько знаков после запятой в цене и вычисляем спред в пунктах.

Затем сравниваем его с пороговым значением, и, если текущий спред больше порогового значения, торговлю не осуществляем.



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

Здесь мы сравниваем значение свойства SYMBOL_TRADE_MODE с константой SYMBOL_TRADE_MODE_FULL.

Например, по какому-либо финансовому инструменту брокер может отключить торговлю.



Также в функции OnTick можно ограничить работу эксперта по времени.

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

Здесь берется локальное время, если вы хотите сравнивать с серверным временем, используйте функцию TimeCurrent, а не функцию TimeLocal.



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

В функции OnTick эксперта также было бы неплохо проверить, достаточно ли баров в истории для расчета советника.



Сделать это можно двумя способами — с помощью функции Bars и с помощью свойства SERIES_BARS_COUNT функции SeriesInfoInteger.

Перейти на страницу:

Похожие книги

Самоучитель UML
Самоучитель UML

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

Александр Васильевич Леоненков , Александр Леоненков

Зарубежная компьютерная, околокомпьютерная литература / Программирование / Прочая компьютерная литература / Книги по IT
Компьютер для тех, кому за…
Компьютер для тех, кому за…

В наш век высоких технологий без компьютера не обходится практически ни один человек. Но что делать, если вам уже за…, а компьютер вы так и не освоили? Не стоит отчаиваться! Эта книга была написана специально для тех, кто по каким-то причинам не смог освоить его раньше. Легким и доступным языком в книге изложены основные принципы работы на компьютере. Вы узнаете, как создать документ в текстовом редакторе, выстроить таблицы и диаграммы в экселе, освоите графический редактор, который позволит вам рисовать и редактировать фото и рисунки, научитесь самостоятельно подключать принтер и печать, общаться с родными и друзьями по скайпу и ICQ, узнаете, какие бывают игры, как выбрать игру для себя, и многое-многое другое.Никогда не поздно осваивать что-то новое! А уж тем более — компьютер. Он откроет вам целый мир безграничных возможностей. Не упустите свой шанс узнать что-то новое и интересное — дайте компьютеру прочно войти в вашу жизнь. Ведь пользоваться им так же просто, как и обычным телефоном, только в тысячу раз интереснее!

Оксана Грибова

Зарубежная компьютерная, околокомпьютерная литература / Интернет / Программное обеспечение / Прочая компьютерная литература / Книги по IT
Omert@. Руководство по компьютерной безопасности и защите информации для Больших Боссов
Omert@. Руководство по компьютерной безопасности и защите информации для Больших Боссов

Увы, друг мой, защита твоей информации - или хотя бы четкое понимание того, что это такое и как подобная защита должна строиться - это Твое Личное Дело! Не Cosa Nostra (хотя твои проблемы могут стать и Нашим Делом тоже), а Cosa Roba - Твое Дело!  Я знаю, что ты солидный человек, который привык платить, чтобы за него решали проблемы. Однако есть проблемы, которые за тебя никто не решит, - даже за очень большие деньги. Например, заниматься любовью со своей женой должен ты сам. Но кто тебе сказал, что защита твоей информации - это менее интимное дело, и его можно поручить постороннему?  Первая книга по безопасности для Менеджеров, а не для ботаников-компьютерщиков, информации от широко неизвестного благодаря своей репутации эксперта международного класса. Только благодаря ей Большой Босс сможет понять, каким образом он сможет чувствовать себя хотя бы в относительной безопасности!  Ты должен сам знать, что такое безопасность информации! Ни один нанятый специалист не решит это за тебя!  Если ты нанимаешь студента-компьютерщика за двести баксов в месяц и совершенно серьезно считаешь его специалистом по информационной безопасности, - не понятно, как ты вообще смог стать менеджером подобного уровня.

Алекс Экслер , Карл Шкафиц

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT