Главная / IQ Robots / Создание торгового IQ робота. Индикатор RSI
0 389

Создание торгового IQ робота. Индикатор RSI

Официальный сайт IQ Robots

Создадим робота, который будет торговать на основании данных, поступающих с индикатора RSI. Робот будет искать моменты, когда индикатор находится в зоне перекупленности или перепроданности в течение последних трех свечей. И при этом последнее значение индикатора – начало движения в обратную сторону.

Создадим нашего робота, нажав на кнопку «Создать нового робота». Вводим название робота и нажимаем «Создать».

Здесь есть уже два начальных блока «ONCANDLE» и«ONTICK». Нам нужен блок «ONCANDLE», так как наш робот будет использовать свечи для формирования сигналов и открытия сделок. Свечи приходят всех периодов, поэтому необходимо отфильтровать свечи только нужного нам периода. Это делается с помощью блока Filter Candle, который находится в разделе «STRATEGIES» – «Standard blocks» и называется «Candlestick Filter». Добавляем его в поле конструкторы и устанавливаем связь между блоками. В настройках устанавливаем период «1 минута» и делаем этот параметр глобальным.

Затем добавляем блок индикатора RSI. Устанавливаем связь между блоками. В параметрах индикатора значение оставляем по умолчанию равное 12 и тоже делаем этот параметр глобальным.

Далее с помощью блока «TRANSFORM» получаем последние три значения индикатора, которые нам требуются, для того чтобы задать условие формирования сигналов для совершения сделок. Устанавливаем связь между блоками и в параметрах через запятую указываем, какие значения индикатора нам нужны – 1, 2 и 3-ее.

Здесь добавляем два блока «CONST», с помощью которых заданием уровни перекупленности и перепроданности для индикатора RSI. Тип данных этих параметров будет вещественное число, а значение, соответственно, 70 и 30.

Делаем эти параметры глобальными.

Теперь для того, чтобы проверить условия для формирования сигналов, нам нужно добавить по три блока «IF» для каждого сигнала. С их помощью мы проверим, где была линия индикатора в течение последних трех свечей – выше или ниже уровня перекупленности или перепроданности.

И еще один блок «IF» для того, чтобы проверить, изменилось ли направление линии индикатора. Итого добавляем 7 блоков «IF».

Для того, чтобы в блоке «IF»проверить два входных значения, необходимо добавить второй коннектор входа. Далее проверяем, была ли линия индикатора выше уровня перекупленности. Проверяем последнее, предпоследнее и третье значение индикатора.

Затем проверяем, изменилось ли направление движения индикатора. И аналогично проверяем, была ли линия индикатора ниже уровня перепроданности.

Теперь нужно проверить, что все условия выполнены. Делаем это с помощью Блока «DataValidation». В параметрах блока указываем значение «4». Это значит, что мы будем проверять четыре условия и устанавливаем соответствующие связи из блоков «IF».

Последние три значения индикатора больше уровня перекупленности, и текущее значение индикатора меньше предыдущего. Аналогично для второго сигнала – текущее значение должно стать больше предыдущего, а три последних значения меньше уровня перепроданности.

Теперь сделаем возможность задавать время экспирации вручную изменять этот параметр извне. Для этого добавляем еще один блок «CONST», в котором задаем соответствующий индекс экспирации.

В параметрах выбираем тип данных «integer», значение устанавливаем равным «1» и делаем этот параметр глобальным.

С помощью блоков «CREATESIGNAL» формируем сигналы выше и ниже. Устанавливаем связи между блоками «ISSET» и «CREATESIGNAL». Для первого блока сигнал ниже, для второго – сигнал выше. При этом в параметре «время экспирации» делаем активной кнопку «добавить входной коннектор». После этого блока появляется еще один входной коннектор, в который мы положим значение из блока «CONST»,соответствующему нашему времени экспирации.

Объединяем сигналы в одну ветку с помощью блока «Union», который называется «Data Integration». На выходе отдает то, что к нему пришло хотя бы на один из коннекторов. Если данные на оба входных коннекторов пришли одновременно, то отдает с первого. Так как мы решили, что будем использовать стратегию Мартингейла, то добавляем этот блок, который находится в разделе «STRATEGIES» — «Standard blocks».

Устанавливаем связь и в параметрах блока выставляем значение «10». Этот параметр задает, на сколько прибыли последней сделки перекроют убыток предыдущих неудачных сделок.

Добавим еще один блок, который позволит роботу открывать сделки, только когда процент доходности по активам больше определенного значения. Например, 80%. Этот блок находится в разделе «STRATEGIES» — «Filters»и называется «Minimum Profit Percentage».

И последний шаг для создания робота – это добавление блока, который будет открывать сделку. Он находится в разделе «TOOLS» — «Trading» и называется «Opena Position».

Теперь сохраняем робота, нажав на кнопку «Сохранить» в левом верхнем углу. Далее тестируем робота на различных валютных парах и с различными параметрами. Выбираем самый оптимальный и прибыльный вариант и запускаем.