Spezifikation
От вас жду лишь качественного программирования и тестирования готового робота перед передачей мне. Тестирование занимает время, но, у меня оно тоже ограничено, и, завершение задания может затянуться, если львиную долю тестов буду делать я. В наших с вами интересах завершить задание как можно быстрее.
Вы получите свой гонорар, я возможность продолжить исследование рынка. Если качество вашей работы меня на 100% устроит, будем работать дальше, в планах много интересных задач.
1. ОБЩИЕ ТРЕБОВАНИЯ.
1.1. Робот для MT5 JUST2TRADE. Робот должен работать на всех инструментах МТ5 JUST2TRADE.
2. ПРАВИЛА РАБОТЫ РОБОТА.
2.1. Скорость роста/падения цены превысила V пунктов в секунду – вход в рынок. Если падение - то продажа, если рост – то покупка. Вход не осуществляется если значение V превысило VM. Обратите внимание, что сравниваем модули чисел. Т.е. если V=-12, а VM = -8, то входа в рынок (покупки/продажи) нет.
V=(P1-P2)/T (скорость (V) равна разности начальной (P1) и конечной (P2) цены в пунктах деленое на время (T) в секундах). Значения VM, T – задаются в настройках и оптимизируются. Если P1-P2 > 0 – покупка, если P1-P2 < 0 – продажа.
Значение V, VM, T задается в настройках и оптимизируется. Если V=0, расчет скорости роста, падения не производится.
2.2. Значение индикатора ROC (RATE OF CHANGE) встроенного в MT5 JUST2TRADE превысило/упало ниже VI – вход. Если падение, то продажа, если рост – то покупка. Вход не осуществляется если значение VI превысило VIM. Значение VI, VIM задается в настройках и оптимизируется. В случае если VI = 0, программа не обращается к индикатору ROC.
2.3. Спред не более Y пунктов. В случае если спред превышает Y – входа в рынок (покупки/продажи) нет. Y задается в настройках.
2.4. При входе в рынок устанавливается ТП (take profit) и СЛ (stop loss). Задается в настройках и оптимизируется. Для ТП и СЛ задается дельта в пунктах – D. Если D задано, то оптимизируется только ТП и D. СЛ рассчитывается по формуле ТП+D. D может быть, как положительным, так и отрицательным. Если D=0 то оптимизируется ТП и СЛ.
Так же, задается ТП и DIV – если DIV задано – оптимизируется только ТП и DIV. СЛ рассчитывается по формуле ТП/DIV. DIV может быть, как больше, так и меньше единицы.
Если DIV=0 то оптимизируется ТП и СЛ. Защиту от неправильного ввода этих параметров делать не обязательно. Как будет работать программа при вводе значений обоих параметров – не критично. Конечно, нужно предусмотреть округление ТП до целого при расчете ТП/DIV.
2.5. Время торговли с ЧЧ.ММ по ЧЧ1.ММ1 Время должно оптимизироваться.
2.6. Исключить даты (указанные даты будут пропущены (ордера не будут выставляться) при оптимизации/работе робота) – вводится из EXCEL файла. В случае отсутствия файла даты не исключаются, робот работает без этого файла, однократно выводится сообщение – «нет файла с датами». В случае некорректной даты – дата не исключается из торговли робота, однократно выводится «некорректная дата» и текст даты.
2.7. Если волатильность по индикатору Chaikin Volatility ниже VOLMAX и выше VOLMIN – вход. Это условие работает при параметре REV =1.
При параметре REV =2 – вход (покупка/продажа) – только если волатильность ниже VOLMIN. При параметре REV = 0 – проверка волатильности не осуществляется. К индикатору Chaikin Volatility программа не обращается.
2.8. При заданном параметре TRACE =1 – в EXCEL файл записываются дата, время сделки, ТП и СЛ, лонг/шорт. При убыточной сделке записывается число пунктов, которые рынок прошел, в сторону ТП от цены сделки. При прибыльной сделке записывается число пунктов, которые рынок прошел в сторону СЛ. При заданном параметре TRACE = 0 – данные не записываются. Программа (робот) должна работать таким образом, чтобы к данная часть кода не влияла на скорость оптимизации при параметре TRACE = 0 в режиме оптимизации.
2.9. Робот должен работать на всех таймфреймах и на всех инструментах JUST2TRADE.
2.10. Программа должна быть защищена от неисполнения ордера. (По-моему, есть какие-то встроенные операторы языка MQL5, которые сами проверяют исполнен ли ордер и повторяют постановку несколько раз если он не исполнен.)
2.11. Если считаете нужным что-то добавить для нормальной торговли и работы программы + оптимизации – предлагайте. Оплачу отдельно.
ВАЖНО! Программа должна работать таким образом, чтобы не повторять лишние операции при каждом шаге оптимизации. Например, как написано в п. При параметре REV = 0 – проверка волатильности не осуществляется. К индикатору Chaikin Volatility программа не обращается. Имеется в виду, что она должна работать в режиме оптимизации как можно быстрее, т.е. проходить максимум циклов оптимизации за секунду. Предполагается, что будут перебираться миллионы вариантов.
Программа должна работать при выборе в оптимизаторе «каждый тик на основе реальных тиков» и «только цены открытия». Это означает, что при переборе всех тиков, значения V, VM и других переменных, будут рассчитываться для каждого тика, или только для цен открытия.