Универсальная платформа
Скользящие средние (Moving Average), являются наиболее часто используемыми индикаторами технического анализа. Известное изречение гласит: «На скользящих средних трейдеры заработали в сотни раз больше денег, чем на всех остальных индикаторах вместе взятых». Думаю, что и аналогичное изречение про потерю денег тоже должно быть верно
Тем не менее, заказы с использованием всевозможнейших скользящих средних встречаются в очень многих торговых системах. После того, как пришлось подряд написать три такие системы, основанные на основе пересечений скользящих средних, неотложной необходимостью стал вопрос написания универсального механизма, который можно было встроить в каждый следующий заказ на эту тему. Сколько можно писать одно и то же?
- А почему только со со скользящими средними?
- А почему только с двумя?
- А как насчет возможности использовать собственные индикаторы, отсутствующие в QUIK?
Как сделать остов торговой системы универсальным? Я пошел таким путём:
- Универсальная процедура чтения файла параметров робота, задаваемого пользователем. За основу был принят формат INI Windows. Что получилось в результате, описано в статье Настройка параметров в .INI файле. Редактировать настройки можно как в текстовом редакторе, так и с помощью конфигуратора.
- Блок получения котировок инструментов и индикаторов с графиков QUIK в массивы. Как известно, в QPILE отсутствует возможность обращения к свече по ее номеру, поэтому функционал на все случаи жизни пришлось создать самому. Для получения истории свечей используются исключительно данные с графиков. Допустимы любые таймфреймы кроме тикового. Никакие внешние источники или промежуточные хранилища не требуются.
- Инструментарий для построения собственных индикаторов. Что нам мешает построить в памяти структуру, аналогичной полученной с графика и заполнить ее вычисленными значениями? Таким образом ничто не мешает создавать свои индикаторы в QUIK, если нужного нет или реализация чем-то не устраивает.
- Универсальный механизм отрисовки пользовательских индикаторов, в том числе на истории. Отрисовка - конечно сильный термин, учитывая куцые возможности терминала в этом вопросе, но чем богаты.
- Дальнейшее - дело техники - анализируем текущее состояние рынка, получаем сигналы, отрабатываем их
Пришлось потратить ощутимое время, чтобы написать все качественно, компактно и, главное, универсально. До появления AmiSharp и Lua практически все механические торговые системы я создавал именно на этой платформе.
Что в результате? Процесс разработки торговых систем (и роботов) стал сродни написанию торговой стратегии в программе технического анализа, когда основной и часто используемый фунционал является частью платформы. Итого:
- ускорение процесса разработки
- повышение надежности за счет использования прошедших неоднократное тестрирование библиотек
- универсальный подход к созданию пользовательской документации
- расширение возможностей за счет возможности построение пользовательских индикаторов
- Мгновенная готовность механической торговой системы или робота к функционированию сразу же после запуска, без необходимости собирать предыдущую историю, что крайне важно при работе на больших таймфреймах
- Несколько десятков реализованных алгоритмов на платформе
Продолжение в статье Пользовательские графики в QPILE
P.S. После появления AmiSharp необходимость в написании сложных позиционных стратегий с нестандартными индикаторами и сложной логикой на qpile отпала - среда амиброкера вкупе с Амишарп предоставляет широчайший выбор возможностей и прекрасные средства визуализации. Да и быстродействие роботов, написанных таким способом, значительно выше, чем построенных с использованием языка qpile.
Комментарии
Александр
RSS лента комментариев этой записи