OsEngine невозможно ускорить многопоточностью в коннекторе. 98% всех задержек находятся в самих роботах. И от того, как их пишут пользователи, зависит скорость работы программы.
Так было не всегда… Были времена, когда казалось, что это не так. Но годы шли, OsEngine шлифовался и ускорялся. С модификацией Aserver, журналов и прочего всё больше становилось очевидно, что задержки именно в роботах.
На сегодняшний момент, даже подписка на 200 или 400 бумаг не ложат стандартную поточную архитектуру сервера, предложенную ниже.
Поэтому делаем, как тут написано. Время экспериментов закончено.
Полный и достаточный список потоков, которые могут и должны быть в любом сервере:
Никакие другие потоки создавать не нужно. Только если этого требует само АПИ. Плюс, это должен быть THREAD, а не Task.
Совсем недавно, буквально 2 месяца назад, Мосбиржа запустила Algopack и выложила на Гитхаб долгожданную многими библиотеку на python –moexAlgo, которая должна упростить работу с AlgoPack API.
Что такое Алгопак?ALGOPACK предоставляет исторические данные, на которых можно тестировать стратегии и делать бэктестинг. Также предполагаются онлайн данные для запуска торговых стратегий.
Данные в ALGOPACK включают:
– Super Candles – 5-минутные свечи с 50+ параметрами, история с 2020 года.
– Mega Alerts – уведомления о рыночных аномалиях.
– Market Signals – сигналы о рыночных аномалиях.
– Market Data – стандартные онлайн данные: стаканы и свечи.
Исторические данные в алгопаке доступны с 2020 года. Доступ к данным возможен через API и Python клиент на библиотеке moexAlgo.
В настоящий момент в Алгопаке доступен только раздел Super Candles (суперсвечи), который (согласно информации с мосбиржи) имеет более 50 готовых сигналов, рассчитанных:
Всем доброго времени суток !
Пост https://smart-lab.ru/blog/969242.php из раздела «Торговые роботы» заставил меня вспомнить, как по годичным данным Финама дневок фьючерса Si я пытался анализировать примитивную стратегию, основанную на ожиданиях трейдеров на выходных какого-нибудь негатива.
Торгуем склеенный фьючерс Si.
Т.е. при минимально-максимальных допустимых контанго и бэквордации, за минимальное время до экспирации «перекладываем» открытую в лонг позицию или открываем закрытую в предыдущем фьючерсе в следующем по времени фьючерсе Si.
По пятницам. По цене закрытия.
Закрываем позицию. По понедельникам. По цене открытия.
Профит за год очень даже неплохой.
Но, если просто открыть в начале года лонг и просто «перекладываться», профит гораздо больше.
Идея отброшена.
А потом я решил сравнить профит от простого лонга с разными своими ТС, на создание которых потрачены время и здоровье, где «обсасываются» разные умные слова типа «Диверсификация», «Шарп», «Прибыль/Риск», «Арбитраж», «Выделенный сервер», «Автооптимизация» и т.д.
✅Результат за 15.12: $359,12 (+1,80%)
💵Результат с начала месяца Декабрь: +$1 221,68 (+6,11%)
💵Результат с начала 2023 года: +$28 144,69 (+140,72%)
Проблема, о которой поговорим сегодня – генерация хитрых архитектур для коннектора. Сразу же скажу, что коннектор в рамках OsEngine, насколько бы он для вас сложным не был, — очень простая штука, если пользоваться моими советами и вести тесты. Настолько простая, как складной нож. Он очень прост и не нуждается ни в каких дополнениях.
Складной нож не нужно прикручивать к палке, чтобы им управлять.
Складной нож не требует постоянного отмачивания в машинном масле.
И конечно же, складной нож не нуждается в перевязывании изолентой с другими предметами — топорами или вилками. В этом нет смысла.
Самое худшее, что можно сделать, – придумать класс, который будет использоваться разными коннекторами для парсинга данных. Сколько бы я этого не видел, это почти неизбежно приводит к неработоспособности коннектора.
Всё это заканчивалось переделыванием с нуля.
Поэтому:
Совместные классы-парсеры, вёбСокет-обёртки и рест-оболочки для коннекторов запрещены.
✅Результат за 14.12: — $161,37 (-0,81%)
💵Результат с начала месяца Декабрь: +$889,40 (+4,45%)
💵Результат с начала 2023 года: +$27 812,41 (+139,06%)
▶баланс $27 678,06 / Эквити $27 570,99
___________________
🕯Описание стратегии: smart-lab.ru/blog/925228.php