Skip to content

Repository files navigation

🪰 FlyTrader — биомиметический торговый агент

License: MIT Python 3.9+

FlyTrader — это инновационный торговый агент на основе биомиметической модели спайковой нейросети грибовидного тела (Mushroom Body) плодовой мухи Drosophila melanogaster. Проект моделирует сенсорную обработку рынка, ассоциативное обучение через дофаминовые сигналы ошибки предсказания награды (Reward Prediction Error, RPE) и сравнивает две стратегии: FlyA (чистое подкрепление) и FlyB (с пептидом наказания).


🏗 Архитектура

[ Рыночные данные (OHLCV) ]
            │
            ▼
   [ Feature Encoder ] ──(Rate Coding)──► [ Сенсорные нейроны (64) ]
                                                   │
                                           (Fixed Projections)
                                                   ▼
                                        [ Kenyon Cells (KC, 256) ]
                                                   │
                                          (Plastic Synapses)
                                                   ▼
                                          [ MBON Нейроны (16) ]
                                                   │
                                           (Linear Readout)
                                                   ▼
               ┌───────────────────────────────────┴───────────────────────────────────┐
               ▼                                                                       ▼
     [ Торговое решение ]                                                    [ Дофаминовая система RPE ]
     (HOLD / BUY / SELL)                                                     (PAM / PPL1 нейроны)
               │                                                                       │
               ▼                                                                       ▼
     [ Paper Trader P&L ] ───────────────────────────────────────────► [ Обновление весов KC→MBON ]

Биологическая основа

  • Kenyon Cells (KC): Код разреженного представления (sparse coding, ~top-20 из 256 активных нейронов), выступающий в роли нелинейного классификатора рыночных паттернов.
  • MBON (Mushroom Body Output Neurons): Интеграторы признаков, формирующие сигнал для принятия торговых решений.
  • Дофаминовая система (DA / RPE): Аналог нейронов PAM (награда) и PPL1 (наказание). Синапсы KC→MBON пластичны и обучаются по правилу Хебба, модулируемому ошибкой предсказания награды (RPE).
  • FlyA vs FlyB:
    • FlyA: Обучается только на положительном подкреплении (награде).
    • FlyB: Активно наказывается при отрицательном RPE (пептид наказания подавляет синапсы ошибочных действий), что демонстрирует биологическую регуляцию рисков.

Установка

Клонируйте репозиторий и установите зависимости:

pip install -r requirements.txt

⚠️ Примечание по macOS: На macOS со стандартным Python может появляться NotOpenSSLWarning при скачивании данных — это не ошибка проекта, а особенность сборки системного Python. Игнорируйте или используйте python3 из Homebrew.


Данные

Проект ожидает CSV-файлы с историческими данными OHLCV в папке data/: Формат колонок: timestamp,open,high,low,close,volume.

Вы можете скачать реальные данные с Binance с помощью встроенного скрипта:

python scripts/download_data.py --symbol BTCUSDT --interval 1h --limit 1000

Запуск

Запуск симуляции и сравнения двух мух (FlyA и FlyB):

python main.py

При запуске автоматически поднимается фоновый Flask-сервер для приема вебхуков от TradingView по адресу http://0.0.0.0:5001/webhook.


Интеграция с TradingView

  1. Откройте TradingView и добавьте скрипт из файла pinescript/fly_signal.pine в ваш график.
  2. Настройте параметры индикатора (Fast/Slow EMA, RSI) и укажите secretKey (flytrader_secret_2026).
  3. Создайте оповещение (Alert) в TradingView на срабатывание сигнала индикатора.
  4. В поле Webhook URL укажите адрес вашего сервера: http://<YOUR_SERVER_IP>:5001/webhook.
  5. В теле оповещения (Message) индикатор автоматически формирует JSON-пейлоад с действием (BUY/SELL), ценой и секретным ключом.

Примечание для macOS: порт 5001 выбран, потому что 5000 занят системной службой AirPlay Receiver. Если и 5001 занят — смените в tradingview_server.py и main.py.


Веб-дашборд

При запуске проекта автоматически поднимается веб-интерфейс (дашборд) по адресу http://localhost:5001. На нем в реальном времени отображаются:

  • Текущий капитал портфеля и уровень дофамина (DA).
  • Таблица входящих вебхук-сигналов от TradingView.
  • Телеметрия спайковой нейросети мозга мухи (Kenyon Cells и MBON).

Результаты

BTCUSDT (Binance, 1h, 1000 свечей)

FlyA: +11.54%, WinRate 55.6%, сделок 169 (Побед 94, Поражений 75), Пик: $117.20 FlyB: +11.64%, WinRate 56.0%, сделок 168 (Побед 94, Поражений 74), Пик: $118.10

Известные ограничения

XAUUSD не поддаётся текущей архитектуре. В тестах на 5000 часовых свечей (Twelve Data) муха показала отрицательную доходность (-8.5%). Причина: золото демонстрирует устойчивые многомесячные тренды, а спайковый агент с оконным z-score и обучением с нуля торгует контртрендово. Для золота нужна отдельная архитектура с momentum-логикой, trend-following стратегией и учётом макроэкономического контекста. Текущий проект сфокусирован только на BTC.

Данные

Данные BTC скачиваются через скрипт: python scripts/download_data.py --symbol BTCUSDT --interval 1h --limit 1000


Что дальше

  • Расширение на другие активы: поддержка XAUUSD (золото), EURUSD, индексов — с адаптацией Feature Encoder под разные волатильности и режимы рынка.
  • Интеграция вебхуков реального времени в торговый цикл агента.
  • Подключение реального брокера (например, Binance Futures API / Alpaca).
  • Внедрение полноценной STDP (Spike-Timing-Dependent Plasticity) для синапсов KC→MBON.

Лицензия

Этот проект распространяется под лицензией MIT — см. файл LICENSE. Свободно используйте, форкайте и модифицируйте с указанием авторства.

About

🪰 Biomimetic trading agent based on Drosophila mushroom body spiking neural network with dopamine RPE learning. Currently supports crypto (BTC/ETH), XAUUSD support in development.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Contributors

Languages