Job finished
![](https://c.mql5.com/i/avatar/avatar_na2.png)
Specification
Выделенное жирным это параметры советника, которые перед стартом можно менять
Построение сетки
Через каждые Step пунктов устанавливается стоп отложник. Если MA (moving average) установлено как положительное значение, то выше линии МА ставить отложники бай, а ниже сэлл. Если МА указано как 0, то выше текущей цены ставим бай, а ниже сэлл. Количество отложников, которые надо установить это Orders в момент работы динамично меняется, если цена уходит , то отложники удаляются, если цена приближается, то наоборот доставляет. Таким образом это что-то навроде рабочей зоны получается.
Закрытие ордеров и установка новых на их место
Прибыльные: когда ордер стал прибыльным на Pips пунктов он закрывается. Если МА указано как положительное значение , то на место закрывшегося ордера выше линии МА ставится отложник бай, а ниже сэлл. Если МА указано как 0, то закрывшийся ордер становится отложником противоположного значения - бай меняется на сэлл, а сэлл на бай
Убыточные: происходит частичное или полное закрытие убыточного ордера исходя из расчета , который будет приведен далее. Величина этого закрытия можеть быть разной. Но в любом случае менее чем 0,01 не должно быть т.е. округлять закрытие в большую сторону до 0,01 лота. Если по расчету надо закрыть больше лотов чем убыточный ордер, значит остаток надо потратить на частичное/полное закрытие следующего убыточного ордера
Какие убыточные ордера закрывать
Необходимо произвести сравнение финансового результата суммы всех отрытых ордеров бай и отдельно сэлл. Там где сумма фин результата хуже, те ордера признаем как самые убыточные и берем самый дальний ордер по пунктам от текущей цены. Производим частичное или полное его закрытие и далее следующий за ним.
расчет размера закрытия убыточного ордера
Prof - какой % от Pips взять в прибыль, например 60. если Pips 100 , а Lot 1, то выходит при пятизнаке прибыль составит 100 юсд. 100 юсд * 0,6 = 60. 60 юсд откладываем в прибыль. Остаток 40 юсд уходит на частичное/полное закрытие убыточного ордера/ордеров, это самый дальний ордер на самой убыточной стороне BUY/SELL
Определение размера торгуемого лота
Lot - расчет минимального лота для торговли, указывается в % от баланса. Расчет производится не один раз во время запуска робота, а постоянно.
Изменение лота в зависимости от просадки
Необходимо произвести расчет финансового результата суммы всех отрытых ордеров бай и отдельно сэлл. и по каждой стороне сетки (бай/сэлл) отдельное увеличение лота.
% просадки - определяется при каком шаге по просадке увеличивать лот. Например 0,25. Это означает, что все ордера , например, Бай при сумме их убытков каждый раз меняем когда минус становится 0,25 % и кратно по 0,25 т.е 0,5 0,75 1,0 и тд
% увеличения лота - на сколько % увеличивать лотность убыточной стороны. Например 10%. Как только сторона , например, Бай стала убыточной на 0,25 % это означает что все отложники Бай надо увеличить на 10% размер стандартного торгуемого лота. Как только убыток по Бай станет 0,5% это значит , что можно увеличить лот снова на 10% , итого будет уже увеличение стандартного лота на 20%
Прогноз убытков и установка разных лотов в отложников заранее
Представим что в параметре Orders указано много ордеров, например, 100. Если сделать кол-во отложников очень много , то по их лотам должно быть 2 варианта, исходя из того что мы увеличиваем или уменьшаем лоты отложников в зависимости от размера убытков. 1 вариант. от первого отложника лотность начинает расти, например, до середины и далее следует спад. В этом примере до середины происходит увеличение лотов отложников за счет того что приходится перекрывать довольно много на убыточной стороне ордеров, следовательно начиная с середины всех отложников ситуация выправляется и убытки начали снижаться за счет того что получится закрыть много убыточных оредров и отложники пора начинать ставить с каждым меньше и меньше. 2. от первого отложника лотность начинает спадать. Такой вариант бывает когда по первому сценарию на середине где должен был начаться спад лотности отложников, произошел откат и далее снова котировки пошли прежним направлением, но в этот раз на обратной стороне перекрывать уже надо меньше и возможно уже по расчету будет получаться , что с каждым новым открытым отложником убытки начнут снижаться, а следовательно первый внутренний отложник будет самый большой , а далее с каждым меньше и меньше.
Момент для пересчета прогноза убытков
В момент закрытия прибыльного ордера происходит пересчет лотности отложников на противоположной стороне. то есть если закрылся бай значит пересчитываем лотность всех отложников сэлл. Для изменения лота отложника они не удаляются и ставятся новые, а модифицируются, именно по этой причине выбран МТ5. Если получилось так , что цена слишком близко и модифицировать не получилось, значит надо пробовать другие и к задаче с ошибкой не возвращаться.
Доставлять отложники между открытыми ордерами
Доставлять. Функция при которой между ордерами в сетке доставляется 1 отложник. Представим , что отрытых реальных ордеров получилось очень много и изменение лота начинается только в новых отложниках, которые идут очень далеко после большого кол-ва открытых ордеров. В таком случае между двумя открытыми ордерами можно поставить отложник с целью начать увеличивать лотность внутри сетки. Допустим, что Step указан как 100. Ордер , который надо доставить он устанавливается в середину т.е. в 50 пунктов и он может быть только 1. Всегда в середине между основными ордерами в сетке может быть не более 1 ордера , который доставили. Например, открытые открытые ордеры имеют лотность 2,04 а по расчету убытков лотность уже можно ставить 2,5 это означает что между 2,04 можно поставить отложник 0,46 (=2,5-2,04). Если новая лотность отложников ниже чем открытые ордера значит доставлять нечего. Ордер, который доставляется не участвует в построение сетки т.е. шаг сетки не должен сбиться и начать высчитывать от этого "доставочного" ордера, построение сетки игнорирует такие ордера. Доставочный отложник также модифицирует свою лотность когда на обратной стороне закрылся прибыльный ордер.
На дисплее во время торговли
Капитал: Баланс
Профит: текущий результат по открытым позициям в %
Lot: минимальный лот для трейдинга.
LotBuy: текущее значение для новых ордеров бай.
LotSell: текущее значение для новых ордеров сэлл.
BUY: текущий фин результат по всем открытым позициям BUY в %
SELL: текущий фин результат по всем открытым позициям SELL в %
Prof: текущий % который уходит в прибыль, о нем более подробно есть ниже. При срабатывание Attention становится 0
параметры настройки:
Step - шаг в сетке в пунктах.
Orders - кол-во отложников от текущей цены. В момент работы динамично меняется, если цена уходит , то отложники удаляются, если цена приближается, то наоборот доставляет. Таким образом это что-то навроде рабочей зоны получается
Pips - при достижение какого профита в пунктах, прибыльный ордер закрывается.
Lot - расчет минимального лота для торговли, указывается в % от баланса. Расчет производится не один раз во время запуска робота, а постоянно.
Prof - какой % от Pips взять в прибыль, остаток идет на перекрытие дальнего убыточного ордера в наиболее убыточной стороне сетки. например prof указано как 60%. если Pips 100 , а Lot 1, то выходит при пятизнаке прибыль составит 100 юсд. 100 юсд * 0,6 = 60. 60 юсд откладываем в прибыль. Остаток 40 юсд уходит на частичное/полное закрытие убыточного ордера/ордеров, это самый дальний ордер на самой убыточной стороне BUY/SELL. убыточная сторона определяется наихудшим фин результатом суммы всех ордеров одной направленности Бай или Сэлл, данные подсчеты выводятся на дисплей.
Attention - При достижение просадки в % по портфелю, временная установка параметра Prof на значение 0. После того , когда просадка в % стала меньше чем параметр Attention вернуться к стандартному заданному в настройках параметру Prof
StartTral - при достижение % прибыли включить трал
Tral - какой % прибыли тралить, например 30, при снижение прибыли на 30% закрыть всю сетку
MA - скользящая средняя, период. SimpleClose. Если указано 0, то закрывшийся прибыльный ордер переворачивается в противоположный отложник. Был сэлл стал бай и наоборот. Если МА не 0 , то ниже линии МА ставится сэлл, выше бай. Линия МА динамична поэтому надо это тоже учитывать
% просадки - определяется при каком шаге по просадке увеличивать лот. Например 0,25. Это означает, что все ордера Бай при их изменение фин результата 0,25 % и выше увеличивают или уменьшают лотность отложников
% увеличения лота - на сколько % увеличивать лотность убыточной стороны. Например 10%. Как только сторона Бай стала убыточной на 0,25 % это означает что все отложники Бай надо можно ставить увеличить на 10%. Как только убыток по Бай станет 0,5% это значит , что можно увеличить лот снова на 10%
Доставлять - Да/нет. надо ли доставлять отложник между открытыми ордерами , если новая лотность уже выше чем у этих открытых ордеров
Дополнительная информация:
Код нужно комментировать, чтобы потом было проще разобраться что и как там написано. Сам алгоритм стараться делать наиболее простым и чем более запутанный будет код и придется делать советнику какие-то пересчеты, тем более тормознутным он получится. Также надо удалять все объекты с графика каждый час