仕事が完了した
指定
Необходим советник и индикатор для MetaTrader 5. Валюта EUR/USD, GBP/USD, USD/RUR. Глубина истории 2010-2017, таймфрейм М10, М20, М30, Н1.
Индикатор Envelopes: период 60, отклонение 0.2, метод Smoothed, цены Typical Price. Параметры как начальный пример, нужно чтобы каждый параметр можно было изменять в коде, а также создавать оптимальное сочетание параметров при оптимизации на тестере.
Открытие позиций на покупку:
1) Пересечение ценой нижней линии снизу вверх:
а) первый бар пересек нижнюю линию снизу вверх (open1<lower, close1>lower);
б) второй бар полностью сформирован над нижней линией (open2>lower, close2>lower, (даже если тень второго бара заходит за нижнюю линию: low2<lower, на это не обращаем внимания));
в) на открытии третьего бара (open3) - открываем позицию. В индикаторе отображение синей стрелочкой.
2) Пересечение ценой верхней линии снизу вверх:
а) первый бар пересек верхнюю линию снизу вверх (open1<upper, close1>upper);
б) второй бар полностью сформирован над верхней линией (open2>upper, close2>upper, (даже если тень второго бара заходит за верхнюю линию: low2<upper, на это не обращаем внимания))
в) на открытии третьего бара (open3) - открываем позицию. В индикаторе отображение синей стрелочкой.
Открытие позиций на продажу:
1) Пересечение ценой верхней линии сверху вниз:
а) первый бар пересек верхнюю линию сверху вниз (open1>upper, close1<upper);
б) второй бар полностью сформирован под верхней линией (open2<upper, close2<upper, (даже если тень второго бара заходит за верхнюю линию: high>upper, на это не обращаем внимания));
в) на открытии третьего бара (open3) - открываем позицию. В индикаторе отображение красной стрелочкой.
2) Пересечение ценой нижней линии сверху вниз:
а) первый бар пересек нижнюю линию снизу вверх (open1>lower, close1<lower);
б) второй бар полностью сформирован под нижней линией (open2<lower, close2<lower, (даже если тень второго бара заходит за верхнюю линию: high>lower, на это не обращаем внимания))
в) на открытии третьего бара (open3) - открываем позицию. В индикаторе отображение красной стрелочкой.
Вход в рынок осуществляется с фиксированным уровнем риска, 2% от депозита (изменяемый параметр при необходимости)
Позиция открытия фиксированная, добавление к открытой и убавление от открытой части позиции не предусмотрено.
StopLoss и TakeProfit - фиксированные (изменяемый параметр при необходимости), значения указываются только в пунктах котировок: текущая цена EUR/USD - 1.17090, StopLoss - 50 пунктов, сработает при цене 1.17040; текущая цена USD/RUR - 63 200, StopLoss - 50 пунктов, сработает при цене 63 150. Проценты не используем. Уровни рассчитываются от цены открытия позиции (open3). Значение 50.
Take Profit trailing и Stop Loss trailing - также фиксированные (изменяемый параметр при необходимости) и указываются в пунктах аналогично StopLoss и TakeProfit. Значение 50.
Перемещение SL разрешено только в сторону прибыли позиции - вверх для бай и вниз для селл.
Трейлинг-стоп должен быть отключаемым.
Параметры: ThresholdOpen, ThresholdClose, Shift, Weight, m_limit_in, m_limit_out, width=upper-lower, PriceLevel - не используем.
Используем: Expiration of pending orders (значение 4, изменяемый параметр при необходимости).
Закрытие осуществляется при срабатывании StopLoss, Stop Loss trailing и противоположного сигнала. Если есть открытая позиция, и появляется противоположный сигнал, позиция закрывается и открывается новая - в противоположном направлении.
Расчет лота для новой позиции должен производиться после закрытия существующей позиции.
Разное:
Время работы индикатора и советника. В дальнейшем планирую перенос на Qiuk (пока не знаю как это сделать, возможно с помощью языка Lua), будет советник в МТ5 и в Quik. Также планирую VPS на МТ5 и Quik. Подскажите, какое лучше поставить время работы?
В журнале отображается история операций (покупки/продажи).
При возникновении любых ошибок, должно появиться окно с описанием ошибки.
Возможность установить несколько копий одного и того же советника, или разных по параметрам советников на разные инструменты одного терминала.
На один инструмент используем один советник.
Любые позиции вручную игнорируются, советник не принимает сигналы на открытие, закрытие ручной торговли. При отключении советника последняя открытая позиция автоматически реализуется по текущим ценам, либо в плюс, либо в минус.
При запуске на реальном счете советник должен создать на графике кнопку, разрешающую торговлю. Работа должна начинаться только после того, как пользователь на нее нажмет.
Если из-за позиций, открытых двумя советниками, не хватит маржи для открытия позиции в третьем советнике, пропускаем сигнал, не открываем сигнал третьего советника.
Если в трех советниках открыто по одной позиции, и возникает сообщение о закрытии части позиции из-за недостатка средств, позиция полностью закрывается на последнем открытом советнике.