Скриншот сайта nof1.ai
Скриншот сайта nof1.ai

Наверняка многие из вас уже видели такие скриншоты на просторах интернета. СМИ разных оттенков жёлтого поголовно твердят: «DeepSeek зарабатывает деньги! ChatGPT в минусе».
В этой статье хочу донести, почему эти утверждения очень натянуты — через критику как дизайна эксперимента, так и его конкретной реализации. Причём рассказать хочу с позиции Quantitative Researcher в хэдж-фонде среднего масштаба.

Постановка эксперимента

Чтобы не быть голословным, нужно понять, с чем мы имеем дело. Какие конкретные аспекты сделаны неточно или концептуально неправильно. Я мог бы коротко и без деталей сказать, что LLM в пайплайне трейдинга — это как из пушки по воробьям (и это даже некорректное сравнение), но тогда бы моя мысль так и жила в нишевых телеграм-чатах на 200 человек.

(Ортогонально. Без сильного ИИ можно получить альфу, как и с AGI можно её не иметь. см. Эффективность рынка)
(Ортогонально. Без сильного ИИ можно получить альфу, как и с AGI можно её не иметь. см. Эффективность рынка)

Данные

Посмотрим на промпт, который скармливают моделям раз в 2–3 минуты, как написано в блоге.

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

### ALL BTC DATA
current_price = 107982.5, current_ema20 = 107776.85, current_macd = 116.567, current_rsi (7 period) = 62.558
In addition, here is the latest BTC open interest and funding rate for perps (the instrument you are trading):
Open Interest: Latest: 25458.85  Average: 25461.32
Funding Rate: 8.2948e-06
**Intraday series (by minute, oldest → latest):**
Mid prices: [107726.5, 107741.0, 107859.0, 107891.0, 107946.5, 108108.0, 108002.5, 107921.0, 107902.0, 107982.5]
EMA indicators (20‑period): [107540.298, 107556.175, 107584.92, 107617.975, 107644.644, 107695.726, 107721.561, 107740.651, 107755.255, 107776.85]
MACD indicators: [10.802, 21.816, 42.242, 63.667, 77.015, 109.171, 116.049, 116.525, 113.337, 116.567]
RSI indicators (7‑Period): [73.026, 71.971, 81.425, 84.429, 77.695, 87.43, 63.124, 59.094, 56.477, 62.558]
RSI indicators (14‑Period): [59.393, 59.004, 66.193, 69.057, 66.279, 75.216, 61.864, 59.473, 57.972, 61.28]
**Longer‑term context (4‑hour timeframe):**
20‑Period EMA: 107854.332 vs. 50‑Period EMA: 110571.164
3‑Period ATR: 557.797 vs. 14‑Period ATR: 1145.893
Current Volume: 5.495 vs. Average Volume: 5047.135
MACD indicators: [-1914.209, -1853.793, -1799.213, -1697.737, -1610.053, -1515.907, -1413.862, -1316.523, -1263.15, -1126.368]
RSI indicators (14‑Period): [35.766, 37.705, 37.145, 39.797, 39.275, 39.815, 40.696, 40.804, 38.556, 45.44]

Сразу бросается в глаза то, что MACD не отмасштабирован на цену, но сделаем оговорку, что саму по себе цену модели мы тоже сообщили. По природе своей его значение зависит от цены, так как это экспоненциальное среднее №1 минус экспоненциальное среднее №2, а цена — ряд мультипликативный. Правильнее либо считать индикатор от логарифма цены (она уже аддитивна), либо изменить его на EMA1 / EMA2.
ATR туда же.

К RSI не придираюсь, ведь он сам по себе имеет диапазон значений от 0 до 100. Но придраться можно ко всем индикаторам — уже по поводу их временного диапазона на входе. Почему именно 7, именно 14 и 20 на обоих таймфреймах? Это часто встречающиеся стандартные значения, но куда важнее, чтобы временной диапазон нашей сделки был того же порядка, что и временной диапазон входных данных (об этом ещё поговорим в следующем разделе).

Принимаемые решения

В промпте не указаны инструкции по использованию стоп-лоссов и тейк-профитов. Из-за этого при торговле они в лучшем случае бесполезны. Они могут стоять сильно дальше оптимального, из-за чего сделка будет длиться слишком долго, когда по-хорошему должна закрываться куда быстрее. Но также есть очень интересное поле
invalidation_condition — модель сама ставит на сделку условие её завершения. К актуальности условия без указаний есть вопросы.

Визуализация некоторых условий выхода: тейк-профита и стоп-лосса
Визуализация некоторых условий выхода: тейк-профита и стоп-лосса

Из промпта следует, что по одному активу в один момент времени может быть лишь одна позиция, которая не будет отредактирована в процессе её жизни.

Но правка для этого указана в разделе «Future work»:

The setup also does not support pyramiding (adding to or reducing current positions), so once an entry is placed the size and parameters are fixed.

Риск плеча

Trading with leverage also introduces capital efficiency and speeds up outcomes, speeding up feedback and learning loops. Leverage also dramatically increases risk, stress-testing the models’ risk-management skills and discipline.

Плечо — способ увеличить влияние ваших сделок на капитал. Если стратегия убыточна — можно больше потерять, но если она прибыльна — заработать. НО НЕ ВСЕГДА.

Слышали про критерий Келли?

Риск больше Келли уже не оправдан. Больше чем 2X от него - долгосрочно всегда убыточен
Риск больше Келли уже не оправдан. Больше чем 2X от него - долгосрочно всегда убыточен


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

Почему маленькая ставка плохо — понятно, меньше прибыли. Но почему большая ставка тоже плохо?

Ответ прост: можно потерять настолько много, что восстановиться обратно будет уже очень маловероятно при нашем соотношении прибыли к риску.

Повышенные ставки увеличивают шанс даже прибыльной стратегии слить депозит.

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

Примером оправданного использования плеча может быть случай, в котором мы отмасштабируем нашу торговлю, когда мы очень диверсифицированы и пресловутый Келли больше 1 (не слышал о таком и точно не наш случай).

Дав эту возможность моделям, мы просто излишне увеличили риск, не объяснив, что оно часто вредно.

Эффективность рынка

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

Представим, что у нас есть большой рынок и свобода участников. Каждый хочет зарабатывать в игре с нулевой суммой (если считать биржу игроком).

Игроки меняют одни ценности на другие, при этом платя бирже небольшую долю от суммы обмена.

Здесь самый «умный» участник будет зарабатывать на тех, кто не так умен. Да, есть разные типы игроков, одни другим могут не быть конкурентами, но в пределах поста упростим взгляд.

Стоит лишь отметить, что по этой причине я не буду говорить, что нужно торговать только с VIP-комиссионными планами и сетевой задержкой <1 ms, и всё кроме этого заведомо убыточно.

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

Это причина, по которой каждому нельзя дать по боту и «зарабатывать на бирже».

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

Стратегию торгуют, пока она прибыльна, но чем больше людей доят эту корову, тем меньше молока достанется каждому. Прибыльность пропадает.

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

Температура

Температура — параметр языковых моделей, отвечающий за случайность выхода. Если она равна 0, то при одном и том же промпте модель будет выдавать тот же ответ.

Если она больше — случайности в ответе тоже больше.

Стоимость исполнения

  1. Комиссия. На разных биржах, на разные типы активов внутри биржи и на разных комиссионных планах она разная.

  2. Проскальзывание (execution slippage) — разница между ожидаемой ценой исполнения и фактической.
    При вызове большого пайплайна с языковыми моделями будет достаточно высокая задержка, за время которой цена может измениться.
    Да, возможно, она изменится не настолько, чтобы повлиять на сделку длительностью в минуты или десятки минут, но влияние остаётся, и оно не смоделировано.

Важно понимать эти аспекты и сделать хотя бы параллельный тест одинаковых систем на разных биржах.

А как правильно?

Множественные запуски

Даже с нулевой температурой лучше запустить несколько одинаковых экземпляров системы. Те же промпты, те же модели, те же сервера с задержками и те же биржи, но с разным временем старта.

Условия рынка меняются, и стартовав в 00:00, вы попадёте в совсем иные условия, чем стартовав в 12:00.

Разные инстансы могут зайти в позиции в совершенно разные моменты времени, что сильно изменит будущие результаты.

С ненулевой температурой это ещё критичнее.
Чем выше температура, тем больше инстансов нужно запускать, потому что увеличивается дисперсия распределения, из которого мы сэмплим решения.
Один и тот же промпт может выдать как гениальную сделку, так и полный бред.
Без достаточного количества прогонов мы не отличим везение от мастерства.

Бейзлайны

Где простейшие стратегии для сравнения? Если мы говорим о торговле с удержанием позиций в часы, то следует добавить классические моментум-стратегии, mean reversion и банальные SMA-crossover. Пусть GPT-5 зарабатывает против них, а не против воздуха.

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

Разные таймскейлы

Можно смириться с тем, что таймфрейм всего один — частота вызовов LLM. Но давайте хотя бы дадим модели «подумать» и выбрать значимые индикаторы.
Если у нас обширный диапазон временных масштабов для каждого индикатора, то модель гипотетически эффективнее сможет торговать на любом из этих диапазонов (потому что будут данные).

Параллельное тестирование

Запустите одинаковые системы на разных биржах одновременно.
У Binance одни комиссии и ликвидность, у dYdX другие, у Hyperliquid — третьи.
Если модель зарабатывает на одной и сливает на другой при идентичных настройках — это может говорить, например, о нестабильности исполнения, помимо обычных разниц цен, спредов и комиссий.

На таких временных масштабах цены не отличаются настолько, чтобы это объясняло разницу в результатах.

Это не бенчмарк

Ну и давайте честно: называть это бенчмарком — преувеличение. Это скорее эксперимент или proof of concept.

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

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

Интересно? Да. Показательно? Нууу, нет. Научно обосновано? Увы, точно нет.

Ссылки

Комментарии (1)


  1. sic
    05.11.2025 13:29

    Я думаю, что Вы прекрасно понимаете, что основную свою задачу эксперимент выполнил, хайп, привлечение внимание трейдеров к ии, привлечение внимания ии адептов к трейдингу.

    По факту данных моделям давали мало, модели вообще на такую задачу не тренировались (вроде бы), но несмотря на это чисто из-за случайных блужданий некоторые из них могли бы сильно выйти в плюс (на правах рандома).

    И это мы увидим в следующем месяце почти наверняка. "они учатся" взмолвит толпа. "скоро ИИ захватит рынки" будут орать некоторые неспецифические блогеры. Все ясно как при свете дня.

    А мы ничего с этим сделать не можем, поезд уже пошёл.