mql4 информация о счете

Информация о счете

AccountBalance

double AccountBalance()
Возвращает значение баланса активного счета (сумма денежных средств на счете).
Пример:

AccountCredit

double AccountCredit()
Возвращает значение кредита для активного счета.
Пример:

AccountCompany

string AccountCompany()
Возвращает название брокерской компании, в которой зарегистрирован текущий счет.
Пример:

AccountCurrency

string AccountCurrency()
Возвращает наименование валюты для текущего счета.
Пример:

AccountEquity

double AccountEquity()
Возвращает сумму собственных средств для текущего счета. Расчет equity зависит от настроек торгового сервера.
Пример:

AccountFreeMargin

double AccountFreeMargin()
Возвращает значение свободных средств, разрешенных для открытия позиций на текущем счете.
Пример:

AccountFreeMarginCheck

double AccountFreeMarginCheck(string symbol, int cmd, double volume)
Возвращает размер свободных средств, которые останутся после открытия указанной позиции по текущей цене на текущем счете. Если свободных средств не хватает, то будет сгенерирована ошибка 134 (ERR_NOT_ENOUGH_MONEY).

Параметры:

symbol — Наименование финансового инструмента, с которым должна проводиться торговая операция.
cmd — Торговая операция. Может быть либо OP_BUY, либо OP_SELL.
volume — Количество лотов.

Пример:

AccountFreeMarginMode

double AccountFreeMarginMode()
Режим расчета свободных средств, разрешенных для открытия позиций на текущем счете. Режим расчета может принимать следующие значения:

0 — при расчете не используются нереализованные прибыли и убытки;
1 — при расчете свободных средств используется как нереализованная прибыль, так и убыток по открытым позициям на текущем счете;
2 — при расчете используется только значение прибыли, текущий убыток по открытым позициям не учитывается;
3 — при расчете используется только значение убытка, текущая прибыль по открытым позициям не учитывается.

Пример:

AccountLeverage

int AccountLeverage()
Возвращает значение плеча для текущего счета.
Пример:

AccountMargin

double AccountMargin()
Возвращает сумму залоговых средств, используемых для поддержания открытых позиций на текущем счете.
Пример:

AccountName

string AccountName()
Возвращает имя пользователя текущего счета.
Пример:

AccountNumber

int AccountNumber()
Возвращает номер текущего счета.
Пример:

AccountProfit

double AccountProfit()
Возвращает значение прибыли для текущего счета в базовой валюте.
Пример:

AccountServer

string AccountServer()
Возвращает имя активного сервера.
Пример:

AccountStopoutLevel

int AccountStopoutLevel()
Возвращает значение уровня, по которому определяется состояние Stop Out.
Пример:

AccountStopoutMode

int AccountStopoutMode()
Возвращает режим расчета уровня Stop Out. Режим расчета может принимать следующие значения:

0 — расчет процентного соотношения залоговой маржи к средствам;
1 — сравнение уровня свободной маржи с абсолютным значением.

Пример:

xitonline 1c.png.pagespeed.ic. BGufKSW8C

xitonline site1.png.pagespeed.ic.5709ckyQ0n

Источник

1.3 Дата и время, информация о счете

1.3 %D0%94%D0%B0%D1%82%D0%B0 %D0%B8 %D0%B2%D1%80%D0%B5%D0%BC%D1%8F %D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F %D0%BE %D1%81%D1%87%D0%B5%D1%82%D0%B5

Доброго времени суток.

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

Дата и время

Date and Time

По традиции мы разберем только самые используемые функции, чтобы избежать переизбытка информации в одном посте. За время отвечает тип данные datetime, который является целым типом и хранит информацию о времени, начиная с 01 Января 1970 года, что эквивалентно значению 0 в представлении int. Максимальное значение даты в терминале, судя по справке, достигает 31 Декабря 3000 года.

Дату можно задавать вручную через целое значение int, например:

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

Соответственно, раз дату можно использовать как целое число, то к ней можно прибавлять и вычитать время. Попробуем прибавил к дате, что мы задали выше, 12 часов. Для этого умножим часы на 60 минут, а затем еще раз умножим полученное значение на 60 секунд, чтобы преобразовать время в секунды, оно будет равняться 43200.

Время в терминале имеет формат YYMMDD, вручную же оно может задаваться как в таком варианте, так и в привычном нам формате DDMMYY. Вручную время прописывается через заглавную букву D между двумя апострофами: D’01.05.2010 00:00′.

Давайте вначале посмотрим на функции, отвечающие за конкретное время.

Источник

Информация о счете

Функции, возвращающие параметры текущего счета.

Функция

Действие

Возвращает значение типа double соответствующего свойства счета

Возвращает значение целочисленного типа (bool,int или long) соответствующего свойства счета

Возвращает значение типа string соответствующего свойства счета

AccountInfoDouble

Возвращает значение соответствующего свойства счета.

Параметры

property_id — [in] Идентификатор свойства. Значение может быть одним из значений ENUM_ACCOUNT_INFO_DOUBLE.

Возвращаемое значение

Значение типа double.

Пример:

AccountInfoInteger

Возвращает значение соответствующего свойства счета.

Параметры

property_id — [in] Идентификатор свойства. Значение может быть одним из значений ENUM_ACCOUNT_INFO_INTEGER.

Возвращаемое значение

Значение типа long.

Примечание

Свойство должно быть одного из типов bool, int или long.

Пример:

AccountInfoString

Возвращает значение соответствующего свойства счета.

Параметры

property_id — [in] Идентификатор свойства. Значение может быть одним из значений ENUM_ACCOUNT_INFO_STRING.

Источник

Синтаксис

Язык MQL4 — (англ. MetaQuotes Language 4) строго типизированный язык программирования торговых стратегий, разработанный в MetaQuotes Software Corp.

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

Синтаксис

Синтаксис языка программирования торговых стратегий MQL4 очень похож язык программирования Си, за исключением некоторых возможностей:

Комментарии

Комментарии в языке MQL записываются одним из следующих способов:

Идентификаторы

Идентификатор — это последовательность символов, используемая для обозначения одного из следующих элементов:

Длина идентификатора не может превышать 31 знак.

Допустимые символы: цифры 0-9, латинские прописные и строчные буквы а — z и А — Z, распознаваемые как разные символы, символ подчеркивания (_). Первый символ не может быть цифрой. Идентификатор не должен совпадать с зарезервированным словом.

Примеры:

Зарезервированные слова

Ключевые слова — это предварительно определенные зарезервированные идентификаторы, имеющие специальные значения. Их использование в программе в качестве идентификаторов не допускается. Для языка MQL зарезервированы следующие ключевые слова:

Источник

3.0 Программируем простой MQL4 советник по системе «Монетка»

%D0%97%D0%B0%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B0 2

Если вы задавались вопросом «Как написать советник на языке программирования MQL4», то данный пост создан именно для вас. Сегодня мы будем создавать самый простой из всевозможных советников для МТ4, который будет определять незамысловатое условие на вход, открывать ордер и модифицировать его цели.

Алгоритм программирования советника на MQL4

%D0%A1%D1%85%D0%B5%D0%BC%D0%B0

Выше представлена схема процесса работы торгового робота, который мы планируем написать. Любой советник должен иметь как минимум три функции обработки событий:

OnInit()

Она генерируется только один раз за время работы советника в самом начале. Нужна, чтобы внутри нее определить, рассчитать и задать те переменные и массивы данных, которые не нуждаются в дальнейшей корректировке по мере обновления тиков. То же самое касается и графических объектов. В советнике раздел OnInit выполняет ту же роль, что мы проходили в теме создания первого индикатора.

OnDeinit()

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

OnTick()

Данная функция новая в наших уроках. Раздел OnTick генерирует события исключительно для экспертов и не может быть вызвана в индикаторах или скриптах. Ее тип данных void и набор параметров отсутствует. По своей логике работы она схожа с функцией для индикаторов OnCalculate, только она не возвращает никакого значения после завершения. Задача у нее одна — запускаться каждый новый тик и проходить циклом весь написанный код в ней от начала до конца. Так как любой советник должен проверять условия для входа/выхода из рынка, считать количество открытых ордеров и выполнять их сопровождение, то можно уверенно сказать, что функция OnTick является самой важной в коде любого эксперта.

Продолжим разбирать алгоритм работы. Вначале советник инициализируется. Далее запускается функция OnTick, в которой выполняются все дальнейшие действия. Для данного советника сначала необходимо проверить наличие уже открытых им ордеров. Если они есть — дальнейший расчет и поиск условия на вход не выполняются, потому что в рынке у нас должен быть только один ордер за раз. Если же открытых сделок нет, то идет определение направления будущей позиции. В зависимости от него запускается пользовательская функция на открытие Buy или Sell ордера. Если по какой-то причине сделка не смогла открыться, расчет возвращается назад в функцию OnTick, чтобы попробовать выставить ордер снова. Если же ордер открылся, то он модифицируется (выставляется Тейк-Профит и Стоп-Лосс). На этом алгоритм заканчивает свою работу по работе с ордерами, потому что счетчик новых ордеров уже будет учитывать этот открывшийся ордер, делая проверку каждый тик. И только после того, как ордер закроется по достижению своей цели (ТП или СЛ), цикл проверки условия на открытие ордера запустится снова. Функция OnDeinit запустится только тогда, когда вы удалите советник с графика.

Наш код, конечно, не будет выглядеть точь-в-точь как эта схема, но думаю, что принцип его написания вам понятен.

Торговая система «Монетка»

%D0%9C%D0%BE%D0%BD%D0%B5%D1%82%D0%BA%D0%B0

Когда перед нами стоит вопрос «как создать Форекс советник», то в первую очередь в голову приходит мысль о торговой системе, заложенной в нем, логике открытия ордеров. Так как в этом уроке не стоит цель создать так называемый на сленге «Грааль», то для получения опыта в написании первого эксперта мы возьмем на вооружение самую простую ТС, которую только можно выдумать.

Период советника установим М15. Мы будем входить в рынок по воле случая, или, если хотите, удачи. Мы начнем условно подкидывать монетку и смотреть на результат этого несложного действия. Орел или Решка — только два исхода событий будет у советника. Вариант «ребро» в данном случае не рассматривается ?

Зачем использовать такую простую систему? Чтобы понять, что произойдет в результате этого эксперимента и ответить себе на вопрос: можно ли заработать на Форекс входя в рынок наобум? Получится ли прибыльно торговать не имея четко спланированной торговой системы?

Проверка советника на ошибки: GetLastError()

%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0

При написании советника (как и при его использовании) очень важно следить за возможными ошибками в коде. Речь идет не об ошибках компиляции, их вы можете увидеть во вкладке «Ошибки» окна «Инструменты». Разговор о скрытых ошибках, которые проявляют себя во время тестирования или работы советника на реальном счете. Проверку на эти ошибки нужно делать как минимум один раз за тик в функции обработки событий OnTick. Как максимум — в каждой вашей пользовательской функции.

Чтобы получить номер возможной ошибки, нужно вызвать функцию GetLastError(). Она имеет тип int и возвращает целое число, значение системной переменной _LastError. Тут нужно обратить внимание, что на языке MQL4 после вызова функции GetLastError ее значение обнуляется и повторный вызов ее в том же месте кода вернет значение 0, поэтому ее значение нужно сохранять в отдельную переменную.

Язык MQL различает как минимум 150 разных ошибок. Соответственно каждый возвращаемый номер имеет свою расшифровку. Ноль значит это ошибки нет и все отлично, 134 значит, что недостаточно денег на счете и т.д.

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • mptool что за приложение на андроид
  • mpstesh что это за приложение