Работа завершена
Техническое задание
Необходимо создать мультивалютного торгового робота на MetaTrader5, работающего на пополняемой сетке отложенных ордеров на валютных парах на любых таймфреймах. При открытии каждого отложенного ордера должна создаваться новая серия принадлежащих ему «внутренних» отложенных ордеров, создаваемых последовательно при открытии очередного из отложенных ордеров внутри этой серии.
1. В момент запуска советника устанавливается сетка отложенных ордеров SellStop и BuyStop с шагом h в двух направлениях от текущей цены;
Количество отложенных ордеров, созданных сразу после запуска советника равно 2*N ,
Это ордеры первого уровня.
2. При пересечении i-й линии сетки снизу-вверх создаются дополнительные отложенные ордера первого уровня:
2.1. BuyStop на уровне сетки (i+N), если на i-й линии сетки еще нет созданного отложенного ордера BuyStop;
2.2. SellStop на уровне нижней соседней линии сетки (i-1) при условии,
если на i-й линии сетки еще нет открытого ордера SellStop
или если общее количество открытых ордеров первого уровня Sell из ранее созданных ордеров SellStop не превышает заранее заданный лимит L по количеству ордеров первого уровня, открытых в одну сторону.
3. При пересечении i-й линии сетки сверху-вниз создаются дополнительные отложенные ордера первого уровня с условиями, симметричными условиям из предыдущего пункта:
3.1. SellStop на уровне сетки (i-N);
3.2. BuyStop на уровне верхней соседней линии сетки (i+1)
4. При срабатывании любого i-го отложенного ордера BuyStop, то есть в момент пересечения текущей ценой ближайшей к ней линии сетки и открытии первого ордера Buy, создается второй отложенный ордер SellStop в противоположную сторону от только что открытого ордера Buy на расстоянии c вниз.
5. И, наоборот, при срабатывании отложенного ордера SellStop и открытия ордера Sell открывается второй отложенный ордер BuyStop в противоположную сторону на расстоянии c вверх от только что открытого первого ордера.
6. С момента срабатывания отложенного ордера первого уровня и открытия ордера Buy или Sell начинает создаваться i-я серия отложенных ордеров, принадлежащая к этому ордеру и состоящая из заранее заданного максимального количества ордеров K.
Ордера, из которых состоят эти серии, относятся к ордерам второго уровня.
7. Условиями закрытия внутренних ордеров второго уровня внутри i-й серии являются их TP, SL, а также открытие некоторых из последующих (т.е. с большим значением k) ордеров второго уровня внутри этой серии.
8. Для каждой i-й серии ордеров второго уровня условия создания, удаления, открытия и закрытия представлены в Таблице в подробном ТЗ
9. Все ордера могут быть сразу закрыты при выполнении команды (кнопка на окне управления) «Закрыть все сразу»
10. При выполнении команды (кнопка на окне управления) «Остановить создание новых ордеров» новые отложенные ордера не создаются и удаляются все ранее созданные отложенные ордера, при этом все действующие открытые ордера остаются
11. Любой созданный ордер (открытый или отложенный) может быть закрыт индивидуально (вручную) или у него могут быть изменены его параметры (TP, SL) в окне ордера вручную.
12. Все ордера закрываются при достижении заданного уровня прибыли A в %% от начального депозита.
13. Перед запуском советника в Окне управления задаются значения внешних параметров :
13.1. идентификатор magic.
13.2. h - шаг сетки отложенных ордеров в момент запуска советника и при создании новых отложенных ордеров, в пунктах.
13.3. N - количество отложенных ордеров, созданных сразу после запуска советника, в каждую сторону от текущей цены в момент запуска.
13.4. L - лимит по количеству ордеров первого уровня, открытых в одну сторону.
13.5. A - уровень прибыли при работе советника от начального депозита в %, при достижении которого все ордера закрываются.
13.6. {file-1} - ссылка на таблицу (excel-файл), содержащий матрицу параметров отложенных ордеров любой i-й серии.
Подробнее в ТЗ.