Думаю что не очень сложен.
Во вложение ТЗ и и пара картинок пояснений.
Описание советника
Советник следит за количеством открывающимися/открытыми ордерами других советников или ручных. Когда по какому-то отслеживаемому инструменту/магику открыто N ордеров, советник открывает свой ордер в том же направлении с Х лотом и М магиком. Выдает аларм на Емайл при открытии и при закрытии своего ордера.
Параметры
1. Отслеживаемые пары (через разделитель) 0 – все.
2. Отслеживаемые магики (через разделитель) 0 – все.
3. Выбор условия для входа А или Б (см. ниже). 0 отключено.
4. Магик советника.
5. Количество ордеров по отслеживаемому инструменту после которого выдать аларм и открыть свой ордер.
6. Объем открываемой позиции.
7. Период проверки ордеров в миллисекундах. (для уменьшения нагрузки на ПК)
8. Комментарий.
9. Почта для аларма.
10.
Требования к работе.
1. Любой ТФ.
2. Не чувствителен к смене ТФ.
3. Одна копия советника для работы по всем парам (не важна пара на которой висит советник).
4. Подхватывает свои ордера.
5. Гарантированный вход/выход, вне зависимости от проскальзывания и реквот (не важно как изменилась цена главное вход/выход).
6. Не чувствителен к сбоям связи, перезагрузки Терминала. (не откроет снова ордер если уже открыт по данной паре).
7. Комментарии в коде.
Работа советника
Советник постоянно следит (период задан в параметрах) за открытыми позициями других советников или ручных входов, по заданным в параметрах парам и магикам. Когда по какому-то отслеживаемому инструменту открыто N (задается в параметрах) ордеров в одном направлении, то советник открывает свой ордер в том же направлении объемом и магиком заданным в параметрах. При этом высылается аларм на почту, адрес задается в параметрах. При этом цена открытого Nго ордера должна быть выше предыдущих при SELL направлении, и ниже при BUY, если в параметрах выбран вход по условия А или Б. Если нет, то вход произвести с N ордером не зависимо от цены.
При закрытии ВСЕХ отслеживаемых ордеров (корзины орднров др советника) советник закрывает свой, при этом высылается аларм на почту, адрес задается в параметрах.
Запись в логе событий советника о входе/выходе.
Условия входа
1. Вход если открыто N (задается в параметрах) позиций в одном направлении с одинаковым магиком.
Если в параметрах выбран вход по А или Б то проверять цену ордеров по условиям:
2. Не входить если цена позиции N меньше цены предыдущих ордеров при сделках SELL.
3. Не входить если цена позиции N больше цены предыдущих ордеров при сделках BUY.
4. Если был отклонен вход по условиям 2/3, но следующий ордер N+1,2… цена которого не удовлетворяет условиям 2/3, то произвести вход:
a. На N+1,2… открытой позиции. То есть если было открыто уже N ордеров, но не было условий для входа, то мы проверяем условия для входа при открытии следующего ордера.
b. При достижении цены ордера с максимальной ценой при SELL, или минимальной при Buy.
5. Не входить заново если открыт свой ордер. (если вдруг по отлеживаемому инструменту была закрыта позиция и стало N-1, а после опять открыта позиция и стало N, входить НЕ НУЖНО, ждем пока не закрыты ВСЕ позиции по данному инструменту и свой ордер тоже).
6. Не входить заново если открыта позиция N+1,2… , пока не был выполнен выход.
Условия выхода
1. Когда закрылись ВСЕ позиции по отслеживаемому инструменту, то есть остался только свой ордер.
Автор#1
