MobiusTrader7: Торговые роботы (Достоинства и недостастатки)

Тема в разделе "Новости компании. Технические и финансовые вопросы", создана пользователем Interesting, 11 апр 2018.

  1. Interesting

    Interesting Я тут не случайно

    На мой взгляд стоит начать обсуждение использования торговых роботов в данном терминале.
    Интересно мнение тех кто уже использует роботов разработанных специально для данного терминала.
     
  2. Interesting

    Interesting Я тут не случайно

    Столкнулся с такой проблемой

    При работе с версией терминала для PC запускается торговый терминал, из него запускается редактор индикаторов и роботов.
    Все вроде нормально, но если закрыть форму (окно) с редактором она больше не отображается.
    Помогает только перезапуск терминала.

    Не знаю как для веб-терминала, а в версии для PC ожидалось увидеть отдельный тестер стратегий и отдельный редактор.

    0015.FOREXstart-Mobius7-Editor-20180411-1054.png
     
  3. FXstart Admin

    FXstart Admin Administrator Команда форума

    Будем рады любым отзывам по написанию роботов.
     
  4. Interesting

    Interesting Я тут не случайно

    Что касается самого языка и разработки торговых роботов.

    Хотя ранее говорилось про то что язык будет вполне "робастым" (терминалогия от Метаквотов) и функциональным в настоящее время этого не замечается.
    Опишу ряд моментов которые лично мня сильно напрягают:
    1) Язык может быть и хороший, но реализация именно для торговли сильно "плоха" (функционал и возможности именно торговых элементов недостаточно проработаны и очень бедны);
    2) Справочник по языку вообще не о чем. По торговым роботам там ничего полезного найти нет возможности, а то что сделано с точки зрения идикаторов описано очень плохо;
    3) Недостаточно проработаны торговые классы. К примеру нет классов предоставляющих нормальную информацию о торговом окружении (График, торговый счет, брокер и т.д.);
    4) Енумираторы (ENUM) очень бедны, этого недостаточно для создания чего-то стоящего;
    6) Нет примеров индикаторов и торговых роботов написанных профессиональными программистами (речь о примерах от самих разработчиков);
    7) Отсутствуют или очень бедны примеры в описании языка;
    8) Отсутствуют или очень бедны функции работы с историей торгов и статистикой;
    9) Не прописаны или отсутствуют системы контроля ошибок. Даже в описании языка нет прописаных кодов ошибок, о функциях предварительного и пост-контроля и говорить не приходится;
    10) Тестер стратегий так и не реализован по нормальному, а то что реализовано больше походит на пародию (писал об этом в другой теме);
    11) Напрочь отсутствуют или нормально не прописаны средства взаимодействия с WinAPI, OC и файловой системой (в первую очередь это необходимо для реализации именно роботов, а также для разработки "шлюзов" или "копиров" между терминалами);
    12) Зря убрали возможность конвертации роботов из MQL и других языков (возможность хороша, хотя подобные "подарки" сильно раздражали Метаквотов);
    13) Сам редактор кода очень плохо реализован (на мой взгляд простой блокнот намного удобней). Тут либо мучится с тем что есть, либо использовать полноценные редакторы от классических решений. Тут возникает другая проблема - там редакторы возможно и круче, но они не интегрированы с ядром торговой системы.

    Есть и другие моменты, но хоть бы то что выше описал чтуток улучшить.
     
  5. Alex_57

    Alex_57 Местный житель

    Я не Ванга, но думаю, что если это все и будет реализовано, на это уйдут годы.

    Для меня это все будет интересным только после решения проблемы с тормозами. Их просили выродить хотя бы требование к оборудованию, гарантирующее отсутствие тормозов. В ответ тишина. Может требуется восьмиядерный процессор? А может проблема не только на стороне клиента? Жаль я не Ванга.
     
  6. Interesting

    Interesting Я тут не случайно

    По большому счету чтобы уйти от тормозов требуется две вещи:
    1. Реально переработать архитектуру клиентского терминала - как по мне так тут требуется нормально работающий Win32/Win64 терминал + веб-терминал в как вспомогательное решение;
    2. Переработать ядро торгового сервера - тут основа должна быть в модульной структуре с масшабируемой архитектурой.
     
  7. Alex_57

    Alex_57 Местный житель

    Я не программист. Как дилетант решал бы проблему следующим образом. Определился на рынке с производительностью современного бюджетного ноутбука со встроенной графикой. Заложил такую производительность в техническое задание и после окончания разработки заявил о таких требованиях к оборудованию. Далее определился, что с такой производительностью и нагрузкой на процессор 50% или лучше 10% один тик будет обработан, к примеру, за 0,001 секунды. Естественно при определенной нагрузке, например, четыре инструмента, четыре графика, на каждом графике четыре индикатора, советник и скрипт.

    Предположим тормоза происходят только на стороне клиента. И происходит это из-за того, что тики поступают чаще чем успевает их обработать процессор. Что бы от этого уйти нужно передавать тики не чаще чем, как в нашем примере, один раз в 0,001 секунды. Так как на рынке бывают всплески активности и поставщик ликвидности передает дилеру временами большее количество тиков чем один за 0,001 секунды, дилер должен не весь поток транслировать клиенту, а формировать свою тиковую историю, в которой агрегировать в один свой тик все тики поставщика ликвидности, поступающие за 0,001 сек. При этом сохранять и предавать информацию о количестве тиков поставщика ликвидности в одном тике дилера.

    Таким образом, проблема тормозов оборудования, с заявленными требованиями к производительности, будет снята. Но, будет оставаться проблема с более слабым оборудованием. Что бы и ее снять, нужно предусмотреть возможность переключения в настройках терминала обработки поступающей информации каждый тик либо, к примеру, раз в 0,002, или 0,005, или даже 1 секунду, если трейдеру по торговой системе не нужно часто обрабатывать информацию. При этом каждый тик должен содержать всю информацию о баре и последний тик бара должен обрабатываться в обязательном порядке, чтобы не была потеряна заключительная информация о баре.
     
  8. Interesting

    Interesting Я тут не случайно

    Начнем с азов:
    1. Архитектура комплекса подразумевает, что это будет клиент-сервер с большим количеством клиентов работающих в режиме реального времени (речь о о 1000 клиентов и выше работающих одновременно);
    2. Архитектура комплекса предполагает, что это будет торгово-аналитическая система имеющая максимум полезных функций для пользователей;
    3. Архитектура комплекса предполагает, что он будет иметь максимальную надежность при работе в режиме реального времени;
    4. Архитектура комплекса предполагает, что он будет максимально защищен он внешних воздействий;
    5. Архитектура сервера предполагает, что она должна быть модульной (основное ядро + специфические/специализированные модули которые решают разнообразные задачи);
    6. Архитектура серверной части предполагает, что она должна быть маштабируемая (при необходимости можно увеличивать число дополнительных модулей или число серверов работающих в единой системе). Классически это может решаться к примеру разделением серверов на Демо, Реал, Конкурсные и т.д. Есть иные варианты - когда одну задачу обрабатывают несколько серверов, либо когда серверы "страхуют" друг друга.

    Если говорить о системе когда несколько серверов решают одну задачу то мы получаем нечто похожее на систему тестирования в МТ5, либо если хотите, можно вспомнить о системах расппределенных расчетов используемых в проекте SETI.

    Если говорить о системе когда сервера "страхуют" друг-друга мы получим два варианта: простой - когда за работой наблюдают люди и при необходимости переключают все на резервный сервер; сложный - когда система автоматически определяет что с сервером что-то не то и передает выполнение задачи на резервный сервер (по крайне мере она пытается это сделать).

    На счет клиента:
    1) Тут однозначно желательно наличие 64 битной версии, которая будет работать как отдельное приложение (речь я тут веду в основном о версии для PC, хотя скажем для Андройда тоже желательно иметь версию в 64 бита);
    2) Клиентский терминал как отдельное приложение должен быть многопоточным.

    Для непосвященных поясняю - все наши программы реализованы в виде процессов и потоков. Каждая программа имеет как минимум один процесс и один поток в котором и выполняется вся работа. В некоторых программах у процесса могут быть несколько потоков (в том числе фоновые).
    Скажем в MS Word мы имеем один процесс и несколько потоков (набор текста и фоновая проверка орфографии это разные потоки, по сути).

    Что касается торговых систем и торговых роботов - К примеру в МТ4/МТ5 каждый индикатор это по сути отдельный поток, советники это тоже отдельные потоки, но тут есть ограничения которые позволяют запустить только один советник на графике.
     
  9. Interesting

    Interesting Я тут не случайно

    По "среднему" ПК:
    1) Конечно можно ориентирвоаться на ПК или ноут скажем с 8-Гб память с CPU в 4 ядра. Но, это Вам не поможет если используется "бажная" архитектура и в итоге задачей является ПРОТАЩИТЬ ВЕРБЛЮДА В ИГОЛЬНОЕ УШКО.

    Количество тиков это не о чем, если все правильно сделано. А именно правильно реализован обмен данными между клиентом и сервером.
    Тут речь идет о том сколько информации передается между клиентом и сервером и как часто такая информация может быть передана за единицу времени (скажем за секунду). Ваша концепция учитывает только частоту поступления новых тиков и полностью игнорирует все остальное.
    А между прочем за скобками остаются два очень важных показателя - канал интернета которым пользуется трейдер и размер той информации которая передается в терминал при новом тике.

    2) Каждый кто давно пользуется Мобиусом без труда может сравнить объем передаваемой информации скажем на 20-30 валютных парах и 5-6 открытых графиках. Терминал от Метаквотов выиграет тут без всяких проблем, парни знали что делают когда реализовывали обмен данными.

    Пару слов о CPU:
    Опустим тот факт что при реализации торговых роботов в МТ5 давно уже можно производить расчеты на базе GPU, в контексте обсуждения это нас не интересует. Относительно CPU и количества ядер - они никому не помогу, если архитектура терминала "бажная" и там отсутствует нормальная и эффективная система работы с потоками.

    К примеру, я вообще не представляю как реализованы потоки в самом терминале МОБИУС, я уже не говорю об индикаторах и торговых роботах.
    И это в отдельно работающем терминале который установлен на ПК, что за "бардак" будет происходить в браузере лично мне и думать не хочется.
     
    МУЖИК нравится это.

Поделиться этой страницей