Архив категорий: Функции MQL4

Наиболее нужные и полезные функции для применения в советниках и индикаторах терминала MT4.

Трейлинг-стоп по MA (трал по «машке»)

Функция трейлинг-стопа по индикатору Moving Average Внешние переменные: input int periodMA = 20; // период МА input bool TralOnlyProfit = true; // тралить только профитные ордера или все input int Step = 1;// можно настроить шаг трала Сама функция трейлинга по МА (лайкните, и функция откроется): [sociallocker] void SimpleTrailing() {… Читать далее »

На каком баре был закрыт последний ордер (функция MQL4)

На каком баре был закрыт последний ордер (функция MQL4) Иногда нужно знать, на каком по счету баре был закрыт последний ордер. Например, если ордер уже был закрыт на текущем баре (т.е. на нулевом), то можно не допустить нового открытия ордера здесь же. Параметры функции: Sy — Торговый инструмент; tf —… Читать далее »

Функция дивергенции MACD

Функция дивергенции MACD Вчера возникла задача срочно сделать функцию поиска двух горбов MACD для дальнейшего выявления дивергенции. Получилось целых две функции: для выявления горба при MACD выше нуля и для выявления впадины при MACD ниже нуля. Каждая функция возвращает номер бара, на котором образовался горб или впадина. Вызов функции поиска… Читать далее »

Функция определения количества пунктов в идущих подряд убыточных ордерах

Функция определения количества пунктов в идущих подряд убыточных ордерах Допустим имеется 3 подряд убыточных ордера и нужно узнать, сколько в этих трех ордерах убытка в пунктах (спред не учитывается). Применяем эту функцию: [sociallocker] //+—————————————————————————-+ //|  Параметры:                                                                | //|    sy — наименование инструмента             («»   — любой символ,         | //|                                               NULL -… Читать далее »

Функция гарантированного открытия ордера

Функция гарантированного открытия ордера Ордер точно будет открыт этой функцией. Во внешние параметры надо вынести уровень проскальзывания и комментарий к ордеру: input string IsComm = «Тут любой комментарий»; input int Slippage = 30; // 30 — это просто пример Передаваемые параметры: sy — наименование инструмента   (NULL или «» — текущий… Читать далее »

Как узнать последнее действия с балансом — списание или зачисление

Как узнать последнее действия с балансом — списание или зачисление Особенно актуально этот вопрос стоит при программировании советников для бинарных опционов, где прибыль последнего ордера отображается не так, как в форексе. В форексе прибыль по закрытому ордеру указывается кв графе Прибыль, а в бинарных опционах, как правило, Прибыль закрытого ордера… Читать далее »

Время работы советника

Время работы или как сделать паузу в работе советника для MT4 Часто нужно ограничить работу советника. Например, чтобы не торговал в определенные периоды времени: ночью, в какую-то определенную торговую сессию, во время выхода новостей. Или наоборот, надо сделать так, чтобы он торговал исключительно ночью. Итак, внешние параметры: input bool   p… Читать далее »

Функция mql4: Один ордер на одном баре

Один ордер на одном баре При разработке торговых роботов в 70% случаев нужно, чтобы на одном баре было открыто не больше одного ордера. Самое оптимальное решение этой проблемы, на мой взгляд, дает уважаемый мной программист Kimiv (нажмите на одну из иконок соцсетей и функция станет доступна): [sociallocker] //+—————————————————————————-+ //|  Автор   … Читать далее »

Сколько было открыто ордеров в текущем часе (функция mql4)

Функция считает, сколько было открыто ордеров в текущем часе всего (текущих ордеров и ордеров закрытых). Можно применять, например, если надо ограничить количество открываемых советником ордеров, например, не больше 2 в час и пр. Ставьте лайки на этот сайт) Функция: int CountOrdersInHour()   {    int count_tr=0;    int count_hy=0;   … Читать далее »

Функция гарантированной модификации ордера

Функция гарантированной модификации ордера Функция позаимствована у Kimiv. Внешний параметр (можно просто объявить без возможности редактирования. Много вариантов): extern int NumberOfTry = 20; // Количество попыток модификации ордера Чтобы компилятор не ругался на это: ErrorDescription, в начале кода советника подключите библиотеку: #include <stderror.mqh> Перед вызовом функции для модификации ордера, этот… Читать далее »