Оглавление
ShowMeBe – советник безубыток на Форекс
Новички в трейдинге зачастую встречаются с термином безубыток на Форекс и не понимают, что он означает. Сегодня я расскажу вам о том, что такое безубыток и, какие плюсы и минусы от его использования.
p, blockquote 1,0,0,0,0 —>
Что такое безубыток на Форекс
Многие трейдеры употребляют фразу «вышел в Б/У», что означает завершить торговлю без убытков. Это означает, что трейдер ничего не заработал, по какой цене приобрел, по такой и продал и наоборот.
p, blockquote 2,0,0,0,0 —>
Для более наглядного понимания, предлагаю вам рассмотреть конкретный пример. Предположим на паре евро/доллар мы открываем сделку на покупку по цене 1,25001, а стоп-лосс устанавливаем на 20 пунктов ниже. Через некоторое время уровень ушел вверх в выгодном для нас направлении на 25 пунктов, в результате чего мы смогли перенести стоп-лосс вверх в точку открытия ордера. Для того чтобы компенсировать размер спреда, который в текущий момент равняется 5 пунктам, нам нужно перенести стоп-лосс еще на 5 пунктов выше. Теперь наш ордер стал безубыточным. Таким образом если цена и дальше продолжит двигаться вверх, наш ордер принесет нам прибыль, а если вниз, то мы просто ничего не заработаем и не понесем убытки.
p, blockquote 3,0,1,0,0 —>
Точно по такой же схеме осуществляется перенос сделок на продажу в безубыточное положение. В случае если мы открываем сделку на продажу, а цена движется вниз, мы можем перенести стоп-лосс в безубыточное состояние, в результате чего ордер станет безубыточным. Если после этого цена продолжит двигаться вниз, то мы сможем заработать, а если она развернется и устремится вверх, ордер закроется по стопу, а мы просто ничего не заработаем.
p, blockquote 4,0,0,0,0 —>
Стоит также упомянуть и о минусе такой тактики ведения торгов. Дело в том, что на многих валютных парах, особенно с участием американского доллара, наблюдается высокая волатильность, в результате чего многие ордера закрываются по стопу и не приносят трейдеру ожидаемой прибыли. Если не учитывать волатильность, то высок шанс того, что ордер закроется неожиданно по стопу из-за резкого скачка цены.
p, blockquote 5,0,0,0,0 —>
Такую тактику ведения, конечно же, лучше всего использовать во время стабильного тренда на рынке. Стоит также отметить, что использовать данный способ торговли во время консолидации на рынке Форекс тоже не рекомендуется. Обусловлено это тем, что во время флэта цена совершает пусть и незначительные, но разносторонние движения, что может привести к срабатыванию ордеров по стоп-лоссу, что делает торговлю бессмысленной.
p, blockquote 6,1,0,0,0 —>
Советник безубыток на Форекс
Теперь предлагаю вашему вниманию советник безубыток, который позволяет автоматизировать перенос сделок в безубыточное состояние. Речь идет о роботе под названием ShowMeBe. Данный советник подходит для использования на любой валютной паре и тайм-фрейме. Он в состоянии осуществлять перенос в безубыток целой серии ордеров, открытых вручную, а также другими роботами.
p, blockquote 7,0,0,0,0 —>
p, blockquote 8,0,0,0,0 —>
После переноса советника из окна «Навигатор» на открытый график, перед вами должно появиться такое же окно, как на картинке, расположенной ниже.
p, blockquote 9,0,0,1,0 —>
Во вкладке «Входные параметры» вы сможете увидеть стандартные настройки советника. Подробное описание всех настроек вы сможете найти в архиве вместе с советником.
p, blockquote 10,0,0,0,0 —>
Принцип работы советника ShowMeBe
После оптимизации советника, вы можете смело запускать его и использовать в торговле. Для примера открою сделку на покупку со стоп-лоссом.
p, blockquote 11,0,0,0,0 —>
Советник самостоятельно определяет уровень безубытка, а в левой части графика появляется окно с информацией об используемой валютной паре, уровне безубытка с учетом комиссии, стоп-лоссе и тейк-профите. В нижней строке указано количество пунктов, которое цена должна пройти, чтобы советник перенес стоп.
p, blockquote 12,0,0,0,0 —> p, blockquote 13,0,0,0,1 —>
Надеюсь, теперь вы знаете, что такое безубыток на Форекс и, в чем его основные преимущества. Подписывайтесь на мою рассылку, и вы всегда будете в курсе всех самых современных стратегий и советников.
Пишем кроссплатформенный помощник для выставления StopLoss и TakeProfit в соответствии со своими рисками
Введение
Как вы, наверное, знаете, при любой торговле крайне рекомендуется соблюдать правила мани-менеджмента. А именно, не входить в сделку, в которой вы можете потерять более N% от своего депозита.
Какое будет N, вы выбираете сами. Но чтобы соблюсти это правило, следует правильно высчитать лот, которым нужно войти в сделку.
Те, кто в своих мастер-классах советуют так делать, обычно показывают Excel-файл, в котором у них уже забиты нужные формулы расчета лота для каждого символа. А им остается «просто» ввести размер своего стоп-лосса, чтобы получить нужный объем лота.
Но так ли это «просто»? Эта операция может занять минуту и более вашего времени. И когда вы наконец определитесь с размером лота, цена может далеко уйти от предполагаемого места входа. И это не говоря уже о той лишней работе, которую вы делаете. И что еще хуже, дополнительная ручная работа всегда увеличивает вероятность совершить ошибку.
Поэтому давайте попробуем действительно сделать этот процесс простым. Для этого мы создадим советник, который позволит в визуальном режиме выставить цену открытия и стоп-лосс. И исходя из этих параметров, а также уровня вашего риска, будет выбран нужный размер лота и открыта позиция в нужную сторону.
Постановка целей
Итак, с первой задачей мы определились.
Еще одна задача, которую будет решать наш советник — это выставление цены тейк-профита исходя из ваших предпочтений в отношении размеров тейк-профита к стоп-лоссу.
Герчик и другие успешные трейдеры советуют всегда ставить тейк-профит, который как минимум в 3 раза больше вашего стоп-лосса. То есть если вы ставите стоп-лосс в 40 пунктов, то тейк-профит должен быть минимум 120 пунктов. И если шансов, что до этого уровня цена дойдет, немного, то в сделку лучше не заходить.
С точки зрения подсчета статистики лучше всего всегда использовать одинаковое соотношение размера стоп-лосса к тейк-профиту. Например, всегда входить в сделки с соотношением тейк-профита к стоп-лоссу 3 к 1, 4 к 1 и т. д. Какое именно соотношение выбрать, вы решаете самостоятельно, исходя из показателей своей торговли.
Но остается вопрос, как же нам выставлять уровень тейка, не тратя на это драгоценные минуты своего времени? Опять пытаться использовать Excel? Или надеяться, что метод «на глаз» вполне подойдет?
Чтобы даже не задумываться над этим, давайте также заложим данную возможность в настройках советника. У нас будет специальный параметр, который позволит задать соотношение стоп-лосса к тейк-профиту. Например, значение 4 этого параметра будет означать, что соотношение должно быть 4 к 1. И тогда советник автоматически будет выставлять уровень тейк-профита в 4 раза больше, чем выбранный вами размер стоп -лосса.
Формат работы советника. И последняя задача, которую нам нужно решить перед тем, как начать разработку: определиться, как же будет работать наш советник. И, на самом деле, это, наверное, самая сложная задача.
Советник, подобный тому, что мы сейчас создадим, я использую уже более года. С момента своего рождения он претерпел глобальные изменения.
Изначально при запуске советника выводилось диалоговое окно, позволяющее изменить все настройки открытия новой позиции. Эти настройки автоматически сохранялись и использовались при следующих запусках советника. И это был самый главный плюс данного способа. Ведь настройки, как правило, задаются только один раз (выставляются под себя) и больше не меняются.
Однако у диалогового окна с настройками есть огромнейший минус — оно занимает практически все окно с графиком. И движения цены за ним практически не видно. И поскольку данным диалоговым окном, после первого изменения настроек, мы особо не пользуемся, то оно закрывает график не предоставляя вообще никаких преимуществ.
Например, вот так выглядит окно графика с диалоговым окном при ширине в 640 пикселей:
Рис.1.Версия советника с диалоговым окном
Как можно заметить, окно даже полностью не помещается на экране.
С целью решения данной проблемы со временем появилось 2 версии данного советника.
В первой данная проблема была решена сокрытием окна настроек по умолчанию, и его выводом при нажатии кнопки Настройки. Этот советник до сих пор можно приобрести в Маркете для MetaTrader 5.
Ну а вторая версия советника вообще обходится без диалогового окна настроек. Все настройки советника задаются с помощью входящих параметров. Что избавляет нас от необходимости использования диалогового окна, но при этом обрекает нас на один из следующих вариантов мук:
- при каждом запуске советника заново настраивать его под себя;
- при каждом запуске советника загружать свои настройки из SET-файла;
- изменить стандартные настройки в коде советника и перекомпилировать его.
Поскольку все мы считаем себя программистами, надеюсь, вы выберете третий вариант. Ведь именно упрощенный клон второй версии советника мы сейчас и создадим. И выглядеть на графике он будет примерно так:
Рис.2. Версия советника без диалогового окна
Входящие параметры
Чтобы лучше понять весь фронт работ, давайте в первую очередь посмотрим на входящие параметры нашего советника:
Рис.3. Входящие параметры советника
Вся наша торговля будет строиться от стоп-лосса, как и советуют гуру трейдинга. Поэтому в первую очередь обратите внимание на первые два параметра: » Тип стоп-лосса» и «Размер стоп-лосса в $ или %«.
По умолчанию стоп-лосс задается в долларах, о чем говорит параметр «Тип стоп-лосса«. Также стоп-лосс можно задавать в процентах от вашего баланса. При этом, если выбран стоп-лосс в процентах, то выставленное значение не может превышать 5% от депозита. Это сделано во избежание ошибок при установке параметров советника.
Параметр «Размер стоп-лосса в $ или %» как раз и определяет ту сумму, которую вы готовы потерять при наступлении стоп лосса.
Размер стоп-лосса в центах (клавиши 7 и . Также к заданию стоп-лосса можно отнести еще один параметр — «Размер стоп лосса в центах (клавиши 7 и «.
Далее в советнике мы реализуем набор клавиш быстрого доступа, позволяющих в один клик установить стоп-лосс нужного нам размера. Например, если при торговле вы всегда используете стоп-лосс размером в 7 центов, то вам достаточно будет нажать клавишу 7 на клавиатуре, чтобы стоп-лосс был установлен на такое расстояние от текущей цены. Но об этом мы еще поговорим.
Следует понимать, что этот параметр определяет не сумму, которую вы потеряете при стоп-лоссе, а именно расстояние от цены открытия до той цены, на которой сработает стоп-лосс.
Не входить в сделку, если при мин. лоте риск больше заданного. Поскольку размер лота, с которым нужно войти в сделку, высчитывается автоматически исходя из параметра » Размер стоп-лосса в $ или %«, может возникнуть такая ситуация, что даже при минимально возможном у вашего брокера лоте риск на сделку будет больше заданного вами.
В этом случае можно либо войти в сделку минимальным лотом, игнорируя ваш риск, либо вообще отменить открытие сделки. Именно за выбор подходящего поведения и отвечает данный параметр.
По умолчанию советник не даст вам войти в сделку, если риск будет превышен.
Отменить лимитный ордер через, часов. Помимо рыночного входа в сделку советник позволяет создавать лимитные ордера от указанной вами цены. При этом вы можете воспользоваться данным параметром, чтобы ограничить время жизни такого лимитного ордера.
Время жизни задается в часах. Например, если время жизни равно 2 часам, и через 2 часа с момента выставления лимитного ордера, он не сработал и не превратился в открытую позицию, то данный лимитный ордер удаляется.
Множитель для тейка. Если вы торгуете с определенным соотношением размера стоп-лосса к тейк-профиту, то с помощью данного параметра вы можете настроить автоматическую установку тейк-профита в соответствии с вашим правилом.
По умолчанию значение параметра равно 4. То есть тейк-профит будет устанавливаться на такую цену, чтобы прибыль при наступлении тейк-профита равнялась размеру 4 ваших убытков.
Остальные параметры. Также вы можете:
- изменить Magic-номер, который советник будет присваивать ордерам;
- задать комментарий, который будет присваиваться ордерам;
- выбрать язык интерфейса между русским (по умолчанию) и английским.
Функция открытия позиции
Поскольку мы пишем кроссплатформенный советник, он должен работать и в MetaTrader 4, и в MetaTrader 5. Однако функционал открытия позиций у данных версий советников отличается. И чтобы наш код работал сразу на двух версиях платформы, мы будем использовать условную компиляцию.
Что это такое, я уже не раз рассказывал в своих статьях. Например, в статье Создаем кроссплатформенный советник-сеточник (гридер).
Если вкратце, то код условной компиляции выглядит так:
На протяжении всей статьи возможностями условной компиляции мы воспользуемся всего 3 раза, два из которых относятся к функции открытия позиции. Весь остальной код будет одинаково работать и в MetaTrader 4, и в MetaTrader 5.
Вообще, саму функцию открытия позиции мы также уже разрабатывали в рамках статьи Создаем кроссплатформенный советник-сеточник (гридер). Поэтому давайте просто возьмем ее оттуда. Единственное, мы ее немного допишем, чтобы она позволяла задавать время жизни открываемых лимитных ордеров:
В MetaTrader 5 при открытии позиции необходимо выбрать тип ее исполнения. Поэтому для MetaTrader 5 мы добавляем еще один входящий параметр: » Режим исполнения ордера«.
Разные брокеры поддерживают разные типы исполнения ордеров. Наверное, наиболее популярным среди брокеров является тип исполнения ORDER_FILLING_FOK. Поэтому он выбран по умолчанию. Однако если ваш брокер не поддерживает данный режим, вы легко можете выбрать тот, который он поддерживает.
Локализация советника
Еще один механизм, который был взят из статьи Создаем кроссплатформенный советник-сеточник (гридер), это возможность локализации текстовых сообщений советника. Поэтому снова мы его рассматривать не будем. Если формат его работы вас заинтересовал, прочитайте упомянутую статью.
Программируем интерфейс советника
Вообще, в данной статье мы не будем рассматривать разработку советника с самого нуля. К тому же, предполагается, что вы уже знаете язык MQL хотя бы на базовом уровне.
В данной статье мы рассмотрим, как реализованы основные части советника. Это поможет вам, если вы собираетесь его использовать, или вдруг захотите доработать его, реализовав дополнительный функционал.
И начнем мы с интерфейса нашего советника.
При запуске советника будут созданы следующие элементы интерфейса:
- в комментарии мы будем отображать текущий спред в долларах, пунктах и процентах от цены, а также время закрытия сессии по инструменту;
- на расстоянии спреда от текущей цены будет отображена горизонтальная красная линия, с помощью которой мы будем выставлять цену стоп лосса;
- также добавим кнопку «Показать линию цены открытия (0)«, при нажатии на которую на графике будет отображена зеленая горизонтальная линия цены открытия ордера;
- и, конечно, нам нужна кнопка, с помощью которой мы будем открывать ордер с установленными параметрами.
Таким образом, чтобы создать ордер с нужными нам параметрами (заданными с помощью параметров советника), необходимо переместить красную линию на ту цену, при достижении которой должен наступить стоп лосс.
Если разместить красную линию над текущей ценой, то будет открыта позиция в Short. Если же красная линия будет под текущей ценой, то откроется позиция в Long.
Объем открываемой позиции будет рассчитан автоматически таким образом, чтобы при наступлении стоп лосса вы потеряли сумму, наиболее близкую к той, что была указана в настройках советника. Так что вам остается только нажать на кнопку открытия позиции. В результате будет открыта позиция по рыночной цене.
Если же вы хотите войти в рынок лимитным ордером, тогда дополнительно нужно нажать на кнопку «Показать линию цены открытия (0)«, и переместить появившуюся зеленую линию на цену, по которой вы хотите открыть лимитный ордер. Направление и тип лимитного ордера советник определит автоматически на основе расположения линии стоп лосса и линии тейк-профита (стоп лосс выше цены открытия или ниже).
В принципе, кнопку «Показать линию цены открытия (0)» можно и не нажимать. После того, как вы переместите красную линию стоп-лосса на нужную цену, данная кнопка будет нажата автоматически, и появится зеленая линия цены открытия. Если переместить её, то будет открыт лимитный ордер. Если же не трогать, то откроется позиция по рынку.
Ну что же, принцип работы мы разобрали. Теперь можем перейти к программированию.
Работа с комментарием к графику. Для работы с комментарием к графику используется стандартная функция Comment. Поэтому нам осталось только подготовить ту строку, которую функция Comment выведет на график. Для этого мы создадим собственную функцию getmespread:
Вызывать функцию getmespread будем как при инициализации советника (OnInit), так и при каждом новом тике (OnTick).
В функции getmespread мы используем пять глобальных переменных нашего советника: lastme, isClosed, time_info, currencyS, curPoint.
В переменной lastme хранится информация об Ask и Bid последней полученной цены. Ее содержимое обновляется в функциях OnInit и OnTick командой:
Остальные переменные инициализируются в функции OnInit. isClosed и time_info инициализируются следующим образом:
В переменной currencyS мы будем хранить символ валюты, которая используется для расчета профита по текущему инструменту. Получить его можно командой:
Размер пункта по инструменту мы будем хранить в переменной curPoint:
Линия стоп-лосса. Непосредственно при запуске советника мы видим только одну линию — красную линию выставления стоп лосса.
Как и кнопки, данную линию мы будем выводить в функции OnInit. Но перед тем, как вывести линию, нужно проверить, нет ли уже такой линии на графике. Если линия есть, то новую линию и остальные элементы интерфейса мы не создаем. Вместо этого в глобальные переменные поместим цену, на которой находится данная линия, а также цену, на которой находится линия открытия сделки, если таковая линия есть на графике:
Может ли вообще возникнуть такая ситуация, когда на графике уже есть элементы интерфейса запускаемого советника?
Если вы не реализовали код, который при закрытии советника будет удалять все элементы интерфейса, которые он создал, тогда не только может, но и обязательно произойдет. Но даже если такой код реализован, все равно может возникнуть какая-то ошибка в работе советника, из-за которой он будет закрыт, а созданные им элементы интерфейса останутся на графике. Поэтому лучше всего всегда перед созданием какого-либо графического элемента проверять, нет ли такого элемента на графике.
Итак, красную линию мы создали. Более того, мы сделали ее по умолчанию выбранной. Поэтому вам не нужно дважды щелкать по линии, чтобы ее активировать. Достаточно сразу переместить ее на нужную цену. Однако если вы сейчас переместите красную линию, то ничего не произойдет. Ведь код, который будет выполнять определенные действия после того, как линия будет перемещена, еще не реализован.
Любое взаимодействие с элементами интерфейса графика осуществляется в стандартной функции OnChartEvent. Перемещение элементов интерфейса генерирует событие с ID CHARTEVENT_OBJECT_DRAG. Таким образом, чтобы выполнить что-либо после перемещения линии на графике, нужно в функции OnChartEvent перехватить данное событие, проверить, элемент с каким именем его вызвал, и если это наш элемент, то можно выполнять нужный нам код:
После перемещения красной линии будет запущена функция setstopbyline, которая «запоминает» уровень стоп лосса для будущего ордера:
Помимо функции setstopbyline перемещение красной линии приводит к отображению на графике линии цены открытия (функция showOpenLine) и изменению состояния кнопки » Показать линию цены открытия (0)«.
Кнопка и линия цены открытия. Кнопка «Показать линию цены открытия (0)» также создается при инициализации советника:
Как уже говорилось выше, любое взаимодействие с элементами интерфейса обрабатывается внутри стандартной функции OnChartEvent. В том числе и нажатие кнопок. За это отвечает событие с ID CHARTEVENT_OBJECT_CLICK. Нам остается только перехватить его, проверить источник события, и выполнить нужные действия. Для этого добавим дополнительный case в оператор switch функции OnChartEvent:
Функция updateOpenLine, которая вызывается при клике на кнопку «Показать линию цены открытия (0)«, является небольшой оберткой для вызова основной функции showOpenLine. Та, в свою очередь, просто выводит на график цену открытия:
Нам остается только переписать обработчик события CHARTEVENT_OBJECT_DRAG, чтобы он реагировал на перемещение как линии стоп-лосса, так и линии цены открытия:
Линия тейк-профита. Помимо красной и зеленой линии нам предстоит реализовать еще одну — пунктирную. Она будет появляться после того, как вы переместите на нужную цену красную линию стоп-лосса. И показывать она будет цену, при достижении которой наступин тейк-профит по сделке:
Рис.4. Линии стоп лосса, цены открытия и цены тейк-профита
Кнопка открытия позиции. Кнопка открытия позиции выводится точно таким же образом, как и кнопка «Показать линию цены открытия (0)«.
При нажатии на данную кнопку также будет генерироваться событие CHARTEVENT_OBJECT_CLICK. Как работать с данным событием мы уже рассматривали. В общем, в результате при нажатии на кнопку открытия позиции будет выполняться функция startPosition:
Удаление элементов интерфейса при завершении работы советника. Не стоит забывать и о корректном удалении элементов интерфейса после завершения работы советника. Ведь если мы об этом не позаботимся, то все элементы так и останутся на графике.
Чтобы выполнить какие-либо команды при завершении работы советника, достаточно написать их внутри стандартной функции OnDeinit:
Переменная reason содержит сведения о причине, по которой работа советника завершена. В данный момент нам важна единственная из причин — смена таймфрейма ( REASON_CHARTCHANGE). Дело в том, что по умолчанию смена таймфрейма приводит к завершению работы советника и повторному его запуску. И для нас это не самое приемлемое поведение. Ведь в таком случае при смене таймфрейма у нас сбиваются цены стоп-лосса и открытия, которые мы, возможно, уже задали.
Поэтому в функции OnDeinit мы сначала проверяем, не является ли причиной удаления советника смена таймфрейма. И только в том случае, если причина закрытия другая, мы выполняем удаление всех элементов интрфейса советника, а также очистку комментария к графику.
Реализуем клавиши быстрого управления советником
Выставление ордеров при помощи мыши, это, конечно, здорово. Но иногда может оказаться полезной и возможность более быстрой работы с советником при помощи нажатия клавиш клавиатуры.
Нажатие клавиш клавиатуры также относится к взаимодействию с элементами интерфейса советника. А именно, ко всему графику, на котором запущен советник. Так что перехватывать нажатия клавиш клавиатуры необходимо в функции OnChartEvent.
При нажатии любой из клавиш клавиатуры возникает событие CHARTEVENT_KEYDOWN. При этом в параметр sparam помещается код нажатой клавиши. И этих знаний вполне достаточно, чтобы начать обработку нажатия клавиш:
Таким образом, если вы задаете фиксированный стоп, равный минимально возможному, 0.2% от цены или в центах от цены, тогда вам даже мышкой не нужно пользоваться. Запустили советник, нажали клавишу » 2«, чтобы установить стоп-лосс, равным 0.2% от цены в Long, нажали клавишу «S«, и позиция открылась.
А если вы пользуетесь MetaTrader 5, то вы даже запускать советник можете с клавиатуры, назначив ему горячие клавиши. Если кто-то не знает об этой возможности MetaTrader 5, тогда в окне Навигатор вызовите контекстное меню нужного советника, в нем выберите пункт Назначить горячую клавишу, и ваша жизнь может стать проще:
Рис.5. Назначение горячих клавиш советникам
Подсчет нужного объема сделки
Нам осталось рассмотреть только функцию открытия позиции (startPosition). Однако в ней практически ничего интересного нет. Мы просто проверяем наличие всех нужных нам данных: цены стоп-лосса, цены открытия позиции, настроек советника. После этого происходит подсчет объема лота, которым следует войти в сделку для соблюдения ваших рисков. И вызывается уже рассмотренная в начале статьи функция pdxSendOrder.
Самым интересным из перечисленного является механизм подсчета объема сделки.
Сначала нам нужно подсчитать, сколько мы потеряем в случае стоп-лосса на минимально возможных объемах. Реализация данного функционала в MQL5 отличается от MQL4.
В MQL5 есть специальная функция OrderCalcProfit, которая позволяет подсчитать размер прибыли, которую вы получите при движении цены по инструменту до указанного уровня. С ее помощью легко подсчитать как возможную прибыль, так и потери, возможные при стоп лоссе.
В MQL4 для подсчета убытков используется более сложная формула.
В итоге для подсчета убытков получилась такая функция:
После того как мы получили размер убытков на минимальном объеме, осталось определить объем сделки, при котором убытки не будут превышать заданного в настройках советника риска:
Ограничения на вход
В процессе своей работы советник проверяет ряд условий, чтобы вы не тратили свое время, пытаясь открыть сделку там, где это запрещено.
Например, при инициализации советника проверяется минимальный допустимый объем лота по текущему инструменту. И если это значение равно 0, советник не запустится. Так как, как правило, по инструментам с такими настройками открыть позицию не получится:
Также выполняется проверка на режим доступа к торгам по инструменту. И если торговля по инструменту запрещена или разрешено только закрытие ранее открытых сделок, советник также не запустится:
Непосредственно при открытии позиции выполняется проверка корректности заданной цены открытия и стоп-лосса. Например, если минимальный шаг цены 0.25, а у вас стоп-лосс установлен на цену 23.29, то брокер просто не примет ваш ордер. Вообще, в подобных случаях советник автоматически приводит цену к правильному значению (и цена стоп лосса будет не 23.29, а 23.25 или 23.5). И вы просто не сможете задать «неправильную» цену. Но на всякий случай выполняется и дополнительная проверка:
Заключение
Конечно, мы сделали только базовые возможности по выставлению ордеров. Но даже эти возможности существенно упрощают жизнь тем, кто торгует по уровням Герчика или каким-либо другим уровням.
Надеюсь, вы больше не будете пользоваться таблицами Excel не по назначению. Благодаря чему скорость и точность вашей торговли возрастет. А вместе с этим возрастет и прибыль.
Любые доработки советника разрешены и приветствуются.
Если же программирование — это не ваше. Но вам очень нужно реализовать какой-то функционал, которого нет в рамках данного советника, пишите в личку. Однако скорее всего это будет не бесплатно =)
Или же можете посмотреть на функционал расширенных версий данного советника, размещенных в Маркете:
Возможно, среди данного функционала будет то, что вам нужно.
https://womanforex.ru/sovetniki-foreks/chto-takoe-bezubytok-na-foreks.html
https://www.mql5.com/ru/articles/6986