Комментарии пользователя Михаил Шардин

Мои комментарии:в блогах в форуме
Ответы мне:в блогах в форуме
Все комментарии: к моим постам
Похоже основной рост происходит ближе к концу кривой капитала
avatar
  • Сегодня в 06:59
  • Еще
Владимиров Владимир, ну мои расчёты могут быть первоначальным фильтром, а дальше уже ваша логика
avatar
  • Вчера в 04:20
  • Еще
Petrov, Я посчитал только для всех фьючерсов которые торгуются на Московской бирже. Через iss moex
avatar
  • Вчера в 04:18
  • Еще
Jack_the_singer, я сделал расчёты абсолютно для всех фьючерсов с одинаковыми начальными условиями
avatar
  • 26 мая 2026, 10:31
  • Еще
Jack_the_singer, и как вы эти минимумы и максимумы в реальной жизни искать будете?
avatar
  • 26 мая 2026, 10:24
  • Еще
Op_Man, насчёт вежливее обходительнее так это точно
avatar
  • 26 мая 2026, 04:49
  • Еще
МЕТОД №3: Динамическое потоковое обучение (Online Learning)

Переход от концепции пакетного обучения (Full-Batch) к непрерывному стримингу данных. Модель получает одну точку временного ряда, делает Out-of-Sample прогноз, узнает истинный ответ рынка и мгновенно корректирует параметры. Используется алгоритм Passive-Aggressive Regressor на базе стохастического градиентного спуска (SGD). Функция потерь определяется как epsilon-insensitive loss:

L = max(0, |y_hat_t — y_t| — epsilon)

  • Passive режим: Если абсолютная ошибка прогноза находится в пределах порога epsilon (L = 0), веса модели не изменяются (w_{t+1} = w_t).
  • Aggressive режим: Если ошибка превышает порога, модель производит мгновенную направленную коррекцию вектора весов (Error Correction), прямо пропорциональную величине ошибки.

Программная реализация онлайн-цикла (Python)

from sklearn.linear_model import PassiveAggressiveRegressor
from sklearn.preprocessing import StandardScaler

# Инициализация онлайн-модели и потокового скалера
model = PassiveAggressiveRegressor(C=1.0, epsilon=0.001, random_state=42)
scaler = StandardScaler()

for t in range(41, len(df)):
    X_t = df['close_log_return_lag_1'].iloc[t].values.reshape(-1, 1)
    y_t = df['close_log_return'].iloc[t]
   
    # Потоковое обновление параметров скалера
    scaler.partial_fit(X_t)
    X_t_scaled = scaler.transform(X_t)
   
    # Out-of-Sample прогноз ДО корректировки весов
    y_hat = model.predict(X_t_scaled)[0]
   
    # Шаг градиентной коррекции параметров модели на основе истинного y_t
    model.partial_fit(X_t_scaled, [y_t])

Статистические результаты: Точность направления (Directional Hit Rate) составила 50.41%. Распределение позиций: Long — 1071, Short — 976. Баланс сигналов приблизился к отношению 50/50, полностью ликвидировав лонг-сдвиг. Вектор весов непрерывно колеблется во времени, переключая модель между режимами Momentum (w > 0) и Mean Reversion (w < 0) без проклятия размерности.

 

МЕТОД №4: Обучение с подкреплением (Reinforcement Learning / Policy Gradient)

Моделирование торговой логики в рамках частично наблюдаемого Марковского процесса принятия решений (POMDP). Целью является прямая оптимизация параметров торговой политики (политики действий) без промежуточной оценки функции ценности.

4.1. Концепция Двурукого Бандита (Two-Armed Bandit)

Торговая среда интерпретируется как игровой автомат с двумя рычагами:

  • Рычаг 0 (Heads) — Открытие позиции Long.
  • Рычаг 1 (Tails) — Открытие позиции Short.
  • Награда (R_t) — При верном выборе направления R_t = +1.0; в противном случае R_t = -1.0.

Используется алгоритм REINFORCE (Policy Gradient). Обучаемые параметры нейросети (логиты действий) трансформируются через слой Softmax в вероятностное распределение действий pi_theta(a|s).

4.2. Ловушка Vanilla REINFORCE и локальный оптимум

В стационарных условиях (тренд вверх, монета падает орлом в 70% случаев) базовый алгоритм REINFORCE максимизирует вероятность прибыльного действия: pi(a_long) -> 1.0. При резком наступлении смены режима (вероятность падения орла падает до 20%, а шорт становится прибыльным в 80% случаев), Vanilla-агент полностью теряет способность к адаптации. Так как вероятность шорта была сведена к нулю, фаза исследования среды (Exploration) прекращается. Агент продолжает совершать 100% лонг-сделок, уходя в глубокую просадку.

4.3. Архитектурное решение: Регуляризация энтропии Шеннона (Shannon Entropy)

Для сохранения уровня исследования (Exploration) и предотвращения преждевременного коллапса распределения политики, в функцию потерь вводится штраф за чрезмерную уверенность — энтропия Шеннона H(pi):

H(pi) = — SUM_{i} pi(a_i) * log pi(a_i)
Loss_total = Loss_policy — beta * H(pi)
Loss_total = -log pi_theta(a_t | s_t) * R_t — beta * H(pi)

Где beta (Entropy Beta) — гиперпараметр регуляризации, определяющий вес компоненты исследования.

Реализация кастомного шага обучения на PyTorch

import torch
import torch.nn as nn
from torch.distributions import Categorical

class PolicyNetwork(nn.Module):
    def __init__(self):
        super(PolicyNetwork, self).__init__()
        self.theta = nn.Parameter(torch.zeros(2))
       
    def forward(self):
        return torch.softmax(self.theta, dim=0)

def train_rl_step(policy, optimizer, action_index, reward, beta=0.5):
    probs = policy()
    m = Categorical(probs)
   
    # Расчет базового лосса политики: -log(prob) * Reward
    policy_loss = -m.log_prob(torch.tensor(action_index)) * reward
   
    # Расчет дискретной энтропии распределения
    entropy_loss = m.entropy()
   
    # Комбинированный функционал потерь
    total_loss = policy_loss — beta * entropy_loss
   
    optimizer.zero_grad()
    total_loss.backward()
    optimizer.step()

Результаты симуляции смены режима (эпизод 1000): Vanilla REINFORCE застревает на вероятности лонга 100% и полностью сливает профит. Модель с регуляризацией энтропии удерживает базовую вероятность лонга на уровне ~0.93, оставляя стабильные 7% на случайное сэмплирование коротких позиций. При наступлении смены режима скрытые шорты начинают приносить профит (R_t = +1.0). Градиент мгновенно считывает изменение знака награды, и модель за 150 шагов полностью перестраивает логиты, адаптируясь под медвежью фазу.

 

Сравнение целевых функций: Online Learning против Reinforcement Learning

Критерий

Online Learning (Passive-Aggressive SGD)

Reinforcement Learning (Policy Gradient + Entropy)

Горизонт планирования

Локальный, «жадный» (минимизация ошибки на шаге t+1).

Глобальный, долгосрочный (максимизация кумулятивной дисконтированной награды).

Целевая функция

Точность прогнозирования движения знака цены.

Траектория геометрической доходности и минимизация Max Drawdown.

Поведение модели

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

Агент способен временно удерживать позицию, фиксировать микро-убытки или выходить в кэш, если траектория этого действия максимизирует итоговую доходность портфеля на всей дистанции.

 

avatar
  • 25 мая 2026, 05:52
  • Еще

Фёдор Г., прислали (Бомбасик):

Технический анализ методов адаптации торговых систем к смене парадигмы рынка (Regime Changes)

При проектировании алгоритмических стратегий для высокоэффективных и зашумленных финансовых рынков (базовый актив — BTC/USDT) ключевым препятствием является нестационарность временного ряда логарифмических доходностей:

r_t = ln(P_t / P_{t-1})

Математическое ожидание, дисперсия и автокорреляционные функции распределения непрерывно мутируют во времени. Классические статические модели машинного обучения (Supervised Learning), обученные пакетным методом (Full-Batch) на фиксированном историческом интервале, демонстрируют неспособность адаптироваться к структурным сдвигам. Это ведет к накоплению системной ошибки (Bias) и критическому росту максимальной просадки (Max Drawdown).

В данном документе представлен подробный разбор четырех протестированных методов адаптации, их математический аппарат, результаты бэктестов и программная реализация на Python/PyTorch.

 

МЕТОД №1: Статический бенчмарк AR(1) и метод скользящего окна (Sliding Window)

1.1. Базовая неадаптивная модель

В качестве отправной точки используется авторегрессионная модель первого порядка, где предиктором выступает лагированная доходность за предыдущий шаг:

r_hat_{t+1} = w * r_{t-1} + b

При обучении методом наименьших квадратов (OLS) на всей исторической выборке получены следующие параметры:

  • Вес (w): -0.02902972 (контр-трендовый характер)
  • Свободный член (b): +0.00140446

Критический дефект модели: Свободный член b по модулю существенно превосходит динамическую компоненту w * r_{t-1}. Как следствие, математическое ожидание прогноза практически всегда строго больше нуля. Распределение сигналов показало: Long — 1991 день, Short — 104 дня. Модель выродилась в пассивную стратегию удержание актива (Buy & Hold) и полностью сливает капитал в периоды затяжного медвежьего тренда.

1.2. Модификация: Скользящее окно (Sliding Window)

Для придания модели локальной гибкости применяется подход переобучения на скользящем историческом окне фиксированной длины k. Оптимизация параметров OLS производится на интервале [t-k, t] для прогнозирования точки t+1.

Недостатки подхода: Экстремальная чувствительность к размеру окна k (короткое окно ловит шум, длинное — запаздывает) и полное стирание макро-памяти ряда за пределами выбранного интервала.

 

МЕТОД №2: Кодирование скрытых состояний (Feature Engineering / Memory)

Вместо подачи сырых, зашумленных лагов, история доходностей сжимается в низкоразмерное скрытое состояние (Hidden State), выступающее в роли рыночной «памяти».

2.1. Однофакторная модель памяти (Rolling Mean)

В качестве предиктора выступает простое скользящее среднее логарифмических доходностей за окно N=40:

X_t = (1 / N) * SUM_{i=1}^{N} r_{t-i}
r_hat_{t+1} = w * X_t + b

Результаты бэктеста: Вес линейной регрессии инвертировался в положительное состояние (w = +0.0898), превратив модель в Momentum-стратегию (следование за трендом). Количество шорт-сигналов увеличилось со 104 до 380, защищая капитал во время затяжного даунтренда.

2.2. Моделирование относительной памяти (Relative Memory)

Двухфакторная архитектура, оценивающая спред между локальным ценовым импульсом (быстрая компонента) и долгосрочной памятью рынка (медленная компонента):

r_hat_{t+1} = w_1 * r_{t-1} + w_2 * ((1 / N) * SUM_{i=1}^{N} r_{t-i}) + b

Полученные параметры оптимизации:

  • w_1 (Локальный лаг) = -0.0322
  • w_2 (Скользящее среднее) = +0.0906

Вывод: Модель выстроила устойчивую структуру — взвешенный арбитраж между трендовой силой макро-памяти и контр-трендовым свойством локального микро-шума. Количество шорт-сигналов возросло до 549, обеспечивая стабильный рост эквити на фазах слома тренда.

 

avatar
  • 25 мая 2026, 05:52
  • Еще

cerberus, я частное лицо, не представитель фонда или брокера.

Что-то получается, что-то нет. Я пишу об этом открыто. Про какие-то свои эксперименты

avatar
  • 23 мая 2026, 16:10
  • Еще

cerberus, булочки моя слабость. А про алгоритмы — исследовательская работа.

Успешность торговли я в комментариях не доказываю и сигналы не продаю.

Если тема неинтересна — можно просто пройти мимо.

avatar
  • 23 мая 2026, 15:49
  • Еще
Вы ещё Фьючерсный контракт на ставку RUSFAR не видели. Там комиссия как доля от ГО 4,16%

avatar
  • 17 мая 2026, 12:15
  • Еще

Чуть сместился на строчку.

www.moex.com/ru/derivatives/maininfo.aspx

Можно скрипт написать он из тысяч вариантов найдёт все соотношения и по среденим оборотам и по сборам
avatar
  • 16 мая 2026, 19:41
  • Еще
Выберите надежного брокера, чтобы начать зарабатывать на бирже:
....все тэги
UPDONW
Новый дизайн