Принято считать, что валюты делятся по регионам: развитые, развивающиеся, сырьевые. Но рынок часто плевать хотел на эти ярлыки. Я решил проверить, как валюты группируются на самом деле, если скормить алгоритму машинного обучения сухие цифры, а не географические атласы.
Использовал метод K-Means (обучение без учителя) и данные об абсолютных курсах с платформы abscur.ru. Почему это важно? Потому что анализ пар (USD/RUB, EUR/USD) всегда искажен волатильностью доллара. Абсолютные курсы дают чистую картину «характера» каждой валюты.
Я составил «поведенческий паспорт» для 45 валют по 4 метрикам:
CAGR (доходность) — куда идет тренд.
Волатильность — насколько сильно трясет.
Max Drawdown (MDD) — глубина «ямы» при кризисе.
Recovery Days — сколько дней вы будете сидеть в убытке, прежде чем цена вернется к пику.
Алгоритм выделил группы, которые сильно отличаются по эффективности капитала:
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Данные были скачаны с Мосбирже с помощью

<code>Strategy R2_Soldiers sma_filter True sma_period 150 volume_pct
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Данные были скачаны с Мосбирже с помощью

Strategy R1_LinearRegression lr_period 180 lr_deviation 2.5 sma_filter
Я завершил разработку коннектора bn_quik (репозиторий на GitHub) для интеграции с backtrader-next. Коннектор основан на моем модуле quik_python (репозиторий на GitHub). Теперь вы можете подключаться к Quik и осуществлять торговлю!
С чего начать?Backtrader-next — это обновленная версия оригинального backtrader. Хотя модуль не мой, я активно его использую и могу выделить следующие преимущества:

Пишешь код на 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.
На крипторынке есть редкий класс стратегий, где не нужно угадывать направление цены. Нет анализа свечей, индикаторов или прочей тяжелой математики.
Одна из таких стратегий — арбитраж ставок финансирования (funding rate arbitrage).
Этот материал — не обещание лёгких денег. Это разбор реальной рабочей системы, которую я сначала писал для себя, а позже обернул в Telegram-бота. Ниже я разберу:
как именно зарабатываются деньги на арбитраже ставок финансирования
почему ручной арбитраж не работает
как устроена архитектура алгоритмической системы
как код собирает данные, считает спреды и фильтрует мусор;
какие риски остаются и как их контролировать.
Автоматизированная торговая система может кратко упростить поиск грамотных связок между биржами и присылать уведомления. Я обернул эту систему в телеграм бота @Fandyng_Bot, логику которого мы сегодня и разберём — от получения данных с нескольких бирж, до обработки этой информации и практической значимости.
Приложение github.com/Alex-Shur/moex-downloader

Привет, трейдеры!
Представляю вам MOEX-Downloader — python приложение для скачивания свечных исторических данных с MOEX для дельнейшего использования с библиотеками типа pandas и тестирование стратегий на python.
Это готовое приложение с UIна PyQt6, позволяющее в пару кликов:
- выбрать тикеры (акции или фьючерсы),
- скачать historical candles (OHLCV),
- сохранить данные в CSV,
- обновить список инструментов,
- и не смотреть в консоль.
Установка и запуск — дело пары команд для тех, кто хоть чуть знаком с Python-средами
После запуска — выбираешь тикеры, таймфреймы, и получаешь CSV-таблицы OHLCV для своих стратегий.
Параметры дат
Start — начальная дата, с которой приложение будет скачивать свечные данные.
End — конечная дата. Если поле пустое, данные будут скачаны до последнего доступного момента.
Обновление данных при повторном запуске
Если вы повторно запускаете скачивание с теми же параметрами:
Цель этой статьи — максимально подробно и практично разобрать реальный Python‑проект автоматического трейдинга. Это не концепт, а рабочий бот, который: непрерывно анализирует рынок Binance Futures, ищет сигналы по открытому интересу (Open Interest), применяет набор защитных фильтров, работает с множеством пользователей одновременно, управляется через Telegram‑интерфейс и при необходимости открывает реальные сделки через API биржи BingX.
Далее я последовательно разберу всю логику и все функции основного файла main.py, объясняя, как и зачем они реализованы именно так.
Архитектурно проект разделён на два слоя: Управляющий слой — получение данных, расчёт сигналов, фильтры, Telegram‑интерфейс, логика пользователей и принятие решений. Исполнительный слой — работа с торговым API BingX: подпись запросов, установка плеча, открытие ордеров, трейлинг.
Ключевая идея — вся торговая логика должна быть независима от конкретной биржи. В main.py мы оперируем функции вроде place_market_order(), а не HTTP‑запросами. Клиент для биржи я написал самостоятельно и использую его во всех своих проектах и статьях. Ссылка на файла проекта, включая этот клиент: github