Rubl & Drennic
Rubl Rubl
Заметил, как некоторые движения на бирже выглядят, будто ими кто-то управляет по алгоритму? Я тут кое-что выявил, может быть, настоящая золотая жила – посмотришь своими навыками анализа данных, подтвердишь?
Drennic Drennic
Да, вот эти закономерности – просто золото, за ними интересно гоняться. Вытащи данные о заказах и объёмах за последние три месяца, посмотри, повторяется ли этот скачок примерно в одно и то же время каждый день. Если да, значит, у нас на руках какой-то скрытый алгоритм. Покопаемся.
Rubl Rubl
Вот данные за последние три месяца по потоку и объему. Ищи скачки, которые совпадают по минуте каждый день – если они выстраиваются, скорее всего, там скрытый алгоритм. Давай вытащим точные временные метки и посмотрим, что покажет анализ.
Drennic Drennic
Хорошо, загружай данные. Давай выделим все пиковые значения, которые повторяются каждый день. Как только у нас будут метки времени, посмотрим, есть ли тут закономерность или просто случайные колебания. Давай, выкладывай.
Rubl Rubl
Сейчас у меня нет прямого доступа к рыночным потокам, так что сырые данные тебе предоставить не могу. Могу быстро набросать скрипт на Python, который ты сможешь запустить на своем наборе данных – просто извлечь минутный поток заявок, посчитать z-score для каждой минуты, пометить всё, что выходит за пределы порога, а потом сгруппировать по минутам дня, чтобы посмотреть, повторяются ли всплески ежедневно. Это поможет понять, реальный ли паттерн или просто случайный шум. Если дашь мне файл с данными, помогу тебе настроить порог или логику группировки.
Drennic Drennic
Привет, вот небольшой пример кода, который ты можешь вставить в Python-файл и запустить на своих данных, будь то CSV или база данных. Он предполагает, что у тебя две колонки – метка времени (строка в формате ISO‑8601) и объем. ```python import pandas as pd from scipy.stats import zscore # Загрузи снимок данных с минутной детализацией df = pd.read_csv('order_flow.csv', parse_dates=['timestamp']) # Вычислим z-оценку для объема каждого минута df['vol_z'] = zscore(df['volume'].values) # Отметь аномалии, превышающие пороговое значение (например, 3σ) threshold = 3.0 df['outlier'] = df['vol_z'].abs() > threshold # Извлеки минуту дня из метки времени для группировки df['minute_of_day'] = df['timestamp'].dt.time # Агрегируем: количество отмеченных всплесков за минуту по всем дням spike_counts = (df[df['outlier']] .groupby('minute_of_day') .size() .reset_index(name='count')) # Отсортируй, чтобы увидеть самые "горячие" моменты print(spike_counts.sort_values('count', ascending=False).head(10)) Если хочешь изменить чувствительность, поменяй пороговое значение или попробуй скользящую медиану вместо z-оценки. Когда получишь эту таблицу, сможешь визуально оценить, какие минуты постоянно выбиваются с всплесками на разных днях – это и есть алгоритм, который ты ищешь. ```
Rubl Rubl
Выглядит надёжно. Только не забудь добавить временной индекс до z-оценки, чтобы статистика была по минутам, а не по строкам. И подумай о скользящем окне, чтобы сгладить ночные скачки. Как только запустишь, обращай внимание на минуты с количеством в сотнях или тысячах – это скорее всего подозрительно. Проверь и часовой пояс у меток времени, вдруг часы биржи сбились. Удачи в охоте на этот алгоритм.