Блог им. empenoso

Раздельное тестирование на скриптовом языке TradingView выходов торговой системы: обычный трейлинг стоп и ATR стоп

В трейдинге акцент часто смещён в сторону поиска идеальных входов, тогда как стратегии выхода остаются в тени. Между тем именно выходы определяют соотношение прибыли и убытков. Раздельное тестирование помогает изолировать входы и оценить, как разные методы управления позицией влияют на результат. В этой статье входы будут выполняться с 50% вероятностью — это устраняет фактор предсказуемости и позволяет объективно сравнивать эффективность различных стратегий выхода.

В статье тестирую две стратегии трейлинг-стопов для Московской биржи на фьючерсном контракте USD/RUB (Si) на часовом таймфрейме, используя язык Pine Script в TradingView.

 Под капотом Pine Script: как устроен и для чего используется язык TradingView

Цель исследования и описание общего подхода

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

Цель тестирования — проверить, действительно ли адаптивный подход оказывается эффективнее на волатильном рынке фьючерса Si, благодаря способности гибко реагировать на изменчивую динамику цены.

Для сравнения двух методов применяются одни и те же условия: используется фьючерсный контракт Si (USD/RUB) с часовым таймфреймом, комиссия составляет 0,04% на сделку, учитывается проскальзывание в размере 10 тиков, а торговля ведётся одним контрактом.

Обзор первой стратегии: простой трейлинг-стоп

Стратегия использует фиксированный процентный трейлинг-стоп. После случайного входа (лонг или шорт с 50% вероятностью каждые 24 часа) стоп-уровень постоянно пересчитывается для лонга: от максимальной достигнутой цены, для шорта: от минимальной достигнутой цены.

Основная идея в коде:

<code class="javascript">// Установка начального стопа при входе
trailingStopLong := close * (1 - trailingStopOffset / 100)

// Обновление стопа для лонга
highestLongPrice := math.max(highestLongPrice, close)
trailingStopLong := highestLongPrice * (1 - trailingStopOffset / 100)</code>
Раздельное тестирование на скриптовом языке TradingView выходов торговой системы: обычный трейлинг стоп и ATR стоп

Преимущества:

  • Простота реализации и понимания

  • Предсказуемый фиксированный риск

  • Хорошо работает в трендах

Недостатки:

  • Не адаптируется к волатильности рынка

  • Может преждевременно закрывать позиции при повышенной волатильности

  • Требует ручной настройки параметра под каждый инструмент

Полный код ниже (вся коллекция на GitHub):

<code class="javascript">// === Описание стратегии ===
// Эта стратегия основана на случайных входах в рынок с использованием простого трейлинг-стопа для управления рисками.
// Основные особенности:
// 1. Случайные входы: Стратегия совершает входы в длинные (Long) или короткие (Short) позиции с заданной вероятностью
//    каждые N баров. Частота входов регулируется параметром "Частота входов (каждые N баров)".
// 2. Генерация направлений: Для определения направления входа используется генератор случайных чисел. 
//    Если случайное значение меньше установленной вероятности входа в Long, открывается длинная позиция, иначе — короткая.
// 3. Простой трейлинг-стоп: После входа в позицию устанавливается трейлинг-стоп на заданном расстоянии в процентах от цены.
//    Трейлинг-стоп обновляется при движении цены в благоприятную сторону, защищая прибыль и минимизируя убытки.
// 4. Гибкость настроек: Пользователь может задать вероятность входа в Long, частоту входов и размер трейлинг-стопа.
// 5. Отображение трейлинг-стопа: На графике отображаются уровни трейлинг-стопов для активных позиций, что позволяет
//    визуально контролировать ход торговли.

// Михаил Шардин, https://shardin.name/?utm_source=tradingview

//@version=6
strategy("Случайные входы + простой трейлинг стоп", 
     overlay=true,
     commission_type=strategy.commission.percent,   // Тип комиссии: процент
     commission_value=0.04,                         // Значение комиссии: 0.04%
     slippage=10,                                   // Проскальзывание в тиках
     process_orders_on_close=true,
     default_qty_type=strategy.fixed,               // Фиксированный размер позиции
     default_qty_value=1,                           // 1 контракт/лот
     initial_capital=500000)                        // Начальный капитал

// === Параметры ===
entryFrequency = input.int(24, "Частота входов (каждые N баров)", minval=1)
longProbability = input.int(50, "Вероятность входа в Long (%)", minval=0, maxval=100)
trailingStopOffset = input.float(1.5, "Отступ трейлинг-стопа (%)", step=0.1, minval=0.1)

// === Сигнал на вход ===
entrySignal = bar_index % entryFrequency == 0 and bar_index > 0  // Игнорируем первый бар

// === Гарантированный рандом ===  
randValue = math.random(0, 100)  // Генерация случайного числа от 0 до 100
randDirection = randValue < longProbability ? 1 : -1  // 1 = Long, -1 = Short

// === Переменные для трейлинг-стопов ===
var float highestLongPrice = na
var float lowestShortPrice = na
var float trailingStopLong = na
var float trailingStopShort = na

// === Условие входа ===
longCondition = entrySignal and randDirection == 1 and strategy.position_size == 0
shortCondition = entrySignal and randDirection == -1 and strategy.position_size == 0

// === Вход в позиции ===
if (longCondition)
    strategy.entry("Long", strategy.long)
    highestLongPrice := close
    trailingStopLong := close * (1 - trailingStopOffset / 100)

if (shortCondition)
    strategy.entry("Short", strategy.short)
    lowestShortPrice := close
    trailingStopShort := close * (1 + trailingStopOffset / 100)

// === Обновление трейлинг-стопа ===
if (strategy.position_size > 0)  // Если открыта длинная позиция
    highestLongPrice := math.max(highestLongPrice, close)
    trailingStopLong := highestLongPrice * (1 - trailingStopOffset / 100)
    
    if (close <= trailingStopLong)  // Закрытие по трейлинг-стопу
        strategy.close("Long")

if (strategy.position_size < 0)  // Если открыта короткая позиция
    lowestShortPrice := math.min(lowestShortPrice, close)
    trailingStopShort := lowestShortPrice * (1 + trailingStopOffset / 100)
    
    if (close >= trailingStopShort)  // Закрытие по трейлинг-стопу
        strategy.close("Short")

// === Отображение трейлинг-стопов ===
plot(strategy.position_size > 0 ? trailingStopLong : na, title="Лонг трейлинг-стоп", color=color.green, linewidth=2, style=plot.style_linebr)
plot(strategy.position_size < 0 ? trailingStopShort : na, title="Шорт трейлинг-стоп", color=color.red, linewidth=2, style=plot.style_linebr)

// === Информация для отладки ===
if (barstate.islast)
    label.new(bar_index, high, 
         "Текущий индекс бара: " + str.tostring(bar_index) + 
         "\nСледующая сделка через: " + str.tostring(entryFrequency - (bar_index % entryFrequency)) + " баров" +
         "\nНаправление следующей: " + (randDirection == 1 ? "LONG" : "SHORT") +
         "\nТекущая позиция: " + (strategy.position_size > 0 ? "LONG" : strategy.position_size < 0 ? "SHORT" : "НЕТ"), 
         color=color.blue, style=label.style_label_down)</code>

Обзор второй стратегии: ATR трейлинг-стоп

ATR-трейлинг динамически адаптируется к рыночной волатильности. При каждом входе (лонг/шорт с 50% вероятностью) стоп рассчитывается для лонга: цена закрытия - (ATR(14) × 4) для шорта: цена закрытия + (ATR(14) × 4).

Адаптивный метод выхода: трейлинг-стоп на основе ATR учитывает волатильность инструмента. При росте колебаний стоп отодвигается дальше, при затухании — приближается. Это помогает держать тренд и снижать количество ложных выходов на «шуме».

Основная идея в коде:

<code class="javascript">// Расчет ATR
atr = ta.atr(atrPeriod)
// Установка ATR-стопа
trailingStopLong := close - atr * atrMultiplier
trailingStopShort := close + atr * atrMultiplier
// Адаптивное обновление
trailingStopLong := math.max(trailingStopLong, close - atr * atrMultiplier)</code>
Раздельное тестирование на скриптовом языке TradingView выходов торговой системы: обычный трейлинг стоп и ATR стоп

Преимущества:

  • Автоматическая подстройка под текущую волатильность

  • Шире стопы при высокой волатильности (меньше ложных выходов)

  • Уже стопы при спокойном рынке (лучше защищает прибыль)

Недостатки:

  • Сложнее в настройке (нужно подбирать период и множитель)

  • Может давать слишком широкие стопы в периоды экстремальной волатильности

Полный код ниже (вся коллекция на GitHub):

<code class="javascript">// === Описание стратегии ===
// Эта стратегия основана на случайных входах в рынок с использованием трейлинг-стопов для управления рисками.
// Основные особенности:
// 1. Случайные входы: Стратегия генерирует случайные сигналы для входа в длинные (Long) или короткие (Short) позиции
//    с заданной вероятностью. Частота входов регулируется параметром "Частота входов (каждые N баров)".
// 2. Трейлинг-стоп: Для управления рисками используется трейлинг-стоп, который рассчитывается на основе ATR (Average True Range)
//    и заданного множителя. Трейлинг-стоп автоматически обновляется при движении цены в пользу позиции.
// 3. Гибкость настроек: Пользователь может настроить вероятность входа в длинную позицию, период ATR и множитель для трейлинг-стопа.

// Михаил Шардин, https://shardin.name/?utm_source=tradingview

//@version=6
strategy("Случайные входы + ATR трейлинг стоп", 
     overlay=true,
     commission_type=strategy.commission.percent,   // Тип комиссии: процент
     commission_value=0.04,                         // Значение комиссии: 0.04%
     slippage=10,                                   // Проскальзывание в тиках
     process_orders_on_close=true,
     default_qty_type=strategy.fixed,               // Фиксированный размер позиции
     default_qty_value=1,                           // 1 контракт/лот
     initial_capital=500000)                        // Начальный капитал

// === Параметры ===
entryFrequency = input.int(24, "Частота входов (каждые N баров)", minval=1)
longProbability = input.int(50, "Вероятность входа в Long (%)", minval=0, maxval=100)
atrPeriod = input.int(14, "Период ATR")
atrMultiplier = input.float(4.0, "Множитель ATR", step=0.1, minval=0.1)

// === ATR для трейлинг-стопов ===
atr = ta.atr(atrPeriod)

// === Сигнал на вход ===
entrySignal = bar_index % entryFrequency == 0 and bar_index > 0  // Игнорируем первый бар

// === Гарантированный рандом ===  
randValue = math.random(0, 100)  // Генерация случайного числа от 0 до 100
randDirection = randValue < longProbability ? 1 : -1  // 1 = Long, -1 = Short

// === Условие входа ===
longCondition = entrySignal and randDirection == 1 and strategy.position_size == 0
shortCondition = entrySignal and randDirection == -1 and strategy.position_size == 0

// === Переменные для трейлинг-стопов ===
var float trailingStopLong = na
var float trailingStopShort = na

// === Вход в позиции ===
if (longCondition)
    strategy.entry("Long", strategy.long)
    trailingStopLong := close - atr * atrMultiplier
    // label.new(bar_index, high, "Открыт LONG", color=color.green, style=label.style_label_down, textcolor=color.white)

if (shortCondition)
    strategy.entry("Short", strategy.short)
    trailingStopShort := close + atr * atrMultiplier
    // label.new(bar_index, low, "Открыт SHORT", color=color.red, style=label.style_label_up, textcolor=color.white)

// === Обновление трейлинг-стопа ===
if (strategy.position_size > 0)  // Если открыта длинная позиция
    trailingStopLong := math.max(trailingStopLong, close - atr * atrMultiplier)
    if (close <= trailingStopLong)  // Закрытие по трейлинг-стопу
        strategy.close("Long")
        // label.new(bar_index, high, "Закрыт LONG", color=color.green, style=label.style_label_down, textcolor=color.white)

if (strategy.position_size < 0)  // Если открыта короткая позиция
    trailingStopShort := math.min(trailingStopShort, close + atr * atrMultiplier)
    if (close >= trailingStopShort)  // Закрытие по трейлинг-стопу
        strategy.close("Short")
        // label.new(bar_index, low, "Закрыт SHORT", color=color.red, style=label.style_label_up, textcolor=color.white)

// === Отображение трейлинг-стопов ===
plot(strategy.position_size > 0 ? trailingStopLong : na, title="Лонг трейлинг-стоп", color=color.green, linewidth=2, style=plot.style_linebr)
plot(strategy.position_size < 0 ? trailingStopShort : na, title="Шорт трейлинг-стоп", color=color.red, linewidth=2, style=plot.style_linebr)

// === Информация для отладки ===
if (barstate.islast)
    label.new(bar_index, high, 
         "Текущий индекс бара: " + str.tostring(bar_index) + 
         "\nСледующая сделка через: " + str.tostring(entryFrequency - (bar_index % entryFrequency)) + " баров" +
         "\nНаправление следующей: " + (randDirection == 1 ? "LONG" : "SHORT") +
         "\nТекущая позиция: " + (strategy.position_size > 0 ? "LONG" : strategy.position_size < 0 ? "SHORT" : "НЕТ"), 
         color=color.blue, style=label.style_label_down)</code>

Методика тестирования

Тестирование проводилось на часовом таймфрейме фьючерса Si (USD/RUB) за период с 29.12.2023 по 21.04.2025. Это 480 дней или 11 520 часовых баров. Оценивались ключевые метрики:

  • Общие ПР/УБ: Итоговый финансовый результат стратегии выхода.

  • Макс. просадка средств: Максимальное падение эквити от пика, показатель риска.

  • Всего сделок: Общее количество для статистической значимости.

  • Прибыльные сделки, %: Доля выигрышных выходов.

  • Фактор прибыли: Отношение валовой прибыли к валовому убытку (эффективность).

Поскольку входы случайны (50/50), различия в этих показателях напрямую демонстрируют эффективность именно стратегии выхода. Это позволяет объективно сравнить, какой подход — жесткий процентный стоп или адаптивный ATR — лучше управляет позицией в заданных условиях.

Результаты и сравнение

Раздельное тестирование на скриптовом языке TradingView выходов торговой системы: обычный трейлинг стоп и ATR стопПростой трейлинг (1.5%)

Сравним ключевые показатели обеих стратегий выхода при идентичных случайных входах на фьючерсе Si за период ~16 месяцев:

Метрика

Простой трейлинг (1.5%)

ATR трейлинг (4xATR)

Общие ПР/УБ

-2.79%

+6.43%

Макс. просадка средств

5.00%

1.03%

Всего сделок

62

71

Прибыльные сделки, %

30.65%

50.70%

Фактор прибыли

0.705

2.305

Раздельное тестирование на скриптовом языке TradingView выходов торговой системы: обычный трейлинг стоп и ATR стопATR трейлинг (4xATR)

Результаты однозначно показывают преимущество адаптивного ATR-трейлинга на волатильном фьючерсе Si.

  • Где ATR-выход был лучше: практически по всем параметрам. ATR-стоп не только принёс прибыль (+6.43%) против убытка простого стопа (-2.79%), но и показал в 5 раз меньшую максимальную просадку (1.03% vs 5.00%). Значительно выше процент прибыльных сделок (50.70% vs 30.65%) и фактор прибыли (2.305 vs 0.705), что говорит о лучшем удержании прибыльных позиций и контроле убытков.

  • Где выигрывает простой трейлинг: в данном тесте – нигде. Его единственное преимущество простота – не компенсировало неспособность адаптироваться.

  • Реакция на волатильность: фиксированный стоп в 1.5%, вероятно, был слишком узким для волатильности Si, приводя к частым преждевременным выходам. ATR-стоп, динамически расширяясь и сужаясь вместе с рынком, позволил эффективнее «пересиживать» локальные коррекции и удерживать трендовые движения, что и отразилось на итоговой прибыли и просадке.

Выводы

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

Как показали результаты для волатильного фьючерса Si, ATR-трейлинг предпочтительнее в условиях высокой изменчивости рынка. Его способность адаптивно расширять и сужать стоп помогает удерживать тренды и фильтровать рыночный шум, что критично для улучшения итогового ПР/УБ.

Однако простота фиксированного стопа может быть привлекательной. Это наводит на мысль о потенциале гибридных подходов, сочетающих преимущества обоих методов, что заслуживает отдельного исследования.

Автор: Михаил Шардин
🔗 Моя онлайн-визитка
📢 Telegram «Умный Дом Инвестора»

22 апреля 2025 г.

5.9К | ★10
34 комментария

VLTorgovie, да, классическая модель трейлинга действительно включает эти параметры.

Я в своей версии реализовал это через Pine Script, и всё прозрачно — можно посмотреть, как работает логика, где формируются уровни, и когда именно идёт смещение.

Главное отличие в том, что ваше мнение субъективно («не нравится, не использую»), а у меня — проверяемая и воспроизводимая реализация с открытым исходником.

VLTorgovie, если вы действительно проводили тесты на 43 фьючерсах ММВБ — это здорово.

Что касается SI и стопа 1.5% — он использовался как условный пример, чтобы показать механику. Оптимальность параметров — отдельная тема, которая, как вы правильно заметили, может сильно зависеть от инструмента и волатильности.

Михаил Шардин, лень разбираться в синтаксисе оператора этого языка, меняется ли в действительности стоп в 1,5% с шагом 0,1% или нет.
Если не меняется, то вполне возможна ситуация, когда стоп в 3,5%, например, побьёт адаптивный трейлинг-стоп по результату.
avatar
Давно было, когда только начинал искать ТС, поэтому чисел-цифр оценок сравнения уж и не вспомню, но я тоже сравнивал процентный и адаптивный трейлинг. У меня такой разницы не получалось, адаптивный получше, но не настолько как у вас. У вас на процентном просто крест надо ставить.
Но были отличия от вашего способа.
1.Я не делал со случайными входами. Я сравнивал реверсивные, вход в лонг там где выход из шорта и вход в щорт где выход из лонга. Случайные входы, по крайней мере при таком малом количестве сделок тоже могут сделать некорректным сравнение. Надо для чистоты хотя бы несколько генераций случайных ( да и подобрать параметры чтобы было равное количество сделок).
2.Я делал не по ценам закрытия, трейлинг отсчитывался от макс/мин цены и входы/выходы тоже не по ценам закрытия а по уровням трейлингов ( для больших стопов как у вас это не так критично, но чем меньше размер стопа тем это будет критичней).
3. Адаптивный по АТР  трейлинг у вас какой то «неправильный». У классического не будет таких же как на процентном горизонтальных полок как у вас на графике ( у вас размер адаптивного стопа фиксируется что ли на точке экстремальной цены закрытия....).
avatar
Большой Брат, хочу пояснить механику работы адаптивного трейлинга в этом скрипте.

В моей реализации адаптивный трейлинг-стоп работает по следующему принципу:

  1. При открытии позиции устанавливается начальный трейлинг-стоп на уровне: close - atr * atrMultiplier для лонгов или close + atr * atrMultiplier для шортов.
  2. Далее, трейлинг обновляется при движении цены в прибыльном направлении:
    • Для лонгов: trailingStopLong := math.max(trailingStopLong, close - atr * atrMultiplier)
    • Для шортов: trailingStopShort := math.min(trailingStopShort, close + atr * atrMultiplier)

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

Классический адаптивный трейлинг может быть реализован по-разному. Если вы предпочитаете версию, где трейлинг постоянно «плавает» вместе с ATR даже при боковом движении (без горизонтальных полок), можно модифицировать код, убрав функции math.max и math.min, и просто пересчитывать трейлинг каждый бар как close ± atr * atrMultiplier.

Текущая реализация была выбрана осознанно, так как она обеспечивает более консервативное управление позицией — трейлинг-стоп никогда не отодвигается от достигнутой прибыли.

Михаил Шардин, Понятно. Я код не читал. Я хренею сразу с кривого «творца» меню когда нужно чтобы посмотреть прокручивать вбок тем более когда весь скрипт по высоте не помещается.
avatar
@VLTorgovie, а куда все ваши комментарии пропали?
Эх, на заре своей алготорговли тоже баловался трейлинг-стопами. На практике выяснилось, что слишком сильно снижают доходность систем. Но ностальгические воспоминания всколыхнулись :)
avatar
Антон Иванов, а сейчас как делаете?
Михаил Шардин, сейчас стопов и тейк-профитов не использую вообще.
avatar
Антон Иванов, а с просадками как боретесь?
Михаил Шардин, я с ними не борюсь, я с ними смиряюсь. Это неизбежные этапы торгового процесса, я эквити без просадок ни у кого не видел. Разве что HFT, но мне такая торговля недоступна. 
avatar
 И сам подход брать случайные места входов тоже вызывает сомнения в последующей полезности. В какой-то ТС входы происходят при каких-то условиях, то есть некоторое время после поведение рынка не вполне случайное. Соответственно статистика стопов получится иная, чем если брать все подряд ситуации.
avatar
Три тренинга в одном с разными отступами
avatar
Perl, что вы имеете в виду?
Михаил Шардин, цикл в цикле, один пол процента, второй 3% и третий 5%.
Пераый начинает как стоп защитный, второй или третий срабатывает.
Точка входа на развороте, если войдёшь.
Пераый стоп стоит и если не сработал он стоит и второй встанет повыше, тот уберется. Пока в безубытке, потом третий, профит и если не упадёт вручную продать в канале, где там.
Как запрограммировать
avatar
Perl, спасибо

господи, вы дебилы не, акции идет к себестоиомсти 
кто умный тот берет, 

вы считаете свою оценку,  дорого богата эта ваша оценка стоимости 
хотите стабильности, физическое золото и доллары в погреб 
все остальное в 21 веке 

avatar

Skifan, меня вот удивляет, что ребята «инвесторы» не видят компании которые стрельнут
В РФ 

ВЫ серьезно, не понимаете как обычные экономические процессы развиваются, и куда будет двигаться капиталл


Тогда РБК это ваш уровень, слушайте дальше  ) 

avatar
Skifan, вы сам с собой диалог выстраиваете? Только не могу понять — спорите или соглашаетесь?
Михаил Шардин, мир обычно к согласию приходит, а спор рождает истину ))))
avatar
Михаил Шардин, научись считать инфляцию, и давай бахнем, чтоб все закончилось 

avatar

не хочу ругаться, не до тебя если честно 

за пацанов 

avatar
Михаил, скажите пожалуйста, а файлики из этого поста smart-lab.ru/blog/1073200.php#comments с выступлением с конференции можно ли где-то скачать? Жаль, но я не программист совсем…   
avatar
Бомж-спекуль, ответил вам в комментарии к тому посту
Михаил Шардин, спасибо большое!
avatar
Михаил Шардин, запросила, но автоответа нет, ну и доступа тоже(
avatar
Бомж-спекуль, по утрам только отвечает скрипт
Я делал, куьуа только работает, 3 круга, малый стоп подтягивался на последний третий. В день поднимался, менял отступы. Малый подьяг вался только на третий и там срабатывал. Но вход тяжёлый.
Шпильки, сопли вышибают стопы и малый 0,3% делал.
Если все норм он повезёт хорошо.
Потом забросил.
Роботов нет
avatar
На зм круге первый вкл и профит.
Обычно срабатывал.
Есть Параболик робот, этот понравился.
Но роботы в прибыль не работают, на ме те топчатся, но немного в минус, плюс бывает.
Роботы не работают.
Нужен канальный робот автотрейда autotreid на марте есть из него сделать.

Пожалуйста.
avatar

Читайте на SMART-LAB:
🚀 Cеребро на исторических максимумах: пузырь или новая эра для металла?
Цена серебра обновила исторический рекорд, торговавшись на уровне $94,21 за тройскую унцию в январе 2026 года.    Рост за последние два года...
Фото
Обзор новых размещений на рынке ВДО
На фоне волны дефолтов сектор ВДО позволяет зафиксировать повышенную доходность, однако требует более тщательного анализа финансовой...
✅ Займер сменил статус на МКК
Теперь компания зарегистрирована в ЕГРЮЛ как ПАО МКК “Займер”. Эта перерегистрация стала логичным следствием процесса смены вида МФК “Займер” на...
Фото
Сбер РПБУ 2025 г. - дешевле было только в 2022 году
Сбер опубликовал результаты по РПБУ за 2025 год Чистая прибыль за 2025 год составила 1,69 трлн руб. (+8,4% год к году). В декабре 126 млрд руб....

теги блога Михаил Шардин

....все тэги



UPDONW
Новый дизайн