Разработать простой сеточный робот для Metatader 5
Разработка сеточного робота для Metatrader 5
Робот должен работать на платформе metatrader 5 (формат .ex5) в режимах хеджирования и неттинга.
ТЗ для работы в режиме неттинга, по сути в режиме хеджирования все тоже самое только нужно добавлять takeprofit в каждый ордер при открытии.
Цель робота: открытие лимитных ордеров на покупку и продажу, контроль ордеров.
- Ввод параметров работы сеточного робота
- Выбираем тикер для работы, по умолчанию EURUSD
- Выбираем период проверки ордеров робота, по умолчанию М1
- Количество ордеров в сетке (GridOrderAmount), по умолчанию 100 (50 на покупку, 50 на продажу)
- Объем ордера (GridOrderVol), по умолчанию 0,01 лот (1000 долларов)
- Объем покупки/продажи актива на старте (EnterOrderVol), по умолчанию 0
- Цена одного деления сетки GridPrice, по умолчанию 0,001 EUR, или 0,1% от стоимости
- Начало работы:
- Покупаем или продаем по рыночной цене количество лотов - OrderVol
- Расставляем лимитные ордера:
- Контроль:
- Раз в минуту проверяем есть ли исполненные ордера.
На покупку - количество ордеров – GridAmount/2, цена ордеров: Текущая цена – GridPrice
Пример работы
Старт при цене в 10 у.е.
Расставляем лимитные ордера, предположим было введено – GridOrderAmount = 10:
BuyLimit по цене 5, 6, 7, 8, 9
SellLimit по цене 11, 12, 13, 14, 15
Вариант 1:
Через минуту цена ушла на 11,5 -> ордер на продажу по 11 исполнился
Создаем новый ордер на покупку за 10
Вариант 2:
Через минуту проверили – цена сходила на 5,5 и вернулась на 9,5 – ордера на покупку по 6, 7, 8, 9 исполнились
Создаем ордер на продажу по рыночной цене (9,5) объемом 3*OrderVol и создаем лимитные ордера на покупку по 6, 7, 8 и ордер на продажу по 11.
Фактически при постоянном контроле должно было произойти следующее: покупка по 9 + создание ордера на продажу по 10, покупка по 8 + создание ордера на продажу по 9, покупка по 7 + создание ордера на продажу по 8, покупка по 6 + создание ордера на продажу по 7 и после разворота продажа по 7 + создание ордера на покупку по 6, продажа по 8 + создание ордера на покупку по 7, продажа по 9 + создание ордера на покупку по 8. По итогам должны остаться ордера на покупку 5, 6, 7, 8 и ордера на продажу по 10, 11, 12, 13, 14, 15.Робот должен проходить внутреннее тестирование MT5 на предмет подбора параметров.