суббота, 23 сентября 2017 г.

Будни начинающего алготрейдера: прошла еще неделя



Прошла еще неделя и я снова по уши в трудах. Несмотря на неоднократные заявления, что все уже сделано и делать больше ничего не хочу и не буду. Но заявления заявлениями, а реальность немного другая.

Первое, что нужно было сделать, это увязать в систему и в программы "неожиданно" выскочивший положительный эффект от использования более точных и/или более сложных фильтров.
Неожиданность конечно условная, фильтры были запрограммированы достаточно давно, и индикаторы и роботы на их основе тоже были реализованы и лежали на дальней полке в ожидании своего часа.
Час наступил, когда была реализована автоматическая настройка, которая и позволила выявить потенциал более сложных методов фильтрации.
Сгоряча я хотел идти еще дальше, использовать еще более сложные фильтры более высокого порядка. Но вовремя остановился. И так нерешенных проблем еще хватает. Проблемы эти в основном технического характера, но тем не менее сами они не устранятся. Кто-то должен сделать и эту работу.
В чем суть проблем?

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

Вторая проблема, которая вылезла довольно неожиданно - это быстродействие компьютера. Проблем с быстродействием не возникало в принципе, пока не возникла необходимость расширить диапазон свечей (баров) активных графиков в связи с увеличением порядка фильтров, которым требуется больше данных. И тут включились тормоза. При работе с 24-мя инструментами включение терминала не всегда происходило успешно, так как при включении пересчитывается весь диапазон значений индикаторов, дальше обновляются только последние бары. Можно конечно было грузить пустой профиль, а потом поочередно заполнять его окнами графиков с индикаторами и роботом и больше не выключать компьютер - пусть работают. Но это не дело. Пришлось искать другие решения. И они нашлись.
Дело в том, что в силу природной лени я использовал каскадную схему работы индикаторных модулей. В каждом модуле реализовывалась определенная функция, и при необходимости из программного кода этого индикатора вызывался соответствующий модуль другого индикатора и производил все расчеты. Это очень экономило силы в написании кодов программ, но в силу совершенно естественных причин тормозило расчеты. Всего каскадов было три. Первичный модуль цифровой фильтрации, базовый модуль индикатора SWT и вспомогательные модули плюс робот.

Следующий этап - переход к однокаскадной схеме, когда внутри каждого модуля рассчитывается всё необходимое, должен дать еще более высокую скорость расчетов. Но коды становятся чересчур громоздкими, и я пока что не решаюсь браться за эту проблему - и глаза боятся, и руки делать не хотят. И так код робота уже превысил тысячу строк и только модульная организация структуры программы позволяет не запутаться в этой мешанине операторов и команд.

Вот такой краткий отчет.
Да, с центовым счетом, пока шла отладка программ, случилась пара сбоев из-за ошибок кода, и работа на нем приостановлена. Возможно на следующей неделе возобновим.

Для более серьезной работы в четверг открыт счет на $1000. Деньги небольшие, но для меня уже что-то значат, и просто выбрасывать на помойку их не стоит. Поэтому с понедельника начну постепенно и по возможности аккуратно и осторожно вводить на этот счет новые инструменты и включать для них копии робота.

Комментариев нет:

Отправить комментарий