Когда закончил писать механизм своего торгового робота обнаружил, что самое главное всё таки не сам механизм, а стратегия, по которой этот механизм будет работать.
Первый тесты на истории показали что с доходностью и тем более с тем как доходность портфеля компенсирует принимаемый риск (коэффициент Шарпа) проблемы, но неудачный опыт тоже опыт, поэтому решил описать его в статье.
Первый и самый важный вопрос — при помощи чего проводить тесты торговой стратегии на исторических данных? В какой программе или при помощи какой библиотеки создавать стратегию и потом прогонять её на истории?
Раз мой торговый робот создан в среде исполнения JavaScript Node.js, то и тесты в идеале должны проводится на чём-то схожем. Но забегая немного вперёд скажу что получилось по другому.
Раз сам механизм робота кросс-платформенный, то хотелось чтобы и тесты можно было проводить при помощи кросс-платформенной утилиты. Однако когда рассматривал самые популярные программы, то обнаружилось что все программы из списка только для Windows. Кроме TradingView, который является веб-сервисом и Excel — который есть и для macOS.
Поскольку хочу использовать для среднесрочной алгоритмической торговли на российском рынке скрипт — робота, то мне необходимо получать от брокера актуальную информацию о текущих ценах и сопутствующую информацию:
InstrumentsService/TradingSchedules
.InstrumentsService/GetInstrumentBy
.MarketDataService/GetLastPrices
.MarketDataService/GetCandles
.MarketDataService/GetTechAnalysis
.InstrumentsService/FindInstrument
.В статье разбираюсь как проделать все эти операции при помощи программного кода.
Частному лицу для начала торговли на бирже частному инвестору необходим брокерский счёт. Но лишь у немногих российских брокеров есть собственные API (точно есть у ФИНАМ, Алор, Тинькофф Инвестиции). По личным предпочтениям я решил использовать API от T-Банк (ранее известный как Тинькофф), работая в среде исполнения JavaScript Node.js.
Перед тем как использовать торгового робота на живых деньгах хочется всё протестировать на демо-счете (или «песочнице»). Это когда программные ошибки не имеет особой стоимости.
Я планирую использовать робота на Московской бирже, через АПИ одного из брокеров. Чтобы частному инвестору начать торговать на бирже нужен брокерский счет. Однако минимальное число российских брокеров имеют свои API (на текущий момент я знаю только ФИНАМ, Алор, Тинькофф Инвестиции). По субъективным причинам я выбрал работать с T‑Bank Invest API (это бывший Тинькофф) через среду выполнения JavaScript Node.JS.
В статье разбираюсь как используя песочницу:
Операция продажи через OrdersService/PostOrder
Этот код Node.js взаимодействует с API Tinkoff Invest, позволяя имитировать торговые операции на виртуальном счете, что позволяет протестировать некоторые функции API в ручном режиме. Вот что делает этот код:
Бывает, что частные инвесторы не доверяют сервисам для ведения портфеля ценных бумаг и ведут учет своих инвестиций в «Экселе» или «Гугл Таблицах».
Если количество ценных бумаг не так велико, то подобное использование таблиц оправдано:
Но у такого метода учета есть и свои минусы, главным образом связанные с необходимостью ручного обновления котировок. Если раз в квартал сделать это несложно и вручную, но чтобы поддерживать актуальность чаще, потребуется много времени: нужно зайти на сайт, где опубликованы текущие котировки, найти нужную цену, скопировать ее и вставить в ячейку таблицу. И так для каждой ценной бумаги в портфеле. Печально и долго.
Зачем вообще нужны актуальные цены в таблицах:
Четыре года назад я написал систему поиска поиска недооцененных американских акций, используя данные Яху Финанс, ведь на американском рынке торгуется больше 10 тысяч бумаг, из которых около 4 тысяч бумаг имеют рекомендации аналитиков о прогнозируемой цене. Это большие цифры, с которыми сложно работать. Но что по России?
Я вялотекуще пытался найти систему которая бы также отдавала рекомендации аналитиков по российским компаниям, пока недавно не нашёл такой API. Вот например какие рекомендации для оператора аренды электросамокатов WUSH:
{ "targets": [ { "uid": "b993e814-9986-4434-ae88-b086066714a0", "ticker": "WUSH", "company": "SberCIB Investment Research", "recommendation": "RECOMMENDATION_HOLD", "recommendationDate": "2024-10-02T00:00:00Z", "currency": "rub", "currentPrice": { "units": "192", "nano": 0 }, "targetPrice": { "units": "250", "nano": 0 }, "priceChange": { "u
Самое главное, что никакого отношения к слову алко
это не имеет. В течении нескольких лет я торговал в связке программы технического анализа AmiBroker + торговый терминал QUIK через .tri и .trr файлы в основном на фьючерсах на срочном рынке. Не могу сказать что это было неудачным опытом, но со временем я узнал про распределение активов (Asset allocation) и понял что очень сложно соревноваться с бенчмарком в виде фондового индекса.
В теории это означает что можно купить индекс и забыть об этом, заниматься своими делами, бизнесом, семьёй — а индекс растёт (ну или падает, смотря какое время) и для этого не нужно прикладывать никаких действий. А за связкой AmiBroker + QUIK постоянно нужно было присматривать, следить не отвалился ли адаптер импорта через .tri файл. А ещё иметь несколько виртуальных машин с установленными копиями Windows на каждой виртуалке на одном физическом компьютере для разных брокеров. Возможна была установка только одной пары AmiBroker + QUIK на одну винду. Всё это мне не особо нравилось.
Хочу рассказать о своем опыте поиска ценных бумаг на американском рынке, которые торгуются на NYSE, NASDAQ и AMEX.
Из России покупать акции иностранных компаний в 2024 году сложно, но варианты до сих пор остаются: иностранный брокер, страховая или некоторые российские брокеры, которые не попали под санкции.
Обычно я покупаю индексные фонды, но иногда хочется купить конкретные акции. Акции какой конкретной компании выбрать, ведь на американском рынке на сентябрь 2024 года их торгуется 10 522 штуки? Ответ на вопрос сложен и зависит от многих факторов. Правда, часто не хочется тратить много времени на анализ, но и совсем случайную акцию покупать не хочется.
Существует популярный ресурс Яху Финанс, который предоставляет различные данные по акциям, включая фундаментальные данные, а ещё сводные рекомендации аналитиков различных инвестиционных компаний: прогнозируемую цену бумаги и рекомендацию: покупать / продавать / держать. Все эти данные представлены на Яху в структурированном виде. По одной компании может быть дано множество прогнозов, например для Apple Inc. (AAPL) в сентябре 2024 таких прогнозов было дано 38 от различных инвестиционных компаний.