Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Наверно не только меня одного в профессию программиста привела тяга к компьютерным играм. Все эти новые вселенные, стрелялки, полеты на немыслимых самолетах. Всегда хочется что-то узнать большее об управляемом персонаже, защитить его, правильно им управлять. Возможно даже вырастить его в немыслимого супергероя. С годами игры меняются. Остается главное – страсть к чему-то новому исследовательскому. Открутить колесико от одной машинки и прикрутить его к другой. А вдруг!
Рис1.
Самое главное в этом процессе играть самому. По своим правилам и своими игрушками. Пусть даже и не выиграть. Но самое главное самому и по своим правилам. Руководить собственным маленьким, подчиняющимся только тебе «терминатором». Начнем с выбора персонажа. Пусть это буду акции российских и иностранных компаний доступные обычному человеку на Московской бирже через терминал QUIK. Спасибо разработчикам терминала. Они предоставляют механизмы экспорта/импорта информации во внешние системы анализа. Платформа для создания бизнес-приложений логично вписывается в эту нишу. При этом концепция «low code» позволяет в одиночку создать и поддерживать свои правила игры на своем поле. Даже человек, который ранее никогда не программировал может в приемлемый срок освоить встроенный в 1С Предприятие язык программирования и начать управлять небольшой торговой системой, закладывая в нее свою логику.
Создадим себе возможность быстрого выбора персонажа, которым мы хотим управлять в текущую минуту.
Рис 2.
Отличной возможностью быстро оценить нашего текущего персонажа является возможность вывода «живого графика» движений за последнее время.
Рис 3.
Разработчики механизма «Живой график» отлично постарались. График не только регулярно обновляется, но и делает это каждый раз с различными спецэффектами. При переключении между графиками разных инструментов точки как живые скользят по поверхности, создавая эффект танца.
Но само собой у нашего текущего инструмента, как в любой игре должно быть детальное описание его возможностей.
Рис 4.
При этом это должны быть не только заложенные биржей и установленные законодательством параметры, но и характеристики поведения «Биржевого инструмента».
Рис 5.
Это могут быть как ценовые показатели, так и количественные.
Рис 6
Рис 7.
Для принятия решения о текущем поведении инструмента необходимо проанализировать его разными средствами и подходами. На эту тему существует огромное количество теорий от математики до астрологии. Опишу некоторые из них.
Рис 8.
Первое, что приходит в голову это попытаться найти логику в хаотичном движении цен, предполагая, что одинаковые инструменты ведут себя одинаково на определенном интервале времени. Например, найти какой-то инструмент в прошлом, движения которого за четыре дня похожи на движения текущего инструмента за последние четыре дня. Соответственно попытаться предсказать каким будет пятый день. Со временем, конечно, мы узнаем, что современные технологии поменяли правила игры. И теперь паттерны, которые раньше работали, работает не только редко, но я бы сказал очень редко. Но оставим данный механизм. Пригодится.
Попытаемся прикрутить широко известные и доступные механизмы прогнозирования от разных производителей. Начнем со встроенных в платформу 1С механизмов анализа и прогнозирования: общей статистики, дерево решений и кластеризация.
Рис 9.
При этом мы можем не только вывести описание прошлого поведения, но и попытаться предсказать будущее значение цены. А в последствии мы отладим процесс автоматического тестирования на основании прошлых данных за произвольный период.
Рис 10.
Любому игроку нравится внести в игру свои правила. Для этого должна быть возможность вывода графиков каких только душа пожелает. А если таких нет, то дополнить самостоятельно. Хорошо что язык 1С понятен и доступен.
Рис 11.
На просторах всемирной паутины можно найти огромное количество советов и торговых стратегий на основании типовых индикаторов технического анализа. В помощь с нам приходит язык программирования Python для которого существуют соответствующие библиотеки. Воспользуемся двумя из них и случайным образом выберем стратегии для этих индикаторов.
Рис 12.
Наличие таких стратегий отличный вариант. Но в современных условиях многие из классических алгоритмов могут и не работать. Чтобы четко понимать для каждого конкретного инструмента работает ли для него данная стратегия будем сразу и проверить на текущих и исторических данных. Для этого просто проверим для сигналов в прошлом сбылись ли их предсказания. Получим значения вероятностей срабатывания сигнала. Например 0,6 – Значит в прошлом сигнал для этого инструмента отрабатывал в 60 % случаев.
Рис 13.
Таким образом мы для каждого инструмента можем увидеть количество сигналов покупать и продавать и вероятность того, как эти сигналы отрабатывали в прошлом.
При этом по нажатию всего на одну кнопку мы можем расшифровать сигнал. Увидеть графически.
Рис 14.
Собственная система предсказаний-это хорошо. Но вдруг она ошибется. Предусмотрим кнопки быстрого перехода на тематические сайты поиска информации.
Рис 15.
Рис 16.
Когда речь заходит о вероятности и статистике в голову, конечно, приходят классические знания. Частоты значений. Это либо частоты цен, либо частоты ночных скачков цен.
Рис 17.
Рис 18.
На этапе, когда мы реализовывали стратегии на основе индикаторов технического анализа, пришлось реализовать расчет и отображение самих индикаторов технического анализа.
Получилось в сумме из двух библиотек более 120 технических индикаторов и графиков.
Рис 19.
При этом график получается отличного качества и достаточно быстро переформируется для любого интервала. Это как раз тот механизм, который мы используем для расшифровки сигналов торговых стратегий.
Рис 20.
У нас получилось сразу несколько возможностей построения графиков. Этот как механизмы языка Python. Так и встроенные в 1С типовые средства построения графиков и отчетов.
Рис 21.
Рис 22.
Рис 23.