Перед прочтением этой статьи — ВАЖНО следующее: основная цель данной статьи заключается в том, чтобы показать как просто можно создать торгового робота, который может торговать российскими акциями или зарубежными акциями. Важно понимать, что создавая бота, вы лично несете ответственность за принимаемые им решения, инвестиционные операции и связанные с ними риски. Я не несу ответственности за решения, которые вы можете принять после прочтения этого материала. И я не даю никаких инвестиционных рекомендаций или советов. Не забывайте, что боты способны принести большие убытки, поэтому используйте их с осторожностью.
Программирование для меня это хобби и любимое дело. А так я сертифицированный системный архитектор. Поэтому прошу не особо ругать за код:‑)
Выбор брокера и библиотекКак вы знаете, брокеров много))) но нам нужны те, у которых есть API — программный интерфейс через который наш торговый робот сможет отправлять заявки на покупку и продажу акций.
Инструменты для анализа и защиты смарт-контрактов в блокчейне.
Привет, друзья! Хотим с вами поделиться теми улучшениями, которые мы добавили в терминал. Они помогут вам получить еще больше преимуществ на рынке вместе с Go Invest.
Вот что мы поменяли и добавили в терминале
Новая визуализация торгового стакана:
сжаты ценовые уровни
появилась цветовая дифференциация уровней Bid\Offer
добавлена совокупная гистограмма спроса\предложения
появилось контекстное меню для работы с правой кнопкой мыши
добавлена возможность поменять тип заявок LMT и STP на трейлинговые версии
Доработана таблица “Позиции” — добавлены фильтры по типам активов и информационная строка, в которой суммируется информация по выбранным счетам в части стоимости, НПУ за день и НПУ за все время.
Если вы не только что стали моим подписчиком, то наверняка в курсе, что я полностью перешел на Linux и даже написал пост о моем опыте: Месяц на ALT Linux на рабочей машине...
Но сейчас хотел поделиться кое-чем полезным, а заодно останется это в ленте, потому что когда ты редко пользуешься чем-то, то забываешь, и нужно снова вспоминать. Поэтому данный пост также послужит лично мне напоминалкой.
Сейчас люди настолько привыкли к графическим оболочкам (линуксоиды их называют ГУИ, GUI — Graphical user interface), что мало кто представляет себе возможность что-то делать на компьютере с помощью командной строки. А между тем, командная строка очень мощный и в определенных случаях очень полезный инструмент. В Linux его довели до совершенства. Конечно, большинству людей она не понадобится, но при этом она остается очень полезной сисадминам и программистам.
Мои программы написаны на python и их очень удобно запускать прямо из командной строки. Достаточно написать:
python3 my_python_script.py
20220915,090000,61420,61497,61406,61464,241
20220915,090100,61460,61476,61420,61451,160
20220915,090200,61444,61489,61436,61479,185
Осмелюсь предположить, что эти строки ты заливаешь в массив с помощью string.match. Это готовый парсер строки с разделителем. Работает достаточно шустро. Я на нем сидел пару лет.
Когда данных не много, такой метод загрузки не напрягает. Но когда за день 20-30 раз загружаешь сотни тысяч или миллион строк, то потери времени становятся невыносимыми.
Стал искать способ ускорить этот процесс. И он таки нашелся. Выяснил следующее:
Если строки в файле истории сконвертировать в такой вид (делается 1 раз):
table.insert(MyTable,{«20220915»,«090000»,61420,61497,61406,61464,241})
table.insert(MyTable,{«20220915»,«090100»,61460,61476,61420,61451,160})
table.insert(MyTable,{«20220915»,«090200»,61444,61489,61436,61479,185})
Термин «робастность» означает способность торговой стратегии повторять результаты своего тестирования в прошлом на новых данных.
И было бы здорово измерять эту способность в цифрах. В этом тексте я познакомлю Вас с одной из метрик робастности стратегии, которая есть у нас в OsEngine — «Walk-Forward Robustness Metric».
Вспоминаем о сути робастности
Вы оттестировали какую-то стратегию в тестере и видите результат в красном квадрате. Супер! Вы включили стратегию в торги, и в реальном времени за следующие два месяца стратегия вам дала примерно такой же результат по прибыльности, как и в тестере:
Рис. 1. Стратегия с высокой робастностью. Повторяет результаты тестов в реальной торговле
Пример 2.
Вы оттестировали какую-то стратегию в тестере и видите результат в красном квадрате. Вы включили стратегию в торги, и в реальном времени за следующие два месяца (зелёный квадрат) стратегия вам дала убытки: