Есть открытые позиции юридических и физических лиц на МосБирже. Я решил что мало кто их глубого анализировал,- они подаются в качестве ежедневного формата, они неудобные, непонятно что означают если не видишь всю историю их изменения. Сделаем анализ и проведем бэктест стратегии,- будем следовать большим позициям «лонг» и большим позициям «шорт» по очереди,- сначала юридических лиц, потом физических лиц.
Если собрать всю всю историю открытых позиций, сделать разницу лонг и шорт между друг-другом, то мы получим «чистые позиции». Это разница лонг и шорт позиций.
1) Чистые позиции юридических лиц по фьючерсу Новатэк
Чтобы уловить сильные изменения, — используем индикатор RSI на эти чистые позиции.
2)
RSI на чистые позиции юридических лиц по фьючерсу Новатэк
Теперь посмотрим что было бы если бы мы следовали сигналам. Берем в рассчет, то что сигналы приходят вечером. Тогда изменение цены по этим сигналам будет считаться на следующий день.
Результат,-
1) Кумулятивный доход по стратегии слежки экстремальных позиций юридических лиц по фьючерсу акций Новатэк
2) Кумулятивный доход по стратегии слежки экстремальных позиций физических лиц по фьючерсу Новатэк
Результаты показывают что если бы мы следовали позициям физических лиц с 2018 по середину 2023 года, то потеряли бы почти весь капитал, а если бы следовали позициям юридических лиц, то увеличили бы капитал в
2,25 раз.
Неожиданно! но давайте посмотрим, — Сбербанк.
1) Кумулятивный доход по стратегии слежки экстремальных позиций юридических лиц по фьючерсу акций Сбербанка
Результаты показывают что если бы следовали позициям юридических лиц, то увеличили бы капитал в
4,5 раз.
Вот платформа для аналитики открытого интереса с сигналами
www.mscinsider.com/
ТГ канал, —
t.me/MSCinsider
Пост там где больше инфы,-
smart-lab.ru/blog/1003409.php
С уважением,
Андрей
И что правильные данные отображаются на всех биржах. Ну-ну
Успехов!
Думаю, что не всё показывается. Моё личное мнение. Не стыкуется с большинством.
2) надо учитывать, что данные суммируются со всех фьючей по инструменту в кучу, никак вы не увидите данные по текущему фьючу отдельно
3) полезно для общего понимания что происходит внутри, точнее как работает ММ с толпой, точнее как он натягивает и напихивает
4) по этим данным то физики рулят а юрики в жопе, то юрики рулят а физики плачут, волшебного превосходства юриков вы там не увидите, давно пройденная тема (а счастье было так близко)
5) а теперь самое главное, биржа никогда ничего хорошего не даст, тем более на халяву, если дают, значит хренатень, можно там конечно кой какие паттерны выделить, но потраченного времени оно стоить не будет
smart-lab.ru/blog/1003409.php
smart-lab.ru/blog/1002878.php
1) То что предлагает платформа и делает наша команда,- такого анализа нет нигде.
2) Можно сколь угодно смотреть на разделение лонг/шорт физиков и лонг/шорт юриков, но никто не анализирует правильно.
3) Результаты бэктеста говорят обратное.
а можно вкратце, что за такой уникальный анализ, что аж нигде нет
наверняка открывают по цене открытия дня… а как же еще?)))
Если вкратце,- есть чистые позиции (дельта позиций лонг и шорт) юриков и физиков отдельно.
На эти чистые позиции накладывается RSI.
Когда сильные изменение вверх,- сигнал лонг, вниз- сигнал шорт. Все просто.
Бэктест рассчитывается специально с задержкой. Потому что сигналы мы получаем вечером, а изменение цены,- на следующий день. В моем коде это учтено.
1) физики с физиками батлуют, выступая друг у друга контрагентами (тут всё понятно)
2) физики с юриками, и юрики как контрагенты открывают новые позы
3) физики с юриками, но юрики при этом закрывают старые позиции
Если брать в расчет, что за юриков в биржевых данных идет сплошняком ММ и то, что ММ ликвидность предоставляет за свои личные бабки, то конечно анализ того, открывает ли ММ новые позы или закрывает свои старые дает интересные плоды, ММ бабки терять никак не будет, не для того он в ММ шел.
glazaolega, нет, это просто пример ) ,- здесь более 6 разных бэктестов, читайте — smart-lab.ru/blog/1003409.php
Могу сделать на любой инструмент вас интересующий, показать код который я использовал и рассказать какие данные.
если в кратце двумч фьючерсами владели три физика…
# Calculate daily returns
df['Daily Returns'] = df['price'].pct_change()
# Shift the daily returns by one to apply them to the next day
df['Shifted Daily Returns'] = df['Daily Returns'].shift(1)
# Strategy returns based on the signal and the shifted daily returns
# When Signal is 1 (buy)
# When Signal is -1 (sell)
# Neutral days have no impact (returns are 0).
df['Strategy Returns'] = np.where(df['Signal'] == 1, df['Shifted Daily Returns'],
np.where(df['Signal'] == -1, -df['Shifted Daily Returns'], 0))
# Calculate cumulative returns by compounding the strategy returns
df['Cumulative Returns'] = (1 + df['Strategy Returns']).cumprod() — 1
— первичный БА
— фьючерсы
— опционы
А если серьёзно, недавно был тут один коллега, он к ОИ прикручивал еще и объёмы, дельту, опционы и еще какую-то херь — все безрезультатно...
ну комон ) в топике нет кода )
но в целом я понял. Страта фиксилиась на след день. И если надо, либо переворачивалась, либо входила дальше
Вот он,-
# Calculate daily returns
df['Daily Returns'] = df['price'].pct_change()
# Shift the daily returns by one to apply them to the next day
df['Shifted Daily Returns'] = df['Daily Returns'].shift(1)
# Strategy returns based on the signal and the shifted daily returns
# When Signal is 1 (buy)
# When Signal is -1 (sell)
# Neutral days have no impact (returns are 0).
df['Strategy Returns'] = np.where(df['Signal'] == 1, df['Shifted Daily Returns'],
np.where(df['Signal'] == -1, -df['Shifted Daily Returns'], 0))
# Calculate cumulative returns by compounding the strategy returns
df['Cumulative Returns'] = (1 + df['Strategy Returns']).cumprod() — 1
Но давайте я сделаю по вашему, в ближайший час здесь результат выложу.
pandas.pydata.org/docs/reference/api/pandas.DataFrame.shift.html
teletype.in/@pythontalk/pandas_shift
по позициям юридических лиц по фьючерсу новатэк
по позициям физичеких лиц по фьючерсу Новатэк
вот код который я использовал:
# Calculate daily returns
df['Daily Returns'] = df['price'].pct_change()
# Shift the daily returns by one to apply them to the next day
df['Shifted Daily Returns'] = df['Daily Returns'].shift(-1)
# Strategy returns based on the signal and the shifted daily returns
# When Signal is 1 (buy), we use the shifted daily return as is (benefit from an increase in price next day).
# When Signal is -1 (sell), we invert the shifted daily return (benefit from a decrease in price next day).
# Neutral days have no impact (returns are 0).
df['Strategy Returns'] = np.where(df['Signal'] == 1, df['Shifted Daily Returns'],
np.where(df['Signal'] == -1, -df['Shifted Daily Returns'], 0))
# Calculate cumulative returns by compounding the strategy returns
df['Cumulative Returns'] = (1 + df['Strategy Returns']).cumprod() — 1
# Plot the cumulative returns
fig, ax = plt.subplots(figsize=(12, 8))
ax.plot(df['date'], df['Cumulative Returns'], color='blue')
ax.set_ylabel('Cumulative Returns')
ax.set_title('Strategy Cumulative Returns Over Time')
plt.show()
Что касательно Мосбиржи и отчетов, то тут очень многое работает идеально, о чем писали давно в западных книжках. Нужно только суметь интерпритировать и адаптировать под наши реалли. А для этого, неплохо бы покрутиться внутри рыночка. Удачи в ресерчах )