Платформа МТ5. Советник по RSI+RSI (ADX). Требуется написать советник, открывающий сделки по индикаторам RSI. Инструмент – тот, к которому применен советник. Рабочий тайм фрейм – 1 минута. Котировки пятизначные (пять знаков после запятой). Объем сделки – по мартингейлу начиная с минимальной 0,01 (можно поменять в настройках). Предусмотреть 10 ступеней по Мартингейлу. Торговля двухсторонняя (как на повышение, так и на понижение котировки). Предусмотреть изменение времени активной работы (открытия сделок) советника. Предусмотреть возможность как двухсторонней торговли (сделки открываются как в SELL так и в BUY, но со своим счетчиком по мартингейлу), так и односторонней (сделки открываются только в одну сторону, куда уже открыты текущие сделки, противоположные сигналы игнорируются). Предусмотреть возможность отключения открытия сделок роботом, при этом терминал должен формировать push-уведомления по факту появления сигналов на открытие сделок. Индикаторы: – К ценовому графику применен RSI с периодом 14 и уровнями 70 и 30 (период и уровни можно менять в настройках). – К ценовому графику применен ADX (+DI/-DI), период 14 (можно поменять в настройках); – К индикатору ADX применен индикатор RSI с периодом 14 и с уровнем 70 (период и уровень можно менять в настройках). Далее данный индикатор именуется – RSI(ADX). Алгоритм работы: 1. Фиксируется факт одновременного нахождения индикаторов RSI и RSI(ADX) в зонах выше 70 и ниже 30 (для RSI(ADX) контролируется только уровень 70) в следующих комбинациях: – RSI выше 70, RSI(ADX) выше 70; – RSI ниже 30, RSI(ADX) выше 70. Порядок захода за указанные уровни – не имеет значения. Фиксируется только факт одновременного нахождения индикаторов в этих зонах. 2. Открытие сделок происходит после выполнения п.1, когда оба индикатора пересекут уровни в обратном направлении: – RSI пересек уровень 70 сверху вниз, RSI(ADX) пересек уровень 70 сверху вниз – открывается сделка SELL; – RSI пересек уровень 30 снизу вверх, RSI(ADX) пересек уровень 70 сверху вниз – открывается сделка BUY. Порядок пересечения не имеет значения. Открытие – по факту фиксации обоих индикаторов в зоне между 30 и 70 одновременно (для RSI(ADX) в зоне ниже 70). 3. Фиксация перехода через уровни – по факту закрытия текущей свечи (в момент открытия следующей). Открытие сделок: 1. Открытие сделок происходит при каждом появлении торговых сигналов, указанных в алгоритме работы. 2. Сделки открытые вручную (не роботом) не учитываются ни при открытии, ни при закрытии сделок. 3. Объем каждой последующей сделки определяется путем умножения объема последней активной сделки, открытой роботом, по выбранному направлению на коэффициент. При отсутствии активных сделок открывается первая ступень. 4. Учитываются только активные сделки открытые роботом. Если, например, советником было установлено 5 ступеней в SELL, далее вручную закрыты последние две ступени (4 и 5), то при следующем соблюдении условий для SELL, должна открываться 4-я ступень (не зависимо от того есть ли активные сделки, установленные вручную). 5. При включенной опции «двухсторонняя торговля» сделки открываются как на повышение, так и на понижение. Для каждого направления – свой счетчик по мартингейлу. Например, если в SELL открыто 5 ступеней, а в BUY одна, то при появлении сигнала в SELL должна открыться 6-я ступень, а при появлении сигнала в BUY должна открыться 2-я ступень. 6. При отключенной опции «двухсторонняя торговля», перед открытием очередной сделки проверяется направление активных ступеней, открытых роботом: – при отсутствии активных ступеней – сделка может быть открыта в любом направлении минимальным лотом (в зависимости от появившегося сигнала); – при наличии активных сделок BUY (открытых роботом) – сделки открываются только по сигналам BUY, сигналы SELL – игнорируются; – при наличии активных сделок SELL (открытых роботом) – сделки открываются только по сигналам SELL, сигналы BUY игнорируются. 7. При отсутствии средств на счете для открытия очередной ступени – все сигналы игнорируются до появления возможности открытия (закрылись все сделки по направлению, либо закрыты вручную одна или несколько последних ступеней, тогда на счете высвобождаются средства и появляется возможность открытия последующих ступеней по отношению к еще активным ступеням). Для возможности открытия ступеней принять во внимание трехкратную маржу, т.е. сделки могут открываться с учетом свободной маржи помноженной на 3 (параметр вывести в настройки). 8. Перед началом открытия первой ступени должен фиксироваться размер депозита, по которому впоследствии рассчитывается закрытие сделок. Закрытие сделок: 1. TP и SL для каждой отдельной сделки не устанавливается. 2. SL общий для всех активных сделок по одному направлению при суммарном убытке, от активных сделок в данном направлении, превышающем 10 % от депозита (задается настройками). В расчет принимается размер депозита на момент открытия первой сделки в закрываемом направлении (для расчета здесь берется размер депозита без учета маржи – только то, что было на депозите к моменту открытия первой сделки). 3. TP общий для всех активных сделок по одному направлению при суммарной прибыли, от активных сделок в данном направлении, выше 30% от объема активных сделок (задается настройками). Например – открыто 5 ступеней BUY с коэффициентом по мартингейлу 2 (0,01/ 0,02/0,04/0,08/0,16 лота), это соответствует объему открытых сделок 10, 20, 40, 80, 160 $, т.е. суммарно 310$. Таким образом, общий TP должен сработать для всех пяти ступеней BUY при достижении суммарного профита по ним в 93$. Переменные: – время работы; – одновременная торговля (вверх+вниз) – да/нет; – автоматическое открытие сделок – да/нет; – начальный лот – от 0,01 лота; – количество ступеней по мартингейлу; – коэффициент по мартингейлу; – период ADX; – период RSI (для обоих индикаторов в отдельности); – уровни RSI верхний, нижний (по умолчанию 70 и 30 для RSI по цене, 70 для RSI по ADX); –уровень маржи для открытия сделок; – SL (% от объема депозита); – TP (% от суммарного объема активных сделок); –иные, не предусмотренные здесь переменные, требующиеся для корректной настройки (типа числа мэджик итд итп).