Ответы на комментарии пользователя Vadim S
Как Вы это определяете?
Как определяю, наверно не так важно. Объяснить просто не получится. Поэтому пусть останется секретом ). Важнее и полезнее рассказать идею, натолкнуть на мысль.
В своё время мучался с ложными движениями и боковиками. Однажды обратил внимание на то, как коррелировали между собой движения разных инструментов. Прежде всего интересовали Si и SR. Это было лет 15 назад. При резких движениях они двигались в разные стороны. Но были такие моменты, когда один начинал движение (вверх или вниз), другой находился в боковике. Затем, когда первый переходил в боковик, второй продолжал движение в ту же сторону. Получалось как бы продолжение тренда для их объединённого индекса...
В индексе получается такое распределениеCRM5/8, GZM5/2, MMM5*2, SRM5*1, VBM5/4Ошибся в расчётах. Точность в содержании индекса нужна только для построения графика.
(видел BBGO, но он заточен на крипту)Как раз пример писателей софта. Понятие абстрактный слой им не знаком еще.
Все в основном на питоне и c#.Питон — недостаточно быстрый. Хотя, если прогер опытный, он и на Паскале напишет быструю программу. C# — ресурсоемкий.
Vadim S,
1. Написано на golang. Все данные в памяти, нет задержки на чтение из бд. Холодное хранилище Postgres.
2. Данные с moex реалтайм стрим(не iss). Но есть искуственая задержка на моей стороне, для обеспечения работы спец символа any — иначе будет спамить алертами по каждому символу, сейчас алерт приходит на пачку символов.
По задержке из-за any, думаю сделать это фичей с включением/отключением, что бы присылать алерт без задержки.
any.volume_change(1d, all)[0] > any.volume_change(1d, all[1]
any.volume_change(1d, all)[0] > any.volume_change(1d, all[2]
any.volume_change(1d, all)[0] > any.volume_change(1d, all[3]
any.volume_change(1d, all)[0] > any.volume_change(1d, all)[4]
Также подумаю о добавлении индикатора для нахождения среднего значения, например:
any.sma(1d, market, volume, N)[0]
Например, можно получить алерт, если у Сбера закроется часовая свеча с изменением более 2%:
SBER.change(1h, all, close)[0] > 2