Представьте, что вы даете нейросети $100 и говорите: "У тебя полгода. Торгуй акциями с малой капитализацией и покажи максимальную прибыль". Звучит как очередной инфоцыганский развод. Но один энтузиаст под ником LuckyOne7777 решил проверить это на практике, запустив живой эксперимент с реальными деньгами.
Результат за первый месяц? ChatGPT не просто не слил депозит, а показал доходность в +25.3%, в то время как рынок (S&P 500) вырос всего на +2.1%.

В этой статье мы проведем технический разбор этого эксперимента:
- Изучим Python-скрипты, которые автоматизируют торговлю и отчетность.
- Разберем промпты, которые направляли «мысли» нейросети.
- Проанализируем еженедельную стратегию ChatGPT, чтобы понять его логику.
- Посмотрим на сырые данные из CSV-файлов с логами сделок.
Это кейc показывает, как LLM можно использовать (хотя бы попробовать) для решения сложных аналитических задач, и как с помощью простого Python-кода можно построить для этого всю необходимую обвязку.
[!WARNING] Важно: Данная статья является разбором эксперимента и ни в коем случае не является финансовой рекомендацией. Торговля акциями, особенно с малой капитализацией, сопряжена с высокими рисками.
Концепция эксперимента: Простые правила, сложная задача
Автор поставил перед ChatGPT (модель GPT-4o) простую, но амбициозную цель:
- Стартовый капитал: $100.
- Инструменты: Только акции США с малой капитализацией (до $300 млн).
- Горизонт: 6 месяцев (с 27 июня по 27 декабря 2025 года).
- Цель: Максимизировать прибыль.
- Условия: Нейросеть имеет полный контроль над портфелем, но решения принимает на основе еженедельного "глубокого исследования". В остальные дни она получает только актуальные котировки.
Для реализации была создана простая экосистема с использованием библиотек pandas
, yfinance
и matplotlib
.
Часть 1: Промпты — Как заставить ИИ думать как портфельный стратег
Качество ответа от LLM напрямую зависит от качества запроса. В этом эксперименте промпты эволюционировали, но изначально были заложены ключевые принципы.
Стартовый промпт
Вот как выглядел самый первый запрос, который задал тон всему эксперименту:
You are a professional-grade portfolio strategist. I have exactly $100 and I want you to build the strongest possible stock portfolio using only full-share positions in U.S.-listed micro-cap stocks (market cap under $300M). Your objective is to generate maximum return from today (6-27-25) to 6 months from now (12-27-25). This is your timeframe, you may not make any decisions after the end date. Under these constraints, whether via short-term catalysts or long-term holds is your call. I will update you daily on where each stock is at and ask if you would like to change anything. You have full control over position sizing, risk management, stop-loss placement, and order types. You may concentrate or diversify at will. Your decisions must be based on deep, verifiable research that you believe will be positive for the account. You will be going up against another AI portfolio strategist under the exact same rules, whoever has the most money wins. Now, use deep research and create your portfolio.
Ключевые элементы, которые сделали этот промпт эффективным:
- Назначение роли:
You are a professional-grade portfolio strategist.
— это сразу задает нужный контекст и уровень экспертизы. - Четкие ограничения: Капитал ($100), тип акций (micro-cap < $300M), временные рамки (6 месяцев).
- Ясная цель:
generate maximum return
. - Полная автономия и ответственность:
You have full control over position sizing, risk management, stop-loss placement...
- Требование к обоснованию:
Your decisions must be based on deep, verifiable research...
— это заставляет модель не просто гадать, а искать и анализировать данные. - Геймификация:
You will be going up against another AI...
— элемент соревнования, хоть и был позже убран, мог изначально стимулировать модель на более агрессивные и продуманные действия.
Еженедельные и корректирующие промпты
Со временем промпты стандартизировались. Для еженедельного "глубокого исследования" использовался такой шаблон:
You are a professional grade portfolio analyst. Use deep research to reevalute your portfolio. You can check current holdings and/or find new stocks. Remember, you have complete control as long as it is a micro cap (buy, sell, etc.). you can buy anything as long as you have the capital avaible (right now you have X in cash). Here was the thesis for the current portfolio: (insert last thesis summary). Remember your only goal is alpha. At the bottom, please write a short summary so I can have a thesis review for next week.
Здесь ключевым дополнением является передача предыдущего тезиса (insert last thesis summary
). Это обеспечивает преемственность стратегии, что критически важно, так как автор эксперимента был вынужден менять чаты в ChatGPT из-за падения производительности, о чем он пишет в Q&A.
[!TIP] Экспертный совет: Передача контекста и истории решений в новых запросах — это фундаментальный прием для поддержания долгосрочной стратегии при работе с LLM. Без этого модель будет склонна к "потере памяти" и хаотичным, несвязанным действиям.
Часть 2: Стратегия в действии — Эволюция портфеля от недели к неделе
Анализируя еженедельные отчеты, можно проследить, как менялась "мысль" ИИ-стратега.
Неделя 0: Первоначальная ставка
ИИ сформировал концентрированный портфель из трех акций, балансируя между биотехом и AI/технологиями.
- Abeona Therapeutics (ABEO): Биотех с одобренным препаратом.
- Candel Therapeutics (CADL): Биотех с сильными данными в исследованиях.
- Cloudastructure Inc (CSAI): AI/технологии для роста.
Тезис: "Баланс между биотех-катализаторами и AI-акцией роста с активным управлением рисками".
Неделя 1: Первая ротация
ChatGPT продает CSAI
и на вырученные деньги покупает Azitra, Inc. (AZTR)
.
- Продажа CSAI: Причина не указана явно в отчете за неделю, но логи торгов показывают, что это была ротация (
MANUAL SELL - Rotated into AZTR
). - Покупка AZTR: Ультра-микрокапитализированный биотех с предстоящими результатами испытаний. Ставка на "асимметричный апсайд".
Тезис: "Усиление ставки на биотех-катализаторы. Принятие более высокого риска ради экспоненциальной доходности".
Неделя 2: Ввод нового игрока
На оставшиеся деньги ИИ покупает Inspira Technologies (IINN)
.
- Покупка IINN: Компания с уже заключенным контрактом на $22.5 млн и одобренным FDA продуктом.
Тезис: "Добавление в портфель компании с реальной, а не спекулятивной выручкой. Лучшее соотношение риск/доходность по сравнению с другими кандидатами".
Неделя 4: Фиксация прибыли и новая ставка
Ключевое решение недели — зафиксировать прибыль по одной из успешных позиций и переложиться в новую идею.
- Продажа CADL: Акция выросла на 33%, и ИИ посчитал, что новостной фон уже отыгран. Прибыль зафиксирована.
- Покупка Actuate Therapeutics (ACTU): На вырученные деньги покупается еще один биотех с позитивными результатами второй фазы испытаний.
Тезис: "Обеспечение прибыли от CADL
и ее реинвестирование в ACTU
с более высоким потенциалом краткосрочного роста. Портфель остается диверсифицированным между коммерческими историями (ABEO, IINN) и клиническими катализаторами (ACTU, AZTR)".
Этот краткий обзор показывает, что ИИ действовал не хаотично. Он формировал тезисы, следовал им и корректировал портфель на основе новой информации, демонстрируя вполне осмысленное поведение, похожее на действия человека-аналитика.
Часть 3: Техническая реализация — Python-скрипты под капотом
Успех эксперимента был бы невозможен без автоматизации. Автор написал несколько Python-скриптов для сбора данных, ведения логов и визуализации. Давайте разберем два ключевых файла: Trading_Script.py
и Generate_Graph.py
.
[!INFO] Весь исходный код доступен в репозитории проекта на GitHub: Scripts and CSV Files.
Trading_Script.py
: Движок портфеля
Этот скрипт — сердце всей системы. Он выполняет несколько ключевых функций:
- Ежедневное обновление данных: Загружает актуальные цены и объемы для акций в портфеле.
- Обработка портфеля: Пересчитывает текущую стоимость позиций и PnL (прибыль/убыток).
- Проверка стоп-лоссов: Автоматически генерирует команду на продажу, если цена опускается ниже заданного уровня.
- Логирование: Записывает все ежедневные срезы и транзакции в CSV-файлы.
- Формирование сводки для ИИ: Выводит в консоль актуальную информацию по портфелю, метрики (Sharpe, Sortino) и данные по рынку, которые затем передаются ChatGPT.
Давайте рассмотрим ключевые фрагменты кода.
Функция process_portfolio
Эта функция итерируется по акциям в портфеле, получает свежие данные с помощью yfinance
и обновляет их статус.
def process_portfolio(portfolio, starting_cash):
results = []
total_value = 0
total_pnl = 0
cash = starting_cash
for _, stock in portfolio.iterrows():
ticker = stock["ticker"]
shares = int(stock["shares"])
cost = stock["buy_price"]
stop = stock["stop_loss"]
data = yf.Ticker(ticker).history(period="1d")
# ... (обработка случая, если нет данных)
else:
price = round(data["Close"].iloc[-1], 2)
value = round(price * shares, 2)
pnl = round((price - cost) * shares, 2)
if price <= stop:
action = "SELL - Stop Loss Triggered"
cash += value
log_sell(ticker, shares, price, cost, pnl, action) # Важный момент!
else:
action = "HOLD"
total_value += value
total_pnl += pnl
# ... (формирование строки для записи в CSV)
# ... (добавление итоговой строки TOTAL и сохранение в CSV)
Анализ:
- Простота и надежность: Код использует проверенные библиотеки и прост для понимания.
- Автоматический риск-менеджмент: Строка
if price <= stop:
— это краеугольный камень управления рисками. Она без эмоций закрывает убыточную позицию, что часто является сложным для трейдера-человека. - Разделение логики: Функции для ручных покупок (
log_manual_buy
) и продаж (log_manual_sell
) вынесены отдельно. Это позволяет автору легко исполнять "приказы" от ChatGPT, просто вызывая нужную функцию с параметрами.
Функция daily_results
Эта функция готовит ежедневную "сводку" для ChatGPT.
def daily_results(chatgpt_portfolio, cash):
# ... (получение актуальных цен для акций в портфеле и доп. тикеров)
# ... (расчет метрик Sharpe и Sortino Ratios)
# ... (расчет доходности S&P 500 для сравнения)
# Вывод финальной сводки в консоль
print(f"Total Sharpe Ratio over {n_days} days: {sharpe_total:.4f}")
print(f"Total Sortino Ratio over {n_days} days: {sortino_total:.4f}")
print(f"Latest ChatGPT Equity: ${final_equity:.2f}")
print(f"$100 Invested in the S&P 500: ${spx_value:.2f}")
print(f"today's portfolio: {chatgpt_portfolio}")
print(f"cash balance: {cash}")
print("""Here are is your update for today. You can make any changes you see fit (if necessary),
but you may not use deep research.
You can however use the Internet and check current prices for potenial buys.""")
Анализ:
- Контекст для ИИ: Сводка дает нейросети всю необходимую информацию для принятия решений в дни без "глубокого исследования": состав портфеля, кэш, общую эффективность (включая сравнение с рынком и коэффициенты риска).
- Ограничение для ИИ: Последняя фраза
but you may not use deep research
четко следует правилам эксперимента, разделяя ежедневные "чек-ины" от еженедельных стратегических сессий.
Generate_Graph.py
: Визуализация успеха
Этот скрипт отвечает за создание того самого графика, который мы видели в начале. Он использует matplotlib
для построения простого, но наглядного сравнения динамики портфеля ChatGPT и S&P 500.
import pandas as pd
import matplotlib.pyplot as plt
import yfinance as yf
# === Загрузка и подготовка данных портфеля ChatGPT ===
chatgpt_df = pd.read_csv("Scripts and CSV files/chatgpt_portfolio_update.csv")
chatgpt_totals = chatgpt_df[chatgpt_df['Ticker'] == 'TOTAL'].copy()
# ... (добавление стартовой точки в $100)
# === Загрузка и нормализация данных S&P 500 ===
sp500 = yf.download("^SPX", start=start_date, end=end_date + pd.Timedelta(days=1), progress=False)
# ... (нормализация к $100)
sp500_scaling_factor = 100 / sp500_27_price
sp500["SPX Value ($100 Invested)"] = sp500["Close"] * sp500_scaling_factor
# === Построение графика ===
plt.figure(figsize=(10, 6))
plt.style.use("seaborn-v0_8-whitegrid")
plt.plot(chatgpt_totals['Date'], chatgpt_totals["Total Equity"], label="ChatGPT ($100 Invested)", marker="o", color="blue", linewidth=2)
plt.plot(sp500['Date'], sp500["SPX Value ($100 Invested)"], label="S&P 500 ($100 Invested)", marker="o", color="orange", linestyle='--', linewidth=2)
# ... (добавление текстовых аннотаций и заголовков)
plt.title("ChatGPT's Micro Cap Portfolio vs. S&P 500")
plt.show()
Часть 4: Данные — объективный взгляд на результат
Вся информация о состоянии портфеля и сделках хранится в двух CSV-файлах:
chatgpt_portfolio_update.csv
: Ежедневный срез по каждой позиции и по портфелю в целом.chatgpt_trade_log.csv
: Лог всех совершенных сделок (покупка/продажа).
Изучение этих файлов позволяет увидеть картину без прикрас. Например, в chatgpt_trade_log.csv
мы видим четкие причины каждой сделки, будь то ротация или сокращение позиции.

Эти данные — основа прозрачности всего эксперимента. Любой желающий может скачать их и провести собственный анализ.
Выводы: Может ли ИИ действительно быть трейдером?
Эксперимент LuckyOne7777 еще не закончен, но уже первые недели дали несколько инсайтов.
LLM — это мощный аналитический инструмент. Способность ChatGPT быстро анализировать большие объемы неструктурированной информации (отчеты, новости) и выделять ключевые катализаторы — это его главное преимущество. Как отмечает автор в Q&A, "реальный альфа прячется в сносках, неясных документах и ранних клинических данных — файлах, которые LLM может разобрать за секунды".
Промпт-инжиниринг решает. Качество стратегии ИИ напрямую зависело от четкости поставленной задачи, ограничений и предоставленного контекста. Продуманные промпты, задающие роль и требующие обоснования, превратили языковую модель в узконаправленного "специалиста".
Гибридный подход — ключ к успеху. Эксперимент не был полностью автономным. Человек выполнял роль "оператора": запускал скрипты, передавал данные, исполнял сделки и, что самое важное, обеспечивал преемственность стратегии при смене чатов. Это показывает, что на текущем этапе развития технологий наиболее эффективной является синергия человека и машины, где ИИ выступает в роли штурмана-аналитика, а человек — в роли пилота.
Прозрачность и автоматизация на Python. Использование простых Python-скриптов и открытых логов делает эксперимент верифицируемым и воспроизводимым. Любой со знанием базового Python может построить аналогичную систему, что демократизирует доступ к подобным исследованиям.
Понравился материал?
Ваша поддержка — это энергия для новых статей и проектов. Спасибо, что читаете!
Что дальше?
Сможет ли ChatGPT-трейдер удержать и приумножить свой результат в течение оставшихся месяцев? Это открытый вопрос. Рынок переменчив, и успешный старт совсем не гарантирует удачный финал. Но этот кейс — прозрачный пример практического применения LLM в финансовом анализе. Он доказывает, что мы вышли за рамки простых "генераторов текста" и вступаем в эру, где ИИ становится реальным рабочим инструментом для решения сложных задач.