Spezifikation
P.S. Ребята, вы откуда такие ценники берете??!! 1500 - 3000 USD за пару дней работы - это круто! Я пока ждал нормального предложения по цене, то уже сам почти все сделал за пару дней, учитывая то, что я с МКЛ на уровне поиска ответов в гугле. А знающему человеку, тут максимум 2 дня работы. Ндяя...
Здравствуйте.
Нужен прототип программы на C# (WPF или WinForms) для ручного тестирования стратегий. В конечном итоге должно получиться что-то очень похожее на существующий Simple Forex Tester, но с очень ограниченным функционалом. Видео по Simple FX можно посмотреть тут https://www.youtube.com/watch?v=e2Ys4XBHUY8. Это не должен быть на 100% законченный тестер со всеми необходимыми возможностями, а лишь заготовка-прототип. Обязательно должна быть реализована связка программы с МТ4. Например, если мы в нашей программе нажали «Открыть ордер», то в тестере МТ4 на графике должен появится значок «стрелка вниз или вверх», при этом реальную сделку в МТ4 открывать не нужно. Так же в обратную сторону – при появлении на графике новой свечи, наша программа должна получить все данные по этой свече (мин, макс и т.д.). Для лучшего понимая задания, прошу вас посмотреть видео по Simple FX (ссылка выше). Теперь подробнее.
1. Язык C#, проект WPF или WinForms
2. Запуск программы. Пишем советник. Открываем в МТ4 окно «Тестер стратегий» (Меню-Вид-Тестер стратегий). Выбираем наш советник. Нажимает «Старт». В этот момент советник должен запустить нашу программу.
3. Интерфейс программы. Не стоит тратить время на разные красивости, нужна лишь заготовка с необходимым функционалом.
1) Скорость. Ползунок. При изменении значения ползунка, в МТ4 должна меняться скорость появления новых свечей. Там есть аналогичный ползунок «Визуализация»
2) Предыдущая свеча. Кнопка. Если это вообще возможно, то при нажатии ее на графике в МТ4 должна убраться последняя свеча. Если это невозможно, то давайте обсудим.
3) Старт / пауза. Кнопка. При нажатии ее в МТ4 должен останавливаться или продолжаться процесс появления новых свечей (эта статья должна помочь https://www.mql5.com/ru/articles/1427)
4) Следующая свеча. Кнопка. При нажатии рисуем следующую свечу на графике.
5) Последняя свеча. Инфо поле, где показываем данные по последней свече. Как только на графике появилась новая свеча, то данные должны обновиться.
6) Купить. Кнопка. При нажатии на графике на последней свече должен появится значок «Стрелка-вверх». Реальная покупка со счета не должна происходить. Так же должен сделаться скриншот экрана и сохраниться под любым именем.
7) Продать. Кнопка. Аналогично, что и Купить. Рисуем стрелку вниз на графике, делаем скриншот, больше никаких действий не требуется.
4. При запуске программы на графике должны нарисоваться один значок «Стрелка-вверх» на любой свече (например предпоследней) и трендовая линия в произвольном месте.
5. При закрытии программы все имеющиеся значки, трендовые линии и прочие элементы должны сохраниться в файл, чтобы при последующем запуске программы можно было все элементы расставить на место, где они были в последний раз. Может быть просто сохранять шаблон графика?
6. При закрытии программы в любой текстовый файл должна записаться информация о текущих настройках тестера стратегий: валютная пара и таймфрем.
7. Написать индикатор, который бы при каждой новой свече выводил информацию из текстового файла в правый угол графика. Алгоритм планируется примерно такой: появляется новая свеча, наш советник (пункт 2) отправляет информацию в программу, программа все обсчитывает, сохраняет новые данные в файл, индикатор берет новые данные из файла и отображает в правой части графика. Полностью отлаживать этот механизм не нужно, а нужно лишь, чтобы при каждой новой свече индикатор делал задержку 500 мс и потом читал обновленные данные из файла и отображал. Если есть другой вариант как это решить, то, пожалуйста, давайте обсудим. Выглядит примерно так:
Много параметров выводить не нужно, достаточно одного любого с данными из файла. Пусть в файле ничего не изменяется, не важно, главное, чтобы он брал из него данные после каждой свечи с задержкой 500 мс, этого времени должно хватить, чтобы записать в него новые данные.
Потом еще будут доработки уже по отдельному договору, а пока же нужно сделать минимум.