ОБНОВЛЕНИЕ индикатора Consolidation box Push v2 Нужны три версии практически одно и того же индикатора: 1. для Market mql на терминал мт4-мт5 2. вторая версия с ограничениями на конкретный номер счета и срок, до какого времени будет работать также на два терминала мт4-мт5 Вот пример как реализовано на одном из роботов, в самом начале кода указана дата и номер счета привязки 3. третья версия на мт4 – мт5 с возможностью отправки сообщений в телеграмм (давайте обсуждать как это реализовать) Добавить возможность отправлять Push уведомления на телефон на терминал и на почту Добавляются 3 переменных отвечающих за построение коробок Переименовать Falsebreakout в Microfalsebreakout Candles min/max – переменная отвечает за количество свечей между опорными максимумом или минимумом. По умолчанию =1, если установлена 1, то как и в прошлой версии между опорным минимумом и максимумом идет поиск от 1 свечи и более. Если установлено =3, значит между максимумом и минимум >=3 свечей. Candles min b/a – количество свечей до после опорного минимума (candles min before after) – по умолчанию стоит 0, значит работает как в старой версии. Если при построении коробки консолидации опорный минимум стоит первый, то количество свечей смотрится перед ним (before) Если опорный минимум образовался вторым, то смотрим количество свечей после него, если пользователь указал к примеру =3 значит >=3, от 3 свечей и более. Важно, чтобы это количество свечей указанное пользователем находилось в пределах сформированной коробки консолидации. Взаимосвязанная переменная с Rebound. По умолчанию значение «0», это значит работает в обычном режиме (как в старой версии). Если значение >0, например candles b/a max= 5 и rebound =50, значит эти 5 свечей отскакивали на 50% от опорного максимума. Еще один пример, в котором опорный максимум построен вторым candles b/a max= 3 rebound =70 Candles max b/a – принцип тот же как и у предыдущей переменной. Если опорный максимум построен первый, смотрим количество свечей перед ним. Если опорный максимум построен вторым, тогда смотрим количество свечей после него. Не забываем про переменную Rebound (которая фильтрует отскоки тем же способом, только параметр указан в процентах от высоты коробки), теперь эти переменные являются связанными. Переменные отвечающие за отрисовку целей визуально на графике Procent or pips – procent/pips. «Procent or pips – procent» в этом режиме значения в переменных отвечающих за таргеты это проценты от высоты коробки. «Procent or pips – pips» в этом режиме значения в переменных отвечающих за таргеты указаны в пипсах. Target 1 по умолчанию стоит «0», если пользователь установил значение, например = 20 и режим «Procent or pips = procent», значит индикатор рисует полоску на расстоянии 20% от высоты коробки Когда коробка пробита в какую-то из сторон, в данном примере вверх, таргет нижний удаляется. Длину линий не думаю, что стоит особенно большой, свечки 3 будет достаточно. Target 1 color – выбор цвета линии первого таргета Target 1 color width – выбор ширины линии Target 2 – тот же принцип, логично что он больше значения Target 1 Target 2 color Target 2 color width Target 3 Target 3 color Target 3 color width Значения Target 1 Target 2 Target 3 – это уровни нанесенных горизонтальных отрезков. И тут у меня вопрос, к этим же значениям можно как-то обращаться для вычислений (далее опишу каких именно)? Можно конечно было бы внести их в буферы, но буферы необходимо будет освобождать, например после того как появится новая коробка. В общем далее по ТЗ опишу что именно нужно и обсудим насколько это реализуемо. Возможно нужна какая нибудь библиотека или файл, из которого можно будет брать эти данные, чтобы буферы освобождать. Mode trading – breakout/false breakout по умолчанию включен Mode trading – breakout. В режиме Mode trading – false breakout активируются следующие переменные: time false breakout – количество свечей в ложном пробое, если количество свечей превышает указанное значение пользователем, значит ситуация как ложный пробой отменяется. Данная переменная активна после окончания построения коробки. size false breakout – размер ложного пробоя в процентах от высоты коробки, если =100 значит ложный пробой равен высоте коробки. Данная переменная активна после окончания построения коробки. При режиме mode false breakout – true принцип отображения Target 1 Target 2 Target 3 меняется. Пока ложный пробой существует в рамках обозначенных пользователем (time false breakout и size false breakout) Target 1 Target 2 Target 3 показывают отрезки целеуказания с противоположной стороны. На примере далее ложный пробой был вниз = 100% высоте коробки, таргеты указывали цели в противоположную сторону от ложного пробоя в % от высоты коробки. Сообщения. Сообщения, которые будут отправляться push уведомлениями и на почту поддаются индивидуальной настройке, чтобы можно было менять фразу отправляемого сообщения, а также чтобы фраза отправлялась разными языками. Indent – отступ от коробки параметр указываемый в пипсах, задаваемый пользователем, это параметр нужен для того чтобы рассчитать и написать в сообщении отложенный ордер. Для ордеров Buy Stop – цена установки ордера = верхняя граница коробки + Indent + спред текущий Для ордеров Sell Stop – цена установки ордера = нижняя граница коробки – Indent Для Stop Loss ордера Sell Stop – цена стоп лосс = верхняя граница коробки + Indent + спред текущий Для Stop Loss ордера Buy Stop – цена стоп лосс = нижняя граница коробки - Indent В режиме Mode Trading – breakout, в котором работа просто в пробой коробки консолидации, цели сверху и снизу. До пробоя коробки индикатор (или робот) рисует так Отправляет заготовленное сообщение Simple breakout, после пробоя, удаляет ненужные таргеты, рисует стрелочку в сторону пробоя. Отправляет заготовленное сообщение Simple breakout fact, стрелочка вниз значит сообщение с «SELL |значение из расчетов| STOP LOSS |значение из расчетов| Target: 1|значение из расчетов|, 2|значение из расчетов|, 3|значение из расчетов|», если стрелочка вверх сообщение «BUY» Simple breakout – сообщение которое отправляется при появлении коробки консолидации. Возможно сообщение можно прописать в самом коде, или готов выслушать ваши предложения. По умолчанию напишем следующее: Signal box Ready Sell stop |значение из расчетов| Stop loss |значение из расчетов| Target: 1|значение из расчетов|, 2|значение из расчетов|, 3|значение из расчетов| Buy stop |значение из расчетов| Stop loss |значение из расчетов| Target: 1|значение из расчетов|, 2|значение из расчетов|, 3|значение из расчетов| Simple breakout fact - после того как коробка закончилась (пробой случился) отправляется следующее сообщение (возможно сообщение можно прописать в самом коде, или готов выслушать ваши предложения): BUY |значение из расчетов| STOP LOSS |значение из расчетов| Target: 1|значение из расчетов|, 2|значение из расчетов|, 3|значение из расчетов| Или если пробой вниз SELL |значение из расчетов| STOP LOSS |значение из расчетов| Target: 1|значение из расчетов|, 2|значение из расчетов|, 3|значение из расчетов| Стрелки и Таргеты коробки удаляются, когда превышается параметр DaysBack по отрисовке коробок. Mode Trading – false breakout в этом режиме принцип отображения целей меняется. Пока ложный пробой вписывается в установленные параметры (time false breakout и size false breakout) пользователем, с противоположной стороны коробки консолидации рисуются Target 1 Target 2 Target 3. Если ложный пробой вверх, значит отправляется сообщение: False breakout – заготовленное сообщение для ложных пробоев: Signal box FB Ready Sell stop |значение из расчетов| Stop loss |значение из расчетов| Target: 1|значение из расчетов|, 2|значение из расчетов|, 3|значение из расчетов| Если ложный пробой вниз, значит отправляется сообщение: False breakout – заготовленное сообщение для ложных пробоев: Signal box FB Ready Buy stop |значение из расчетов| Stop loss |значение из расчетов| Target: 1|значение из расчетов|, 2|значение из расчетов|, 3|значение из расчетов| FB breakout fact – сообщение отправляется когда состоялся ложный пробой, который вписывается в параметры (time false breakout и size false breakout), установленные пользователем и заканчивается построение коробки консолидации, при ложном пробитии вниз и при окончании коробки консолидации сообщение: BUY |значение из расчетов| STOP LOSS |значение из расчетов| Target: 1|значение из расчетов|, 2|значение из расчетов|, 3|значение из расчетов| При ложном пробитии вверх – сообщение: SELL |значение из расчетов| STOP LOSS |значение из расчетов| Target: 1|значение из расчетов|, 2|значение из расчетов|, 3|значение из расчетов| ПАНЕЛЬ. В левом верхнем углу при активации индикатора появляется панель: License - active/disable данная переменная есть в панели, только для версии с ограничениями по номеру счета и времени работы. Если время превышено или номер счета не совпадает с указанным то индикатор (робот) не работает, не отображается никакая информация в панели, горит надпись: Если все в порядке горит надпись License – active (active зеленым цветом написан). show panel – true/false показывать или скрывать панель panel color – цвет фона панели Mode Trading – breakout/false breakout показывает на панели в каком режиме установлен индикатор, взято из параметров при выборе режима работы пользователем Mode trading – breakout/false breakout. В самой панели показывается SizeBox – высота последней построенной коробки консолидации High Bo – верхняя граница последней построенной коробки консолидации Low Bo – нижняя граница последней построенной коробки консолидации Statistic breakout Points Breakouts – общее количество пробоев коробок консолидаций которое случилось за DaysBack, считаются пробои коробок консолидаций achived target 1 – достигли первой цели столько то раз/процент отработки ((количество достигнутых первых целей/на общее количество пробоев)*100). Достигли – имеется ввиду цена дошла до линии target 1 achived target 2 – тот же принцип achived target 3 – тот же принцип Время работы индикатора и подачи сигналов: Если возникает сигнал в то время когда стоят ограничения по времени, сигнал не присылается.