
Lumibot — це фреймворк Python із відкритим кодом для бек-тестування, паперової торгівлі та виконання алгоритмічних торгових стратегій. Він підтримує традиційні правила Python, торгових ШІ-агентів і підключення до брокерів. У цьому посібнику розглядаються його підхід до стратегій, історичні дані, виконання з урахуванням брокера та ШІ-команди для торгівлі, щоб допомогти розробникам і кількісним трейдерам оцінювати автоматизовані торгові системи.
Lumibot пропонує 12 інтеграцій із брокерами, зокрема Alpaca, Interactive Brokers (IBKR) і Tradier, з різними можливостями для різних ринків.
Lumibot потребує Python 3.10 або новішої версії та підтримує акції, опціони, ф’ючерси, форекс, криптовалюти й ринки прогнозів.
Один і той самий клас стратегії може виконувати історичне бек-тестування, паперову та реальну торгівлю без переписування основної торгової логіки.
Вбудоване середовище виконання ШІ-агентів Lumibot підтримує дослідницьких агентів, агентів бичачого та ведмежого ринку, спеціалістів з перевірки ризиків і фінальних торгових агентів.
Історичне тестування, фактичне виконання ордерів і позавибіркова валідація допомагають оцінювати стратегії, але не гарантують майбутню прибутковість.
Lumibot — це повноцінний торговий фреймворк Python, розроблений Lumiwealth. Його подійно-орієнтована архітектура поєднує ринкові дані, логіку стратегії, брокерські рахунки та виконання ордерів.
На відміну від торгових проєктів, де дослідження, бек-тестування та виконання розділені на не пов’язані між собою системи, Lumibot акцентує увагу на узгодженості досліджень і реальної торгівлі завдяки повторно використовуваним класам стратегій.
Офіційний репозиторій Lumibot містить документацію щодо інтеграцій із брокерами, інструментів історичного тестування та ШІ-проєктів для торгівлі.
До його основних компонентів Python належать:
| Компонент | Функція |
|---|---|
| Стратегія | Визначає торгову логіку та методи життєвого циклу |
| Актив | Представляє акції, криптовалюти, опціони або інші інструменти |
| Дані | Зберігає історичну ринкову інформацію |
| Трейдер | Координує виконання стратегії |
| Alpaca | Підключає торгові стратегії до брокерського рахунку Alpaca |
| YahooDataBacktesting | Виконує історичне моделювання з використанням цін Yahoo Finance |
lumibot.strategies, lumibot.entities, lumibot.traders і lumibot.brokers.
Методи стратегії, зокрема initialize() і on_trading_iteration(), визначають налаштування та торгову поведінку. Цей код стратегії з урахуванням брокера дає змогу одній і тій самій стратегії Lumibot працювати в підтримуваних середовищах.
Lumibot підтримує внутрішньоденне та багатоденне бек-тестування з використанням історичних ринкових даних. Його бек-тестер Pandas може використовувати сумісні користувацькі набори даних, а Yahoo Finance, Polygon.io та інші підтримувані постачальники надають ринкову інформацію.
Фреймворк також включає криптовалютні підключення на основі CCXT, однак необхідно перевіряти підтримку окремих бірж та інструментів.
| Функція | Підтримуваний підхід |
|---|---|
| Історичне тестування | Yahoo Finance, Polygon.io, Pandas/CSV, спеціалізовані постачальники |
| Користувацькі набори даних | Часові ряди даних, контрольовані користувачем |
| Брокери для реальної торгівлі | Alpaca, IBKR, Tradier і підтримувані інтеграції |
| Криптовалютні підключення | API підтримуваних бірж та інтеграції CCXT |
| Бібліотеки Python | Pandas, NumPy та бібліотеки технічних індикаторів |
| Розгортання | Локальне середовище або налаштована хмарна інфраструктура |
| Режими виконання | Бек-тестування, паперова торгівля, реальна торгівля |
Криптовалютні біржі надають API для отримання ринкових даних і розміщення ордерів. Lumibot може використовувати сумісні інтеграції для автоматизації торгівлі, але наявність підключення не означає підтримку кожної біржі.
Alpaca та подібні брокери можуть пропонувати середовище торгівлі без комісій для відповідних продуктів. Інші комісії, спреди та регуляторні обмеження все одно застосовуються.
Під час тестування внутрішньоденних стратегій і стратегій із лімітними ордерами особливо важливе фактичне виконання. Історичне моделювання має враховувати прослизання, затримки, комісії та ліквідність.
Для порівняння, Backtesting.py — це легка подійно-орієнтована бібліотека Python, придатна для менших проєктів із бек-тестування, тоді як Lumibot поєднує бек-тестування з ширшими можливостями брокерського виконання та ШІ-агентів.
Lumibot містить вбудоване середовище виконання ШІ-торгових агентів, яке дозволяє спеціалізованим агентам перевіряти ринкові умови, проводити дослідження, викликати зовнішні інструменти та оцінювати торгові можливості.
Повноцінна ШІ-команда для торгівлі працює у звичайному підкласі стратегії. Її агентний процес може поєднувати детерміновані правила Python із рішеннями, згенерованими ШІ.
Згідно з документацією ШІ-агентів Lumibot, розробники можуть налаштовувати кількох агентів із різними обов’язками.
| Агент | Обов’язки |
|---|---|
| Дослідницький агент | Збирає технічні, фундаментальні та історичні дані |
| Агент бичачого ринку | Формує найпереконливіші аргументи на користь зростання |
| Агент ведмежого ринку | Ставить аргументи під сумнів і виявляє ризики зниження |
| Агент-рецензент | Оцінює докази, припущення та засоби контролю ризиків |
| Трейдер або менеджер портфеля | Перевіряє позиції, баланс рахунку та потенційні ордери |
| Фінальний агент | Подасть ордер лише за наявності чіткого дозволу на торгівлю |
У прикладі торгової команди дослідник збирає докази перед тим, як агенти бичачого та ведмежого ринку обговорюють можливість. Торговий агент вирішує, чи купувати, продавати або утримувати актив.
Кожен агент отримує однаковий ринковий контекст і доповнює результати попереднього дослідження або висновки рецензента.
Отже, спеціалізований дослідницький процес може підтримувати стратегію з одним агентом або багаторівневу реалізацію ШІ-команди для торгівлі Lumibot.
Деякі демонстраційні підказки доручають агентам шукати найприбутковіші угоди або використовувати майже всі кошти. Ці агресивні приклади ілюструють повноваження та виконання агентів, а не рекомендоване управління ризиками.
Лише фінальний агент із дозволом на торгівлю повинен мати повноваження подавати ордери, якщо ролі розділено в дизайні стратегії.
Lumibot потребує Python 3.10 або новішої версії. Розробники можуть встановити фреймворк і запустити демонстрацію перед підключенням реальних коштів.
<details class="md-editor-code" open="">
<summary class="md-editor-code-head">
<div class="md-editor-code-flag"><span></span><span></span><span></span></div>
<div class="md-editor-code-action">
<span class="md-editor-code-lang">Звичайний</span>
<span class="md-editor-copy-button" data-tips="Copy">Копіювати</span>
<span class="md-editor-collapse-tips"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-chevron-left md-editor-icon"><circle cx="12" cy="12" r="10"/><path d="m14 16-4-4 4-4"/></svg></span>
</div>
</summary>
<pre><code class="language-Plain" language=Plain><span class="md-editor-code-block">pip install lumibot
lumibot demo
</details>
<p>Початкова демонстрація використовує історичні дані та не потребує облікових даних брокера. </p>
Розробники можуть ініціалізувати та протестувати ШІ-проєкт для торгівлі:
<details class="md-editor-code" open="">
<summary class="md-editor-code-head">
<div class="md-editor-code-flag"><span></span><span></span><span></span></div>
<div class="md-editor-code-action">
<span class="md-editor-code-lang">Звичайний</span>
<span class="md-editor-copy-button" data-tips="Copy">Копіювати</span>
<span class="md-editor-collapse-tips"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-chevron-left md-editor-icon"><circle cx="12" cy="12" r="10"/><path d="m14 16-4-4 4-4"/></svg></span>
</div>
</summary>
<pre><code class="language-Plain" language=Plain><span class="md-editor-code-block">lumibot init my-bot <span class="hljs-attr">--template</span> ai
lumibot backtest my-bot --days 90 lumibot run my-bot --paper
</details>
<p>Налаштовані ШІ-стратегії потребують відповідних ключів ШІ, а паперова торгівля через підключеного брокера може потребувати облікових даних ШІ та Alpaca. </p>
Наприклад, імпорти Python можуть містити:
<details class="md-editor-code" open="">
<summary class="md-editor-code-head">
<div class="md-editor-code-flag"><span></span><span></span><span></span></div>
<div class="md-editor-code-action">
<span class="md-editor-code-lang">Звичайний</span>
<span class="md-editor-copy-button" data-tips="Copy">Копіювати</span>
<span class="md-editor-collapse-tips"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-chevron-left md-editor-icon"><circle cx="12" cy="12" r="10"/><path d="m14 16-4-4 4-4"/></svg></span>
</div>
</summary>
<pre><code class="language-Plain" language=Plain><span class="md-editor-code-block"><span class="hljs-keyword">from</span> lumibot.<span class="hljs-property">strategies</span> <span class="hljs-keyword">import</span> <span class="hljs-title class_">Strategy</span>
from lumibot.entities import Asset from lumibot.traders import Trader from lumibot.brokers import Alpaca
</details>
<p>ШІ-стратегії також можуть створювати агентів через <code>self.agents.create()</code> і викликати їх у <code>on_trading_iteration()</code>. </p>
Відсутність облікових даних моделі має спричиняти чітку помилку ключа постачальника, а не непомітно авторизувати іншого постачальника.
Перед увімкненням реальних ордерів розробникам слід протестувати поведінку агентів, повноваження на виконання та ліміти ризику.
Бек-тестування є важливим для алгоритмічної торгівлі, але прибуткові історичні результати не формують очікуваних майбутніх показників.
Перед розгортанням стратегії мають пройти позавибіркову валідацію, тестування фактичного виконання та паперову торгівлю.
Рішення ШІ-агентів також потребують історії аудиту, оскільки відповіді нових моделей можуть змінюватися між запусками.
Lumibot підтримує спільні дослідження та торгові проєкти, якими можна ділитися, хоча соціальна копітрейдинг-торгівля не є його основним фокусом.
Маржинальна торгівля та кредитне плече збільшують ризики через використання позикових коштів і посилюють потенційний прибуток та збитки. ШІ-агенти не повинні самостійно скасовувати заздалегідь визначені ліміти позицій.
Токенізовані акції можуть являти собою блокчейн-вимоги, пов’язані з традиційними цінними паперами, але права власності, частковий доступ і регуляторний режим залежать від емітента та структури продукту.
Трейдери, які оцінюють автоматизовані криптовалютні стратегії, можуть перевіряти ринкові ціни, ліквідність і стан книги ордерів через Gate Spot.
Платформа торгових ботів Gate також пропонує налаштовувані автоматизовані стратегії та інструменти бек-тестування для підтримуваних ринків.
Ці інструменти надають практичне порівняння для оцінювання стратегій, але не слід вважати, що вони мають нативну інтеграцію з Lumibot. Дозволи API, сумісність із ринками та ризики виконання потрібно перевіряти окремо.
Lumibot поєднує бек-тестування Python, виконання стратегій із урахуванням брокера та багатoагентну ШІ-торгівлю в одному повторно використовуваному фреймворку. Його основна перевага полягає в підтриманні узгодженої логіки стратегії в історичному тестуванні, паперовій торгівлі та підтримуваних реальних середовищах.
Розробники можуть налаштовувати дослідницьких агентів, управління портфелем і контроль ризиків, зберігаючи доступ до традиційних алгоритмічних стратегій. Однак надійне розгортання все одно залежить від якості ринкових даних, тестування виконання, безпеки та суворого управління ризиками.
Lumibot пропонує 12 інтеграцій із брокерами, зокрема Alpaca, Interactive Brokers і Tradier. Окремі брокери відрізняються за підтримуваними ринками, типами ордерів і можливостями реальної торгівлі.
Так. Lumibot підтримує інтеграцію даних Yahoo Finance і Polygon.io, а також містить криптовалютні підключення на основі CCXT. Для історичного моделювання також можна використовувати користувацькі набори даних Pandas.
Так. Один і той самий клас стратегії можна повторно використовувати для бек-тестування та реального виконання. Для кожного режиму потрібно вибрати конфігурацію запуску, постачальника даних, підключення до брокера й облікові дані.
Так. Lumibot підтримує стратегії з одним агентом і багатоагентні торгові команди. Авторизовані агенти можуть подавати ордери через налаштовані підключення до брокерів з урахуванням правил виконання та дозволів акаунта.
Так. Lumibot може працювати у відповідному локальному середовищі Python або в налаштованій хмарній інфраструктурі. Вимоги до розгортання залежать від стратегії, постачальника даних, підключення до брокера та організації моніторингу.











