Скрипт закрыть все ордера одновременно. Скрипты для закрытия ордеров в MT4 – это те инструменты, которые помогают увеличить скорость работы с ордерами

Незаменимый помощник трейдерам, которые работают с большим числом ордеров и вынуждены вручную закрывать «пачки» ордеров, теряя время и деньги (цена ведь не стоит на месте). Разумеется, можно настроить работу как угодно: закрывать рыночные и\или отложенные ордера, тип ордеров (BUY\SELL), профитные или убыточные ордера, закрывать ордера только с конкретным маджик-номером или не обращать на него внимания и т.д.

Скрипт для закрытия большого количества ордеров

Этот скрипт пригодится многим трейдерам, которые работают с большим количеством ордеров и вынуждены вручную закрывать их десятками, теряя время и деньги (цена ведь не стоит на месте). Скрипт позволяет настроить работу как угодно: можно закрывать как рыночные, так и (или) отложенные ордера, можно выбирать тип ордеров (BUY\SELL) для закрытия, закрывать только профитные или только убыточные ордера, можно закрывать ордера только с конкретным маджик-номером и т.д…
Использовать скрипт очень просто: поместите файл ATS.CloseOrders.ex4 в папку MQL4/Scripts своего терминала, после чего запустите скрипт на любой валютной паре. На какой конкретно – значения не имеет, советник работает со всеми ордерами, независимо от того, на какой паре они открыты.
После запуска, введите желаемые параметры:

Пояснение:
«Закрывать открытые BUY ордера» — если выбрано false – ордера типа BUY затронуты не будут и останутся в рынке. Если выбрано true – будет проверяться условие на прибыльность\убыточность ордера (третий и четвертый параметры).
«Закрывать открытые SELL ордера» — если выбрано false – ордера типа SELL затронуты не будут и останутся в рынке. Если выбрано true – будет проверяться условие на прибыльность\убыточность ордера (третий и четвертый параметры).
«Закрывать профитные ордера?» — если ордер прошел проверку по первому и второму параметру, теперь проверится это условие. (Например, ордер типа SELL, и мы выбрали «Закрывать открытые SELL ордера» — true.) Тогда, допустим, в этом параметре мы выбрали false (то есть НЕ закрывать профитные ордера), а наш ордер как раз прибыльный. Тогда этот ордер закрыт не будет. Если же мы поставили бы true, тогда ордер был бы закрыт.
«Закрывать убыточные ордера?» — полностью аналогично предыдущему параметру, но для убыточных ордеров.
«Удалять отложенные ордера?» — название говорит само за себя. Если выбираем true – отложенные ордера будут удалены.
«Закрывать\удалять ордера только с маджиком ниже?» — если выбираем true, тогда скрипт будет работать ТОЛЬКО с теми ордерами, маджик которых совпадает с тем числом, которое мы введем в следующем параметре. Если же мы выбираем false – скрипт будет работать со всеми ордерами.
Немного полезной информации: помните, что у ордеров, которые открыты вручную, маджик равен нулю. Вы можете использовать это, когда, например, хотите закрыть только ордера, открытые вручную. При этом ордера, открытые советниками (а они обычно используют маджики), останутся в рынке.
«Маджик (Magic Number)» — собственно число, которому должны быть равны маджики ордеров при активном предыдущем параметре.
«Проскальзывание (4-значные пункты)» — этот параметр определяет, сколько пунктов может пройти рынок в промежуток между тем, когда скрипт отдал команду на закрытие, и тем, когда сервер ее готов обработать. Если за это время рынок успел «убежать» более чем на введенное количество пунктов – сделка не закроется.

Обратите внимание, что кроме скомпилированной версии мы предоставляем вам также открытый код данного скрипта. Им вы можете воспользоваться в своих разработках, а также для изучения языка MQL4. Скачать скрипт нажав на кнопку ниже. Единственная просьба – при распространении этого скрипта в интернете (если вы будете этим заниматься) оставляйте ссылку на нас. Заранее спасибо.

Задавались ли Вы вопросом, как закрыть все ордера в mt4 одновременно ? Для этих целей в приложении AutoGraf 4 есть удобный инструмент "Закрыть все ордера ". Как только инструмент приводится в действие - все ордера начинают по очереди закрываться (смотрите видео):

Использование инструмента

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

Есть два способа мгновенно закрыть все ордера:

Первый способ - с помощью горячих клавиш Shift+Del . Как только комбинация будет нажата - инструмент Закрыть все ордера одновременно начнёт свою работу, и ордера начнут закрываться.

Второй способ состоит из следующих шагов:

1. Выделить значок инструмента мышкой.
2. Немного его сдвинуть (смотрите видео).

После этого ордера начнут автоматически закрываться один за другим.

3. Если в процессе закрытия ордеров вы передумали, то можно ещё раз выделить и сдвинуть инструмент - процесс закрытия ордеров прекратится.

Почему для закрытия ордеров лучше использовать AutoGraf 4

Дело в том, что скрипт закрытия всех ордеров использует "умный алгоритм", позволяющий получить максимальную экономическую выгоду:

1. Закрытие рыночных ордеров производится встречно там, где это возможно. Это позволяет сэкономить один спред по сравнению с последовательным закрытием ордеров.
2. Порядок отправки торговых приказов такой, чтобы как можно быстрее обезопасить торговлю от непредсказуемого изменения рыночной цены.

Обработка ошибок и повторение торговых приказов

Любой отправленный торговый приказ сначала обрабатывается на сервере. Сервер может как исполнить, так и не исполнить торговый приказ, вернув код ошибки. Скрипт закрыть все ордера анализирует код ошибки и принимает решение - что делать дальше:

  • торговый приказ может быть продублирован после некоторой паузы или сразу. Например, если сервер вернул ошибку "Нет цен", то повторный торговый приказ будет отправлен только на новом тике. Если вернулась ошибка "Брокер занят", то будет выдержана пауза в несколько секунд (продолжительность паузы можно задать в Настройках программы в параметре Pause_TradeError ).
  • торговля может быть прекращена. Это может произойти, если сервер вернёт критическую ошибку, например "Торговля запрещена", "Счёт заблокирован" и т.д.

Процесс торговли состоит, как минимум из двух действий – открытия и закрытия позиции. От своевременности их совершения напрямую зависит успешность торговых операций, выполняемых трейдером. При этом больше всего внимания в стратегиях форекс уделяется именно размещению ордера, а вот вопрос как закрыть сделку в МТ4 часто не поднимают.

Сделать это можно вручную, а также установив автоматическую функцию, выполняющуюся при определенных условиях (достижении котировкой заданного уровня). Таких автоматических функций закрытия сделки в MT4 две – СтопЛосс и ТейкПрофит. Их можно как задать непосредственно при настройке размещаемого ордера (вызывается нажатием F9), так и изменить у уже размещенного ордера любого типа (рыночного, отложенного). Вызвать окно модификации ордера можно двойным кликом на:

  • горизонтали, обозначающей на графике уровень ордера;
  • строке ордера на вкладке «Торговля» окна «Терминал».

Поле «Тип» должно иметь значение «Изменить». СтопЛосс задается в правом столбце зоны «Изменить ордер», а «ТейкПрофит» – в правом. Эти столбцы состоят из трех строк:

  • Уровень – расстояние от ордера до СтопЛосса или ТейкПрофита (задается в пунктах);
  • Копировать – эта кнопка отображает текущее значение СтопОрдера с соответствии со значением поля «Уровень» и позволяет задает его соответствующему СтопОрдеру;
  • СтопЛосс/ТейкПрофит – поля с уровнями соответствующих СтопОрдеров, которые можно изменять вручную (вводом с клавиатуры или стрелками инкремента/декремента).

Если установленные значения СтопОрдеров удовлетворяют требованиям спецификации актива и торговых условий брокера, то кнопка «Изменить», расположенная ниже, активируется. В результате, достижение котировкой любого из этих уровней приведет к закрытию сделки в МТ4, но с одной разницей – в одном случае зафиксируется прибыль (закрытие по ТейкПрофиту), а во втором случае зафиксируется убыток (закрытие по СтопЛоссу).

Уровни СтопОрдеров также отображаются несплошными горизонталями и подписываются (sl и tp). Захватив их нажатием левой кнопки при наведенном указателе мыши, можно изменять их уровень.


Если же требуется выполнить закрытие, то вызывается контекстное меню из:

  • строки ордера вкладки «Торговля» окна «Терминал» (рис. 2);
  • линии уровня ордера на графике.

В обоих случаях затем выбирается функция «Закрыть ордер». При этом закрытие происходит безусловно (т. е. от трейдера не требуются дополнительные подтверждения действия). Еще один способ – клик на крестике в поле «Прибыль» строки ордера в окне «Терминал».

Надо закрыть часть сделки в МТ4 – как это сделать?

Для этого в окне ордера, вызванном любым из описанных выше способов (хоть для изменения, хоть для закрытия), в поле «Тип» задать «Рыночное исполнение». Затем устанавливается закрывающийся объем и нажимается кнопка открытия позиции, противоположной уже открытой. Например, на рис. 3 открыта короткая позиция объемом 0,5 лота (в ее наименовании имеется слово sell и число 0,5), а в окне управления ордером устанавливается объем 0,3, поэтому после нажатия на кнопку BuyByMarket объем открытой позиция становится равным 0,2 лота.


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

Как закрыть все сделки в MT4 одновременно

Отдельные ТС основаны на открытии нескольких сделок по одному активу на разных уровнях. При этом, помимо основного условия их закрытия (фиксация прибыли или ограничение убытков), существует и условие безусловного закрытия всех открытых ордеров (закрытые при этом может быть необходимо как оставить, так и удалить). Такую функцию можно реализовать с помощью скриптов на языке MQL.

Пример такого скрипта – ЗакрытьВсеОрдера (скачать ). Он перемещается в каталоге данных в MQL/Scrips и станет доступным в окне «Навигатора» (но лишь после его обновления). А работать скрипт будет при разрешении автоторговли и импорта DLL (активируются соответствующие переключатели вкладки «Советники» окна «Сервис»).

ЗакрытьВсеОрдера не действует на отложенные ордера. Для них предназначен DelOrder (скачать ). Он позволяет одновременно закрыть в MT4 все отложенные ордера (делается это сразу после его применения к графику).

Скрипты для открытия или закрытия сделок (ордеров) сегодня используют все начинающие трейдеры. Но прежде чем рассказывать о тонкостях использования таких программ, стоит разобраться, что такое скрипт.

Скрипт – это небольшая по объему, но не по значению программа. Она дополнительно устанавливается на терминал МТ4 или 5.

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

Скрипт открытия и закрытия сразу нескольких ордеров для платформы MT4

В платформе MT4 некоторые скрипты уже прописаны. Это, в частности скрипт открытия. Он используются для открытия позиции. Также, есть скрипт для удаления ранее открытой позиции. Все скрипты хранятся в одноименном разделе в специальном окне навигатора. Здесь, можно просмотреть весь список доступных программных модулей.

Для того, чтобы начать работу с каким-то скриптом, его нужно перенести на открытый график. Потребуется активировать скрипт в появившемся окошке, с вопросом действительно мы хотим присоединить «close» к графику EUR/USD Daily?

При нажатии клавиши «ДА», скрипт запустится. А после выполнения поставленной функции, он автоматически закроется и уберется с графика, не отвлекая внимание. Удалить скрипт можно и досрочно. Например, если он уже не нужен.

Для удаления, правой кнопкой мышки, щелкнуть на график и нажать функцию «Удалить скрипт ». Готово.

ВИДЕО: Выставление ордеров в МТ4

Установка скриптов непосредственно для открытия / закрытия нескольких ордеров в дополнение к уже имеющимся

Любые скрипты сегодня можно найти в сети. Скрипты для МТ4, также легко скачать на форумах. Для того, чтобы начать работу, убедитесь что у Вас установлена сама программа Metatrader4 скрипты как правило, закачивают целыми архивами.


После скачивания, такой архив нужно распаковать. Все его содержимое должно быть скопировано в папку МQL4/scripts . Кстати, она есть в самом каталоге данных. Далее нужно перейти в этот каталог: Файл => Открыть каталог данных.

Следующий шаг – открытие папки Scripts раздела MQL4. Именно сюда и помещаются скаченные скрипты. После удачного копирования, платформу МТ4 нужно перезапустить. Без этого действия скрипты не отобразятся.

Теперь можно снова запускать программу MT4 и проделать следующие шаги:

  • Выбрать на верхней панели раздел Сервис => Настройки
  • Во вкладке Советник расставить крестики/галочки так, как это показано на картинке ниже:
  • Последний пункт – нажать «ОК»

Теперь можно открывать график выбранной . На график можно перетянуть установленный скрипт.

Меняем параметры скрипта открытия и закрытия защитных ордеров в MT4

Скрипт открытия / закрытия ордеров (одного или нескольких), хорошо работает и с предустановленными параметрами. Но иногда эти параметры требуют небольшой корректировки. Например, если Вы хотите увеличить или уменьшить лот, который открываете. Для изменения параметров скрипта, нужно изменить его код. Сделать это можно только в том случае, если у вас сохранился исходник в формате MQL.

Для начала нужно:

Найти в программе нужный скрипт и выбираем пункт меню изменить при щелчке по правой кнопке.

В открывшемся окошке приложения MetaEditor, как раз и меняются параметры. Главное не изменить лишнего. Внимательно следите за тем, какие именно параметры меняете. В противном случае, ваш скрипт просто перестанет правильно работать и вместо пользы принесет только вред, а следовательно – убытки.

После выполнения всех необходимых изменений, сохраните их нажатием клавиши «Complite». После чего, нужно закрыть все программу МТ4.

Сложностей с программами или каких-то непредвиденных ситуаций возникнуть не должно. Поскольку все скрипты предельно понятны и просты.

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

Скрипт закрытия и открытия защитных ордеров — Urdala Helper

Этот скрипт отлично помогает, когда торговля на Форексе идет в ручном режиме. Управление простейшее – мышкой, как в работе с стандартными окнами Windows. Данный скрипт предназначен для открытия ордеров. Причем как рыночных, так и с выставленным тейком профита и стоп лоссом.

Используется Urdala Helper и при закрытии ордеров (одного или целой группы). Это даже могут быть все ордера разом. А еще с помощью этого скрипта, можно ордера модифицировать. Работать можно также с одним или с несколькими ордерами. Их можно перевести к профиту выше или ниже линии, причем прибыль при этом не потеряется.

Работать со скриптом предельно легко. Его нужно перетянуть на график. В окне настроек а и оформление.

Скрипт представляется в виде окон. Он начинает выбранное вами действие и автоматически закрывается по его выполнении.

Как действует скрипт для нескольких ордеров?

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

Закрытие ордера или ордеров происходит так:

  • Метку цены (зеленую или красную) нужно переместить на точку открытия.
  • Затем выбрать действие закрытия.
  • Можно также выбрать действие закрытие группы.

Помните. Вы всегда сможете остановить работающий скрипт. Например, если сомневаетесь в правильности выбора. Или если он Вам больше не нужен. Для это есть кнопка «Отмена».

Обзор скриптов открытия / закрытия стандартных ордеров для MT4

Скрипт «Закрыть все ордера» . Из названия уже понятно, какую функцию он выполняет. По такому же принципу – «Закрыть все действующие отложенные ордера » либо «Закрыть прибыльные защитные ордера».
Итак, есть скрипт «Break-even-level» . Он показывает на графике безубыточный уровень.
«Modify_taке_profits_DragDrop» — скрипт, который автоматически ставит профит для всех ордеров разом. Если перетянуть его на график, то там за несколько секунд появятся все профиты.