Планирую в недалеком будущем серьезно заняться автоматической биржевой торговлей, для чего потребуется разработка собственного робота. Первым делом здесь требуется выбор брокера. В России, наверное, единственным подходящим брокером является компания Финам, т.к. только у нее имеется настоящий API, позволяющий написать программу на любом языке программирования, возможности у которой будут абсолютно такими же, какие предоставляют для пользователей торговые терминалы.
Финам просто предоставляет своим клиентам доступ к торговому серверу и полную техническую документацию по нему — у него есть свой язык (вроде бы на основе xml), с помощью которого можно из своей программы посылать ему команды — например, для запроса котировок по определенному финансовому инструменту за определенный период и на определенном таймфрейме, для совершения сделок, установки стоп-лосса и тейк-профита, и т.п. Сервер будет выполнять команду и возвращать программе ответ. Жалко, что ни у одного другого брокера, кроме Финама, нет таких возможностей. Из американских брокеров, информация о которых у меня есть, такие возможности предоставляет только самый известный американский брокер — Interactive Brokers, но непонятно, открывает ли он сейчас счета российским гражданам. С США отношения плохие, и информация в Интернете об этом противоречивая.
Программу предполагается писать на языке C# корпорации Microsoft (может быть, C++), всевозможные питоны и т.п. барахло мне не нужны. Сама сделка со стоп-лоссом и тейк-профитом должна совершаться нейронной сетью, а для получения информации, необходимой для обучения нейронной сети, придется написать большую и сложную программу, анализирующую известный график выбранного финансового инструмента — возможно, нечто вроде экспертной системы. Их вроде бы относят к числу устаревших технологий, но мне нравится.
На Московской бирже интереснее всего поработать с валютой, нейронной сети для обучения можно будет дать дополнительно информацию из рынка Форекс (есть в Финаме), об индексах ММВБ и РТС, может быть, что-то еще. Если зависимости валютных котировок (доллар/рубль, например) от индекса ММВБ, например, нет, то нейронная сеть информацию об индексе проигнорирует, если же есть, то нейронная сеть, безусловно, закономерности найдет, и использует их для получения хорошего прогноза. Такой дополнительной информации может быть весьма много, и с разных таймфреймов, поэтому нейронная сеть может получиться весьма большой. Имеет смысл тряхнуть стариной и саму нейронную сеть запрограммировать на языке Ассемблера, вычислений будет чрезвычайно большое количество, и быстродействие от этого должно сильно увеличиться, в такой задаче это актуально.
Это самые первые идеи, как можно решить такую задачу.