Постов с тегом "Python": 264

Python


=Питострой= Робот "Адаптивный ценовой канал" с фильтрацией по стадиям волатильности

Продолжаем Питонизацию торговли.
Тестируем стратегию «Адаптивный ценовой канал» с фильтром по стадиям волатильности.
=> github.com/Alex-Shur/RoboBuilding/tree/main/Stocks/R3_PriceChannel

Для реализации робота используем пакет backtrader-next и индикаторы на Numba .
Робот тестировался на следующих тикерах 30мин интервала, данные с 01.01.2015 по 24.12.2025
AFKS,  AFLT,  ALRS,  BSPB,  CHMF, 
FEES,  GAZP,  GMKN,  HYDR,  IRAO, 
LKOH,  MAGN,  MGNT,  MOEX,  MTLR, 
MTSS,  NLMK,  NVTK,  PHOR,  PIKK, 
PLZL,  ROSN,  RTKM,  RUAL,  SBERP,
SBER,  SIBN,  SNGSP, SNGS,  TATNP, 
TATN,  TRNFP, UPRO,  VTBR
Данные были скачаны с Мосбирже с помощью
MOEX-Downloader  => github.com/Alex-Shur/moex-downloader

Результаты стратегии  alex-shur.github.io/RoboBuilding/R3_PriceChannel/output_stats.html

=Питострой= Робот  "Адаптивный ценовой канал" с фильтрацией по стадиям волатильности


<code>Strategy                          R3_PriceChannel
pc_adx_length                                  50
pc_ratio                                      


( Читать дальше )

Карта валютных корреляций: Что на самом деле происходит в «абсолютных» ценах (анализ 45 валют за 10 лет)

Большинство трейдеров привыкли смотреть на мир через «долларовые очки». Если индекс доллара (DXY) растет, кажется, что падает всё остальное. Но это искажение. Чтобы увидеть реальные связи между экономиками, нужно анализировать абсолютные курсы (Absolute Currency Rates).

Я провел исследование корреляций 45 мировых валют на глубоком горизонте в 10 лет (2016–2026). Делюсь результатами, которые помогут по-новому взглянуть на диверсификацию.

Методология: без «воды»

  1. Данные: проект abscur.ru.

  2. База: Логарифмические доходности ln(Pt​/Pt−1​). Это база для корректной статистики, позволяющая сравнивать волатильную лиру и стабильный дирхам.

  3. Горизонт: 10 лет (статистическая достоверность выше рыночного шума).


1. Трансформация цен в доходности

Для корреляционного анализа нельзя использовать графики цен — они нестационарны. Переход к лог-доходностям превращает тренды в «белый шум», обнажая чистую взаимосвязь активов.

Карта валютных корреляций: Что на самом деле происходит в «абсолютных» ценах (анализ 45 валют за 10 лет)


На графике: как трендовый EUR превращается в стационарный ряд доходностей.



( Читать дальше )

ML нашел «защитные активы»: где на самом деле безопасно? Алгоритмы против географии

Принято считать, что валюты делятся по регионам: развитые, развивающиеся, сырьевые. Но рынок часто плевать хотел на эти ярлыки. Я решил проверить, как валюты группируются на самом деле, если скормить алгоритму машинного обучения сухие цифры, а не географические атласы.

Использовал метод K-Means (обучение без учителя) и данные об абсолютных курсах с платформы abscur.ru. Почему это важно? Потому что анализ пар (USD/RUB, EUR/USD) всегда искажен волатильностью доллара. Абсолютные курсы дают чистую картину «характера» каждой валюты.

Что оценивал алгоритм?

Я составил «поведенческий паспорт» для 45 валют по 4 метрикам:

  1. CAGR (доходность) — куда идет тренд.

  2. Волатильность — насколько сильно трясет.

  3. Max Drawdown (MDD) — глубина «ямы» при кризисе.

  4. Recovery Days — сколько дней вы будете сидеть в убытке, прежде чем цена вернется к пику.

Результаты: 4 типа «валютных личностей»

Алгоритм выделил группы, которые сильно отличаются по эффективности капитала:



( Читать дальше )

=Питострой= Робот на паттерне 3 Солдата с фильтрацией по стадиям волатильности

Продолжаем Питонизацию торговли.
Тестируем стратегию Три Солдата и фильтруем по стадиям волатильности.
=> github.com/Alex-Shur/RoboBuilding/tree/main/Stocks/R2_Soldiers

Для реализации робота используем пакет backtrader-next и индикаторы на Numba .
Робот тестировался на следующих тикерах 30мин интервала, данные с 01.01.2015 по 24.12.2025
AFKS,  AFLT,  ALRS,  BSPB,  CHMF, 
FEES,  GAZP,  GMKN,  HYDR,  IRAO, 
LKOH,  MAGN,  MGNT,  MOEX,  MTLR, 
MTSS,  NLMK,  NVTK,  PHOR,  PIKK, 
PLZL,  ROSN,  RTKM,  RUAL,  SBERP,
SBER,  SIBN,  SNGSP, SNGS,  TATNP, 
TATN,  TRNFP, UPRO,  VTBR
Данные были скачаны с Мосбирже с помощью
MOEX-Downloader  => github.com/Alex-Shur/moex-downloader

Результаты стратегии alex-shur.github.io/RoboBuilding/R2_Soldiers/output_stats.html

=Питострой= Робот на паттерне 3 Солдата с фильтрацией по стадиям волатильности


<code>Strategy                                R2_Soldiers
sma_filter                                     True
sma_period                                      150
volume_pct       


( Читать дальше )

=Питострой= Робот на канале линейной регрессии с фильтрацией по стадиям волатильности

Продолжаем Питонизацию торговли.
Тестируем стратегию на Канале линейной регрессии и фильтруем по стадиям волатильности.
=> github.com/Alex-Shur/RoboBuilding/tree/main/Stocks/R1_LinearRegression

Для реализации робота используем пакет backtrader-next и индикаторы на Numba .
Робот тестировался на следующих тикерах 30мин интервала, данные с 01.01.2015 по 24.12.2025
AFKS,  AFLT,  ALRS,  BSPB,  CHMF, 
FEES,  GAZP,  GMKN,  HYDR,  IRAO, 
LKOH,  MAGN,  MGNT,  MOEX,  MTLR, 
MTSS,  NLMK,  NVTK,  PHOR,  PIKK, 
PLZL,  ROSN,  RTKM,  RUAL,  SBERP,
SBER,  SIBN,  SNGSP, SNGS,  TATNP, 
TATN,  TRNFP, UPRO,  VTBR
Данные были скачаны с Мосбирже с помощью
MOEX-Downloader  => github.com/Alex-Shur/moex-downloader

Результаты стратегии alex-shur.github.io/RoboBuilding/R1_LinearRegression/output_stats.html
=Питострой=  Робот на канале линейной регрессии с фильтрацией по стадиям волатильности
Strategy                  R1_LinearRegression
lr_period                                 180
lr_deviation                              2.5
sma_filter   


( Читать дальше )

Backtrader-next и коннектор подключения к Quik (bn_quik)

Я завершил разработку коннектора bn_quik (репозиторий на GitHub) для интеграции с backtrader-next. Коннектор основан на моем модуле quik_python (репозиторий на GitHub). Теперь вы можете подключаться к Quik и осуществлять торговлю!

С чего начать?
  1. Зарегистрируйте демо-аккаунт Quik на сайте ARQA.
  2. Попробуйте свои силы на демо-версии.
  3. Ознакомьтесь с примерами использования коннектора в репозитории.
Немного о backtrader-next

Backtrader-next — это обновленная версия оригинального backtrader. Хотя модуль не мой, я активно его использую и могу выделить следующие преимущества:

  • Ускоренное тестирование: работает примерно в 4 раза быстрее, чем оригинальный backtrader.
  • Новые индикаторы: добавлены индикаторы Джона Эллерса, реализованные с использованием Numba для высокой производительности.
  • Улучшенная визуализация: графики, индикаторы, таблицы сделок и навигация по датам сделок реализованы на базе библиотеки TradingView.
  • Расширенная статистика: доступна как в тестовом формате (аналогично backtesting.py), так и в HTML-формате (похожем на quantstats).


( Читать дальше )
  • обсудить на форуме:
  • QUIK

Julia (Matlab) vs Python

Чистый и компактный синтаксис вместо нечитаемого питоновского месива из случайных префиксов/методов/функций pref.fun(x)/obj.meth(d)/fun(b, d), с разными названниями и случайными сокращениями. 
Julia (Matlab) vs Python


( Читать дальше )

Танцуем Numba

Пишешь код на python, а он тормозит и хочется взять и переписать на C++?
Не надо так! Современный С++ компилятор имеет под капотом LLVM, но современный python настолько мощный, что можно использовать тот же самый LLVM, чтобы получить скорость сопоставимую с C++. Вот типичный пример того, что на голом python будет работать мучительно долго: 

import time
import numba
import numpy as np

@numba.jit(nopython=True)
def calculate_max_drawdown(initial_cash: float, cashes: np.ndarray) -> float:
    """Расчет максимальной просадки"""
    peak = initial_cash
    max_dd = 0.0

    for cash in cashes:
        if cash > peak:
            peak = cash
        dd = (peak - cash) / peak
        if dd > max_dd:
            max_dd = dd

    return max_dd

# Вариант без Numba для сравнения
def calculate_max_drawdown_pure(initial_cash: float, cashes: np.ndarray) -> float:
    peak = initial_cash
    max_dd = 0.0

    for cash in cashes:
        if cash > peak:
            peak = cash
        dd = (peak - cash) / peak
        if dd > max_dd:
            max_dd = dd

    return max_dd

def test_calculate_max_drawdown():
    n = 1_000_000  # 1 миллион точек
    returns = np.


( Читать дальше )

Баффет был прав? Почему мой Python-скрипт «забраковал» Apple и нашел жемчужину в битых тачках.

Всем привет.

Я QA-инженер, в инвестициях уже 6 лет. Мой путь стандартный: сначала слушал «гуру», потом поумнел и собрал гигантскую таблицу в Excel. Я из тех, кто не покупает акцию, не посмотрев тренды выручки, маржинальности и ROIC за 5–10 лет.

 

 

В чем была моя личная боль:

На глубокий анализ одной компании по моему чек-листу (14 метрик в динамике) уходило около 2 часов. Забивать руками данные из Macrotrends в таблицу — то еще удовольствие. Самое обидное, когда в конце второго часа понимаешь, что компания — переоцененный шлак с падающей маржой, и время потрачено зря.

Еще одна боль — это «магия цифр» (это касается и книг и обучающих видео).
Книги и видео говорят: «Ищите рост выручки > 7% или ROA > 6.5%». Но почти никто не объясняет — почему? Откуда взялись эти цифры? Почему 7 и 6.5, а не 10 и 8 или не 5 и 3...

 

 

Что я накодил:

Баффет был прав? Почему мой Python-скрипт «забраковал» Apple и нашел жемчужину в битых тачках.
Написал сервис на FastAPI, который через API тянет отчетность и делает «Sanity Check» компании за 2 секунды. А вместо слепого следования догмам из книг и видео, я привязал все метрики к усредненным показателям компаний из S&P 500.

( Читать дальше )

Что такое фандинг арбитраж и как сделать автоматический поиск спредов для заработка

 

На крипторынке есть редкий класс стратегий, где не нужно угадывать направление цены. Нет анализа свечей, индикаторов или прочей тяжелой математики.

Одна из таких стратегий — арбитраж ставок финансирования (funding rate arbitrage).

Этот материал — не обещание лёгких денег. Это разбор реальной рабочей системы, которую я сначала писал для себя, а позже обернул в Telegram-бота. Ниже я разберу:

  • как именно зарабатываются деньги на арбитраже ставок финансирования

  • почему ручной арбитраж не работает

  • как устроена архитектура алгоритмической системы

  • как код собирает данные, считает спреды и фильтрует мусор;

  • какие риски остаются и как их контролировать.

Автоматизированная торговая система может кратко упростить поиск грамотных связок между биржами и присылать уведомления. Я обернул эту систему в телеграм бота @Fandyng_Bot, логику которого мы сегодня и разберём — от получения данных с нескольких бирж, до обработки этой информации и практической значимости.

Что такое funding rate и откуда берётся доход



( Читать дальше )

....все тэги
UPDONW
Новый дизайн