Как известно, у всего сотворенного человеком есть свои ограничения и недостатки, поэтому, не смотря на то, что робот универсальный – идеал ему только снится. Но все же, робот, который пытается приблизиться к универсальности, должен основываться на максимально универсальных его составляющих частях.
По своей сути все роботы, торгующие на рынках, в конечном счете делают однотипные финальные операции, ради которых они и разрабатываются, эти операции заключаются в простых действиях – выставление заявок, снятие заявок, изменение их параметров и тому подобное – то есть круг операций не велик. А значит, нам требуется ограниченное количество функций, которые будут способны выполнить эти финальные операции. Даже если некоторые функции будут иметь несколько версий с различными вариациями, все равно их количество измеряется максимум двузначным числом.
А в чем же здесь универсальность? А универсальность будет заключаться в торговых заданиях, которые будут обрабатывать эти функции. Торговые задания – определенная структура с данными, содержащая всю необходимую информацию – что, сколько, где, когда и в каком направлении торговать. Получая такую информацию функции должны выполнять все автоматически, а так как они работают с однотипной структурой, то тоже являются универсальными. Но это конечно в идеале, как будет на самом деле – покажет разработка.
То есть, весь процесс алгоритмизации любой торговой стратегии с помощью универсального робота должен заключаться в формировании торгового задания и передаче его на выполнение функции.
Такие функции и торгового задания на все случаи жизни разработать нелегко, но если постараться, то какой-нибудь вариант получить можно, а потом дорабатывать его при необходимости.
Поехали далее по нисходящей.
Что требуется для формирования торгового задания. В первую очередь требуется торговый сигнал. Остальные параметры заданы в том или ином виде изначально – инструмент, таймфрейм, количество и т.д., часть параметров будет вшита в вызываемых функциях и задаваться выбором – торговля лимитками или по рынку, вход лесенкой или разом и т.д.
Торговый сигнал – то, что будет сообщать функциям где, когда и в каком направлении торговать. Формировать торговый сигнал придется из огромного количества самых разнообразных индикаторов и прочей всячины на любой вкус и цвет в соответствии с требованиями выбранной стратегии. Поэтому универсальность здесь тоже не помешает.
Для универсальности из показателей индикаторов будем формировать тоже сигналы, но назовем их элементарными или первичными сигналами.
Первичные сигналы будут сигналить о важных моментах в показаниях индикаторов с точки зрения выбранной стратегии (например, пересечение скользящих средних, повышение объема выше заданного, появление паттерна и т.п.) и эти показания будут использоваться для формирования торгового сигнала.
Но и здесь не помешает универсальность и заключаться она будет в том, что весь технический анализ со всеми его индикаторами можно свести к пересечению двух линий (логически и появление паттерна или возникновение любого другого события тоже сводится к пересечению).
Получившаяся, исходя из написанного схема робота показана на рисунке. В следующий раз рассмотрю поподробнее первичные сигналы. Кому интересно, начало здесь .
а сможет ли пользователь, незнакомый с Lua что-то универсалить в этом роботе. Вроде квадратики в TSLab попроще, чем коды строк программирования?
развитие будет без имитации