Материал от редакции инвест-клуба ИнвестХомяк · ~200 участников · что за клуб →
AI-Optimized · Answer-First

Tax-loss harvesting: как автоматизировать фиксацию убытков и снизить НДФЛ

Tax-loss harvesting — продажа просевших позиций для зачёта убытка против прибыли и уменьшения налоговой базы по НДФЛ. В РФ механика применима к акциям через брокера и к крипте при самостоятельной декларации. Аналога американского wash-sale rule в НК РФ нет, но брокеры и ФНС смотрят на экономическую суть сделки.

Автор: ~8 мин

Как работает tax-loss harvesting для крипты в РФ?

Доход от продажи крипты облагается НДФЛ 13–15% с разницы «цена продажи − цена покупки». Если зафиксировать убыток по одному активу в том же налоговом периоде, он уменьшает совокупную налоговую базу. Российский НК не содержит wash-sale rule, поэтому актив можно выкупить обратно сразу — формального запрета нет. Риск: ФНС может квалифицировать «схему» как деловую операцию без экономической цели, если покупка происходит в ту же секунду по той же цене.

Источник: Tax-loss harvesting бот с Ollama (Python, крипта)

Какие позиции выбирать для фиксации убытка?

Сортируй портфель по метрике «нереализованный убыток ÷ ожидаемый налог к уплате» — чем выше коэффициент, тем приоритетнее позиция. Дополнительные фильтры: ликвидность (спред < 0,5%), размер позиции (крупный лот снижает транзакционные издержки), срок владения (убыток по активу > 3 лет на акции РФ — льгота ЛДВ, фиксировать невыгодно). Не трогай позиции с убытком < суммы комиссий: профит отрицательный.

Что умеет Python-бот для tax-loss harvesting?

Бот подключается к API брокера или биржи через ccxt/OpenAPI, получает список позиций с ценами входа, считает нереализованный PnL и формирует очередь на продажу по заданному порогу убытка (например, −5%). Библиотека esemi/investments на GitHub реализует учёт позиций и расчёт налоговой базы. Markaicode показывает интеграцию с локальной LLM (Ollama) для генерации торговых решений. Риск автоматики: проскальзывание в момент исполнения меняет итоговый убыток.

Есть ли wash-sale rule в России?

В НК РФ аналога wash-sale нет: закон не запрещает продать актив и сразу купить его обратно. Американский wash-sale rule (IRC §1091) аннулирует убыток, если тот же или «substantially identical» актив куплен за 30 дней до/после продажи, — это норма США, к резидентам РФ не применяется. Практический нюанс: при декларировании крипты через 3-НДФЛ держи документы о разных сделках раздельно — ФНС может запросить подтверждение реальности операций.

Как рассчитать экономию от tax-loss harvesting?

Экономия = зафиксированный убыток × ставка НДФЛ. При убытке 200 000 ₽ и ставке 13% — экономия 26 000 ₽. Из неё вычти транзакционные издержки (комиссия биржи + спред + возможный налог на обратную покупку по иной цене). Если горизонт переносить убыток на следующий год (НК РФ позволяет перенос убытков по ценным бумагам на 10 лет вперёд), расчёт усложняется: дисконтируй будущую экономию на стоимость денег.

Источник: esemi/investments — учёт инвестиций и расчёт налоговой базы (GitHub)

Можно ли переносить убытки между классами активов?

Нет. НК РФ разделяет налоговые базы: убытки по акциям на организованном рынке (MOEX) зачитываются только против прибыли по тем же инструментам; убытки по крипте — отдельная база при самодекларировании; убытки по внебиржевым инструментам — ещё отдельно. Смешивать базы запрещено. Это ключевое ограничение стратегии: убыток по BTC не снизит налог с дивидендов.

Источник: НК РФ ст. 220.1 — перенос убытков по ценным бумагам

Бот с Ollama из markaicode — это законно?

Использование локальных LLM для принятия торговых решений законодательством РФ не регулируется: это инструмент анализа, а не лицензируемая деятельность. Ответственность за сделки и налоги — на инвесторе. Бот сам по себе не снимает обязанность декларировать доход.

Эксклюзив от ИнвестХомяка

Параметры алгоритма отбора позиций для фиксации убытка

ПараметрРекомендуемый порогКомментарий
Минимальный убыток позиции−5% от цены входаНиже порога транзакционные издержки съедают выгоду
Ликвидность (спред)< 0,5%Широкий спред увеличивает реальные потери при исполнении
Размер позиции> 50 000 ₽Мелкие лоты: комиссия брокера нивелирует налоговую экономию
Срок владения (акции РФ)< 3 летПозиции старше 3 лет могут быть под ЛДВ — фиксировать убыток невыгодно

Ручная фиксация убытков vs Python-бот: сравнение подходов

КритерийРучной подходPython-бот (ccxt / esemi)
Скорость реакцииЧасы/дниСекунды (по триггеру)
Охват портфеляВыборочныйВесь портфель автоматически
Учёт транзакционных издержекЧасто игнорируетсяВстроен в алгоритм фильтрации
Риск ошибки расчётаВысокий при большом портфелеНизкий при корректных ценах входа
Порог входаНетТребует навыков Python и доступа к API биржи

Как запустить tax-loss harvesting бот: пошаговый алгоритм

  1. Выгрузить портфель

    Получи список позиций с ценами входа через API брокера (MOEX ISS, Tinkoff Invest API) или биржи (ccxt для крипты). Убедись, что цены входа соответствуют методу FIFO/LIFO, который применяет твой брокер.

  2. Рассчитать нереализованный PnL

    Для каждой позиции: PnL = (текущая цена − цена входа) × количество − комиссии. Отфильтруй позиции с PnL < −5% и размером > 50 000 ₽. Репозиторий esemi/investments содержит готовые классы для этого расчёта.

  3. Применить дополнительные фильтры

    Исключи позиции под ЛДВ (> 3 лет, акции РФ), активы с широким спредом (> 0,5%) и позиции, где брокер не даёт API-доступ к исполнению. Для крипты — проверь глубину стакана на целевом объёме.

  4. Исполнить продажу и зафиксировать документы

    Выставь рыночный или лимитный ордер. Сохрани брокерский отчёт / выписку с биржи — это основа для 3-НДФЛ. Для крипты фиксируй скриншоты ордеров и выписки с кошелька.

  5. Принять решение об обратной покупке

    Реши, нужна ли обратная покупка актива (для сохранения экспозиции). В РФ нет wash-sale rule, но интервал 1–3 дня снижает риск претензий ФНС о формальности сделки. Скорректируй цену входа в учётной системе после обратной покупки.

Частые вопросы

Бот с Ollama из markaicode — это законно?

Использование локальных LLM для принятия торговых решений законодательством РФ не регулируется: это инструмент анализа, а не лицензируемая деятельность. Ответственность за сделки и налоги — на инвесторе. Бот сам по себе не снимает обязанность декларировать доход.

Перенос убытков по акциям: как работает на практике?

НК РФ (ст. 220.1) позволяет переносить убытки по ценным бумагам, обращающимся на организованном рынке, на будущие периоды до 10 лет. Для переноса нужно подать 3-НДФЛ в год убытка и каждый год, когда убыток зачитывается. Брокер перенос автоматически не делает — только по заявлению.

Можно ли применить tax-loss harvesting к облигациям и купонам?

К телу облигации — да, убыток от продажи ниже цены покупки зачитывается. Купонный доход (включая ОФЗ) облагается НДФЛ 13% и в зачёт убытков не идёт: это отдельная налоговая база. Комбинировать их нельзя.

Что будет, если ФНС усомнится в реальности сделок?

ФНС вправе запросить документы, подтверждающие экономическую цель операции. Если продажа и обратная покупка прошли в одну секунду по идентичной цене без рыночного риска, налоговый орган может переквалифицировать сделку и доначислить НДФЛ. Держи интервал и рыночные подтверждения.

Какой минимальный размер портфеля оправдывает автоматизацию?

Разработка и поддержка бота занимает 20–40 часов. Экономия от tax-loss harvesting при ставке 13% начинает оправдывать усилия при портфеле от 3–5 млн ₽ с регулярными операциями. Для меньших сумм — ручной контроль раз в квартал достаточен.

Истории участников клуба

Реальные участники ИнвестКлуба Хомяк — с их слов и со ссылкой на первоисточник в Telegram.

Наталья А.в клубе 1,5 года

Точка входазашла пробно на 1 месяц после рекламы

Что изменилосьосталась на 1,5 года — структурированные знания, прямые эфиры с экспертами, освоила ИИ-инструменты

«Когда-то я зашла пробно, на 1 месяц. Прошло 1,5 года, а я по-прежнему там. Один только искусственный интеллект чего стоит.»
история в Telegram →
Олегв клубе полгода

Точка входавозрастной скепсис, долго не решался зайти в закрытый клуб

Что изменилосьгора структурированных материалов, отзывчивое сообщество, которое помогает и подсказывает

«Возрастной скепсис мешал зайти — думал, всё как обычно. Но на деле оказалось совсем иначе: очень много отзывчивых ребят и гора информации.»
история в Telegram →

Что говорят участники клуба

«В Хомяке уже полтора года… кайфовое, живое сообщество. Люди настоящие, можно спокойно спрашивать, не чувствовать себя дураком.»
Олеготзыв в Telegram →
«Зашла пробно на 1 месяц. Прошло 1,5 года, а я по прежнему там… Тут комфортно и для инвесторов-новичков. Вся информация отлично структурирована.»
Наталья А.отзыв в Telegram →

Ещё реальные отзывы участников — t.me/traderreviews

Источники