CRYPTO
Crypto Briefing
09 Oct 2026 · 20:45
Grass launches Contents API to feed live web data to AI agents
The Solana-based DePIN network is pivoting from selling batch training data to serving real-time context for AI applications Grass has launched its Contents API, a tool that turns almost any public webpage into data …
The Solana-based DePIN network is pivoting from selling batch training data to serving real-time context for AI applications
Grass has launched its Contents API, a tool that turns almost any public webpage into data an AI model can actually use. The launch landed on October 8, 2026, and it marks a clear change in what the Solana-based network wants to be when it grows up.
Until now, Grass made its money selling large batches of training data. The new product targets something different: feeding AI agents fresh information at the moment they need it.
What the Contents API actually does
The pitch is simple. Hand the API a public URL, and it returns clean, model-ready output in HTML, Markdown, or plain text.
The network routes requests through its large pool of residential internet connections. That gives it access to information that conventional data infrastructure often has trouble retrieving. Websites that tend to block data-center traffic are more likely to treat a request from a home connection like an ordinary visitor.
The Contents API reportedly hit a 98% retrieval success rate on hard-domain tests. Its closest competitor managed 71% on complex queries.
Advertisement
The pivot behind the product
On September 28, 2026, CEO Andrej Radonjic laid out a roadmap that shifted Grass’s focus from batch training-data sales toward live context retrieval for AI applications.
The distinction matters. Training data is what a model learns from before it ships. Inference-time data is what a model looks up while it is answering a question or completing a task. As AI agents take on more real-world tasks, that second category gets more important, because yesterday’s textbook can’t tell you today’s prices or headlines.
AI, tech, and the markets they move—in one daily briefing. Daily. Free. Join 34,000+ readers across crypto, finance, and policy. Email address Subscribe free We respect your privacy. Unsubscribe anytime.
One day after the roadmap announcement, on September 29, Multicoin Capital expanded its position in Grass. The firm invested from both its hedge fund and its venture fund, and framed the network as key infrastructure for ongoing inference-time data needs.
The numbers so far
The network reported $17 million in revenue for 2025. It then matched that figure in the first half of 2026 alone, bringing in another $17 million.
For the full year 2026, Grass expects revenue of $65–75 million from training-data sales alone. That projection does not include anything from the new Contents API.
The GRASS token, the network’s native asset on Solana, roughly doubled in price following the Contents API launch and the Multicoin investment news.
Background: what Grass is
Grass is a decentralized physical infrastructure network, or DePIN, managed by Wynd Labs. In Grass’s case, the resource is residential internet bandwidth. The project runs on Solana, with GRASS as its native token. Its business to date has centered on supplying data for AI model training, which is where its reported revenue has come from.
What this means
For GRASS holders, the doubling in price reflects a market betting on the pivot rather than on revenue the Contents API has already earned. The reported revenue figures come from training-data sales, while the new product’s commercial traction is still unproven.
Grass is claiming a large edge in success rates on difficult sites, with a 27-point gap over its closest competitor on hard-domain tests.
Key milestones ahead include whether Grass hits its $65–75 million training-data target for 2026, and how quickly the Contents API starts showing up in its revenue.
CRYPTO
Crypto Briefing
09 Oct 2026 · 20:45
OpenAI’s revenue run rate nears $50 billion, short of the numbers investors expected
The AI giant's annualized revenue keeps climbing, but an accounting gap with Anthropic left it about $20 billion below earlier estimates OpenAI is now bringing in revenue at an annualized pace of approximately $50 …
The AI giant's annualized revenue keeps climbing, but an accounting gap with Anthropic left it about $20 billion below earlier estimates
OpenAI is now bringing in revenue at an annualized pace of approximately $50 billion, according to figures reported by Bloomberg. By almost any normal standard, that is an enormous number.
The problem is that investors had been working with a bigger one. Estimates of roughly $70 billion had circulated in late September, so the actual figure landed about $20 billion lower.
What OpenAI actually reported
As of late September 2026, OpenAI’s annualized revenue run rate sat at approximately $50 billion. That is up from over $40 billion in August 2026.
Go back a little further and the climb looks steeper. At the end of 2025, the run rate stood at around $20 billion.
A quick note on terminology. A run rate takes current revenue and projects it across a full year. It is a snapshot of momentum, not a tally of cash already in the bank.
OpenAI reported that its overall run-rate growth hit 77% in the third quarter.
Enterprise revenue also more than doubled since July 2026. That matters because business customers tend to sign larger, stickier contracts than individual subscribers do.
Advertisement
Why the estimates ran so hot
The roughly $20 billion difference comes down to how two rival AI labs count their money.
OpenAI includes only its share of sales made through partners. Anthropic, by contrast, counts gross revenue from cloud partners such as AWS and Google Cloud.
AI, tech, and the markets they move—in one daily briefing. Daily. Free. Join 34,000+ readers across crypto, finance, and policy. Email address Subscribe free We respect your privacy. Unsubscribe anytime.
To compare the two companies on equal footing, investors had been normalizing OpenAI’s figures to match Anthropic’s method. That adjustment produced the ~$70 billion estimates that floated around in late September.
When OpenAI disclosed its own figure under its own accounting, the result looked like a miss. Nothing about the underlying business changed overnight. The yardstick did.
The market reaction
The disclosure rippled quickly through AI-linked stocks. Shares of AI infrastructure and chip companies, including Nvidia and Oracle, declined after the announcement.
On October 8, 2026, Oracle fell more than 5% following the revenue update.
Background: big money, bigger spending
In March 2026, OpenAI raised around $122 billion in a substantial fundraising round.
It is now in discussions to raise over $30 billion more. The targeted valuation is approximately $1.4 trillion.
OpenAI’s initial public offering is now expected in 2027, a timeline that suggests a potential delay.
What this means
For investors in AI infrastructure and semiconductors, the episode is a reminder about concentration risk. When a single private company drives so much of the sector’s demand story, its disclosures can move public stocks it does not even own.
A roughly $1.4 trillion valuation target will be judged against the revenue OpenAI actually reports, not against investor-built estimates. The smaller base makes the valuation multiple look richer.
With OpenAI and Anthropic counting revenue differently, comparing the two requires adjustments, and adjustments invite errors in both directions.
Watch three things from here: whether OpenAI closes its raise of over $30 billion at the targeted valuation, how AI infrastructure stocks trade on future OpenAI updates, and whether the industry moves toward a common way of counting partner revenue.
CRYPTO
Pypi.org
09 Oct 2026 · 20:45
lumibot 4.6.8
LumiBot AI Trading AI agents that actually place the trade. Twelve broker integrations, real backtests, and stocks, options, futures, forex, crypto and prediction markets. Most AI trading projects stop at a recommendation. LumiBot sends …
LumiBot AI Trading
AI agents that actually place the trade. Twelve broker integrations, real backtests, and stocks, options, futures, forex, crypto and prediction markets. Most AI trading projects stop at a recommendation. LumiBot sends the order.
Read this in 中文 · Español · Français · Deutsch · 日本語 · 한국어 · Português · Русский
Sixty seconds
pip install lumibot lumibot demo
That runs a real backtest on free daily data and writes a tearsheet. No API key, no broker account, no configuration.
Then make it yours:
lumibot init my-bot --template ai # writes an ordinary, editable Strategy subclass lumibot backtest my-bot --days 90 lumibot run my-bot --paper
lumibot init writes the same Python you would have written by hand. Nothing is hidden behind the CLI, and you keep an editable file.
The strategy class can stay the same. The code that starts it must select a backtest or a broker run. Strategy.backtest(...) always backtests; Trader.run_all() or strategy.run_live() starts a configured broker. Setting IS_BACKTESTING=false alone cannot turn a backtest-only example into a broker runner. Check every AI example's run mode
Prefer traditional trading strategies? Use --template python instead. Write your own rules, indicators, and order logic in a normal Strategy subclass. No AI model or model API key is required.
Python quickstart · AI quickstart · Python examples · AI examples
Why LumiBot?
Use Python rules, AI agents, or both. Keep one familiar Strategy lifecycle.
Keep one familiar lifecycle. The decision reaches a broker. A deterministic Python gate the model cannot talk past, real broker orders, and a trace you can open. How it works
A deterministic Python gate the model cannot talk past, real broker orders, and a trace you can open. How it works Backtest before connecting a broker. Run historical simulations and view trades and results.
Run historical simulations and view trades and results. Reuse your strategy across supported brokers. Keep strategy logic separate from broker configuration.
Keep strategy logic separate from broker configuration. Start from working examples. Choose stocks, macro, options, or a traditional buy-and-hold strategy.
How LumiBot compares
AI trading projects have proved that people want agentic trading workflows. Lumibot's edge is that those workflows run inside a real Python trading framework: you can backtest the agent decisions, inspect artifacts, add Python guardrails, paper trade, and connect to brokers without rewriting the strategy.
That matters because an AI trading demo is not the same thing as a trading system. Without backtests and broker-aware strategy code, you are mostly trusting prompts. Lumibot lets you iterate faster: test the agent flow on historical data, see what it would have bought or sold, tighten the Python risk checks, then run the same lifecycle in paper or live trading.
Compared with AI trading agent projects
Project Main angle AI agents / teams Backtest agent decisions Paper/live broker path Deterministic Python strategies Hosted data/deploy/monitoring Lumibot + BotSpot Python strategies, flexible AI trading teams, hybrid guardrails, backtests, brokers, hosted deployment Flexible teams, debates, specialist desks, and deterministic gates Replayable decisions, orders, traces, artifacts, charts, logs Yes: Alpaca, IBKR, Tradier, Schwab, Tradovate, ProjectX, Bitunix, Polymarket, selected CCXT Yes Hosted data, parallel backtests, deployment, monitoring, MCP, alerts, kill switches TradingAgents Multi-agent LLM trading research framework Yes, with a specific research/debate structure Research/demo oriented Not the main focus Limited No ai-hedge-fund Educational AI hedge fund with named investor-style agents Yes, with investor-style personas Demo/backtest oriented Not the main focus Limited No OpenAlice One-person Wall Street agent concept Yes, end-to-end agent concept Emerging/experimental Local/self-run focus Limited No QuantDinger Self-hosted AI quant operating system Yes Yes Crypto, IBKR, MT5, Alpaca Yes Self-hosted Vibe-Trading Personal trading agent Yes Yes Agent trading platform focus Limited Platform-specific AI-Trader Agent-native trading platform Yes Platform focus Platform focus Limited Platform-specific OpenBB Financial data platform for analysts, quants, and AI agents Tooling for agents Not a strategy backtester No broker execution framework No OpenBB workspace/platform Qlib AI-oriented quant research platform Research/ML agents Quant research backtests Limited live focus Research pipelines No
See the docs comparison pages for more detail: Lumibot vs TradingAgents, Lumibot vs ai-hedge-fund, Lumibot vs OpenAlice, and Lumibot vs QuantDinger.
Compared with backtesting libraries
Feature Lumibot Backtrader Freqtrade Zipline Backtesting.py Jesse vectorbt NautilusTrader Hummingbot Same code: backtest + live Yes Yes Yes (crypto) No No Yes (paid) No Yes Yes (crypto) Stocks Yes Yes No Yes Yes No Yes Yes No Options Yes No No No No No No Limited No Crypto Yes Limited Yes No Yes Yes Yes Yes Yes Prediction markets Polymarket trading and backtesting No No No No No No No Limited/no Futures Yes Limited Crypto only Partial Yes Crypto only Yes Yes Perpetuals/crypto venues Forex Yes Outdated No No Yes No Yes Yes No AI agent runtime Built-in No FreqAI (ML) No No ML pipeline No No Scripts/controllers Broker execution Alpaca, IBKR, Tradier, Schwab, Tradovate, TopstepX (via ProjectX), Bitunix, Polymarket, selected CCXT IB only (outdated) Crypto exchanges None None Crypto exchanges No Exchange adapters Crypto exchanges Hosted deployment path BotSpot No No No No Paid cloud No No Hummingbot Foundation/enterprise ecosystem License GPL-3.0 GPL-3.0 GPL-3.0 Apache-2.0 AGPL-3.0 MIT Apache-2.0 LGPL-3.0 Apache-2.0
Switching from Backtrader? See our migration guide for a side-by-side comparison with code examples.
Run your first AI backtest
Start with SPY. A research agent analyzes its trend; a trading agent checks the evidence and account, then decides whether to buy, hold, or sell. This example limits a new position to 10% of the simulated portfolio.
You need Python 3.10+ and an OpenAI API key ( OPENAI_API_KEY ). The default model is openai/gpt-6-luna on medium reasoning. Historical prices come from Yahoo; this backtest does not connect to a broker account. Model usage may incur charges.
python -m pip install "git+https://github.com/Lumiwealth/lumibot.git@version/4.6.3" export OPENAI_API_KEY = "your-openai-api-key" export BACKTESTING_DATA_SOURCE = yahoo python -m lumibot.example_strategies.ai_researcher_trader
The command runs a historical backtest of the complete SPY example. Watch the research and trading decisions, then inspect the generated simulated order records. Open its source.
Customize the backtest
Save as my_ai_strategy.py :
from datetime import datetime from lumibot.backtesting import YahooDataBacktesting from lumibot.example_strategies.ai_researcher_trader import ResearcherTraderStrategy if __name__ == "__main__" : ResearcherTraderStrategy . backtest ( YahooDataBacktesting , datetime ( 2026 , 4 , 6 ), datetime ( 2026 , 4 , 11 ), budget = 100_000 , benchmark_asset = "SPY" , parameters = { "symbol" : "SPY" , "max_position_pct" : 10 }, )
python my_ai_strategy.py
Watch the research and trading decisions in the log, then inspect the orders and backtest report. The $100,000 is simulated portfolio capital. The example uses openai/gpt-6-luna on medium reasoning.
Open the complete strategy code to change the prompts, tools, or trading rules. Follow the walkthrough for the agent setup and how to read the results. Prefer rules without AI? Run a conventional Python strategy.
Recorded run (made with Gemini, before GPT-6 Luna became the default): ten fresh agent runs across April 6 to 10, with one verified fill for 15 SPY shares. Inspect the source, decisions, and trade records. Fresh AI decisions can vary.
If this helps you build, star LumiBot so you can find it again and share your strategy with the community.
Explore an AI trading team
The large-cap stock example has four agents: a researcher ranks stocks, a bull makes the case, a bear challenges it, and a trader decides what to do.
See the code, run commands, and recorded results. A fresh model run can choose different trades and returns. Replaying saved decisions is different from asking the model to reason again.
Want help building your first AI trading bot?
Join the free challenge with Rob Grzesik, creator of LumiBot. Follow the training and learn how to turn an idea into an AI trading strategy.
Looking for deeper training? Explore the AI Trading Bootcamp. Prefer a hosted workspace? Explore BotSpot.
🌐 Community
Reddit Community Discord Community
What You Can Build
Deterministic strategies: normal Python logic, indicators, if statements, scheduled rules, position sizing, and risk controls.
normal Python logic, indicators, if statements, scheduled rules, position sizing, and risk controls. AI-agent strategies: one or more agents that reason through evidence, call tools, write memory, and optionally place orders.
one or more agents that reason through evidence, call tools, write memory, and optionally place orders. Backtests: replay historical data and simulated orders with artifacts you can inspect.
replay historical data and simulated orders with artifacts you can inspect. Paper or live trading: reuse the same strategy code with real broker state and real order routing.
Start with the open-source docs, then deploy when you are ready: Lumibot documentation · Try a sample Lumibot strategy on BotSpot
Quick Start
Choose a starting point:
Run a Python backtest: the complete example below, using daily Yahoo data without a broker account.
the complete example below, using daily Yahoo data without a broker account. Build an AI agent: AI Agents Quick Start, with installation, model credentials, and a complete backtest runner.
AI Agents Quick Start, with installation, model credentials, and a complete backtest runner. Explore an options strategy: AI iron condor, including data requirements and the limits of the recorded evidence.
Building a product on LumiBot? Partner with LumiBot through funded integrations, open-source maintenance, joint tutorials, or strategic collaboration.
Backtest a strategy
This is a traditional rules-based strategy: buy 10 AAPL shares on the first iteration and hold. It uses Yahoo historical prices, requires internet access, and makes no AI calls. Use Python 3.10 or later.
pip install lumibot
Save this as my_strategy.py :
from datetime import datetime from lumibot.strategies import Strategy from lumibot.backtesting import YahooDataBacktesting class MyStrategy ( Strategy ): def on_trading_iteration ( self ): if self . first_iteration : aapl = self . create_order ( "AAPL" , 10 , "buy" ) self . submit_order ( aapl ) MyStrategy . backtest ( YahooDataBacktesting , datetime ( 2023 , 1 , 1 ), datetime ( 2024 , 1 , 1 ), )
python my_strategy.py
Run the same strategy with a paper broker
After the backtest works, keep the MyStrategy class and replace the final MyStrategy.backtest(...) call with a broker runner. This example uses Alpaca paper trading:
export ALPACA_API_KEY = 'your-alpaca-key' export ALPACA_API_SECRET = 'your-alpaca-secret' export ALPACA_IS_PAPER = true python my_strategy.py
import os from lumibot.brokers import Alpaca from lumibot.traders import Trader ALPACA_CONFIG = { "API_KEY" : os . environ [ "ALPACA_API_KEY" ], "API_SECRET" : os . environ [ "ALPACA_API_SECRET" ], "PAPER" : os . environ . get ( "ALPACA_IS_PAPER" , "true" ) . lower () != "false" , } broker = Alpaca ( ALPACA_CONFIG ) strategy = MyStrategy ( broker = broker ) trader = Trader () trader . add_strategy ( strategy ) trader . run_all ()
Start with paper trading. When you are ready for live trading, use the same strategy class and switch your broker account/configuration intentionally.
For full setup guides, broker tutorials, AI-agent docs, examples, and deployment notes, use the Lumibot documentation.
AI Trading Team
Lumibot now includes a built-in AI agent runtime for financial research, reasoning, debate, risk review, and trade execution. Agents can inspect market data, read filings, query indicators, search memory, compare macro context, and submit orders through the same Lumibot strategy loop used by normal backtests and live trading.
Classic Python strategies are still first-class. Lumibot lets you choose the right level of intelligence: fixed rules, AI agents, or a hybrid where Python handles the hard gates and agents reason through evidence.
Built-in AI agent tools include market/account state, order inspection, DuckDB queries, documentation search, Alpaca news when credentials exist, technical indicators, SEC fundamentals and filings, FRED macro data, local memory, and Telegram notifications.
Explore existing AI strategies
Start with stock opening range breakout, large-cap stock teams, or macro research.
Explore the public Macro Insight AI: Bridgewater-Style Strategy listing on BotSpot. Inspect their published code and available observations before using them.
These educational implementations have no affiliation or endorsement from the named firms or people. BotSpot plans, model usage, broker access, and data requirements may apply.
Design Your AI Trading Team
An AI trading team is just a group of agents with different jobs inside the same Lumibot strategy. You can build a single-agent strategy, a specialist research flow, bull/bear/neutral teams, model-vs-model debates, deterministic execution gates, or agent reviewers layered on top of normal Python logic.
Example: Research, Bull, Bear, and Trader Agents
Here is one example pattern: a researcher gathers evidence, bull and bear agents debate the trade, and a trader agent decides what to buy or sell.
In this pattern, each agent has a job:
Research Agent: builds the evidence pack from market data, filings, fundamentals, news, macro data, and indicators. Bull Agent: turns that evidence into the strongest long thesis. Bear Agent: challenges the thesis, looks for risk, and argues for avoiding, delaying, or reducing the trade. Trader / Portfolio Manager Agent: checks cash, positions, open orders, and risk limits, then decides whether to trade.
The copy-paste example below implements that exact team. It uses GPT-6 Luna on medium reasoning, LumiBot's default model.
To run it with a broker in paper mode, set your AI and Alpaca credentials and run the file:
export OPENAI_API_KEY = 'your-key-here' export ALPACA_API_KEY = 'your-alpaca-key' export ALPACA_API_SECRET = 'your-alpaca-secret' export ALPACA_IS_PAPER = true python ai_trading_team_bull_bear_leveraged_etf.py
To backtest the same strategy instead, change IS_BACKTESTING = False to IS_BACKTESTING = True in the runner:
export OPENAI_API_KEY = 'your-key-here' python ai_trading_team_bull_bear_leveraged_etf.py
Save this as ai_trading_team_bull_bear_leveraged_etf.py . If an AI key is missing or invalid, Lumibot stops and prints a clear provider key error with a link to create a key.
import os from datetime import datetime from lumibot.strategies.strategy import Strategy class AITradingTeamBullBearLeveragedETFStrategy ( Strategy ): parameters = { "universe" : [ "TQQQ" , "SQQQ" , "UPRO" , "SPXU" , "UDOW" , "SDOW" , "TNA" , "TZA" , "TECL" , "TECS" , "SOXL" , "SOXS" , "WEBL" , "WEBS" , "FAS" , "FAZ" , "LABU" , "LABD" , "ERX" , "ERY" , "GUSH" , "DRIP" , "DRN" , "DRV" , "TMF" , "TMV" , "NUGT" , "DUST" ], } def initialize ( self ): self . sleeptime = "1D" model = os . environ . get ( "AI_TRADING_TEAM_MODEL" , "openai/gpt-6-luna" ) # The first three agents are read-only. They can reason, but cannot trade. self . agents . create ( name = "researcher" , model = model , allow_trading = False , system_prompt = "Rank the ETFs by upside. Be direct." , ) self . agents . create ( name = "bull" , model = model , allow_trading = False , system_prompt = "Argue for the strongest money-making trade." , ) self . agents . create ( name = "bear" , model = model , allow_trading = False , system_prompt = "Point out the biggest risk, briefly." , ) # Only this final agent can submit orders through Lumibot. self . agents . create ( name = "trader" , model = model , allow_trading = True , system_prompt = "Buy one ETF from the universe aggressively. Use nearly all cash." , ) def on_trading_iteration ( self ): # Each trading day, pass the same market context through the team. context = { "date" : self . get_datetime () . date () . isoformat (), "universe" : self . parameters [ "universe" ], } research = self . agents [ "researcher" ] . run ( task_prompt = "Pick the strongest ETF." , context = context , ) bull = self . agents [ "bull" ] . run ( task_prompt = "Make the bull case." , context = { ** context , "research" : research . summary }, ) bear = self . agents [ "bear" ] . run ( task_prompt = "Make the bear case." , context = { ** context , "research" : research . summary , "bull" : bull . summary }, ) self . agents [ "trader" ] . run ( task_prompt = "Sell anything that is not the pick, then buy the best ETF with nearly all available cash." , context = { ** context , "research" : research . summary , "bull" : bull . summary , "bear" : bear . summary }, ) if __name__ == "__main__" : IS_BACKTESTING = False if IS_BACKTESTING : from lumibot.backtesting import YahooDataBacktesting AITradingTeamBullBearLeveragedETFStrategy . backtest ( YahooDataBacktesting , datetime ( 2026 , 4 , 7 ), datetime ( 2026 , 5 , 22 ), ) else : from lumibot.brokers import Alpaca from lumibot.traders import Trader ALPACA_CONFIG = { "API_KEY" : os . environ [ "ALPACA_API_KEY" ], "API_SECRET" : os . environ [ "ALPACA_API_SECRET" ], "PAPER" : os . environ . get ( "ALPACA_IS_PAPER" , "true" ) . lower () != "false" , } broker = Alpaca ( ALPACA_CONFIG ) strategy = AITradingTeamBullBearLeveragedETFStrategy ( broker = broker ) trader = Trader () trader . add_strategy ( strategy ) trader . run_all ()
Backtests are not expected future performance. The point is that the full AI trading team runs inside Lumibot's normal broker and backtest loops, so the decisions, orders, and artifacts are inspectable before you connect real money.
More AI Trading Team Examples
These examples show different ways to organize an AI trading team. Each page explains the inspiration, the agent flow, how to run it with a broker in paper mode, and how to backtest it.
Run Lumibot Without Managing Servers
BotSpot is the managed cloud built around Lumibot. It makes Lumibot easier and cheaper to run because the data, backtesting workers, broker connections, scheduling, monitoring, logs, alerts, and kill switches are already wired together.
BotSpot is not a generic chatbot bolted onto a broker account. Its AI workflows, prompts, MCP tools, backtest setup, broker paths, and deployment flow are built for Lumibot.
Backtesting data included. Use hosted stock, futures, options, FRED macro, SEC filing, and other supported data without wrangling every feed and API key yourself. Some data is included; premium data can be much cheaper than buying direct subscriptions for occasional experiments.
Use hosted stock, futures, options, FRED macro, SEC filing, and other supported data without wrangling every feed and API key yourself. Some data is included; premium data can be much cheaper than buying direct subscriptions for occasional experiments. Cheaper deployment at scale. Scheduled and periodic bots should not need a full always-on server per strategy. BotSpot runs Lumibot bots on managed infrastructure built for this workflow, with monitoring and controls included.
Scheduled and periodic bots should not need a full always-on server per strategy. BotSpot runs Lumibot bots on managed infrastructure built for this workflow, with monitoring and controls included. Lumibot-tuned AI. Generic coding tools can write Python, but BotSpot is tuned for Lumibot strategy structure, broker setup, backtests, artifacts, and deployment.
Generic coding tools can write Python, but BotSpot is tuned for Lumibot strategy structure, broker setup, backtests, artifacts, and deployment. MCP for coding agents. Connect BotSpot to Codex, Claude Code, Cursor, and other MCP clients so your coding agent can run backtests, inspect artifacts, compare results, and prepare deployment instead of only generating code.
Connect BotSpot to Codex, Claude Code, Cursor, and other MCP clients so your coding agent can run backtests, inspect artifacts, compare results, and prepare deployment instead of only generating code. Work from anywhere. Use the same strategy workspace from the web, your phone, Telegram, Discord, Claude, ChatGPT, and coding tools. Start in one place and continue in another.
Use the same strategy workspace from the web, your phone, Telegram, Discord, Claude, ChatGPT, and coding tools. Start in one place and continue in another. Marketplace and strategy library. Browse existing strategy code, clone and adapt strategies, run strategies where available, and publish your own strategies when you are ready.
Browse existing strategy code, clone and adapt strategies, run strategies where available, and publish your own strategies when you are ready. Observability and control. Inspect why a bot bought or sold, review charts, logs, decisions, orders, notifications, audit history, and kill-switch controls in one place.
Deploy Live
Option A: BotSpot (managed cloud)
BotSpot is the managed path for taking a Lumibot strategy from idea to backtest to paper or live trading. It handles the expensive and fragile parts around the strategy: hosted data setup for supported backtests, parallel backtest runs, broker connections, scheduling, logs, alerts, monitoring, audit history, and kill-switch controls.
This is especially useful when your strategy only needs to run daily or periodically. You get the same Lumibot code path without paying for always-on infrastructure, maintaining a scheduler, hand-wiring broker secrets, or building your own log and alerting stack.
Option B: Self-hosted (full control)
Run Lumibot on your own machine with any supported broker:
from lumibot.brokers import Alpaca from lumibot.traders import Trader ALPACA_CONFIG = { "API_KEY" : "your-key" , "API_SECRET" : "your-secret" , "PAPER" : True , } broker = Alpaca ( ALPACA_CONFIG ) strategy = MyStrategy ( broker = broker ) trader = Trader () trader . add_strategy ( strategy ) trader . run_all ()
Supported Brokers
Lumibot supports stocks, options, crypto, futures, forex, indexes, and prediction contracts across several broker integrations:
Alpaca
Interactive Brokers and Interactive Brokers REST
Tradier
Schwab
Tradovate
TopstepX futures (via ProjectX)
Bitunix
Polymarket prediction-contract trading and backtesting
Selected CCXT crypto paths. Coinbase, Kraken, and WEEX have auto-detected credential paths; KuCoin, Binance, and BitMEX have documented manual CCXT setup paths; Kraken, Binance, KuCoin, BitMEX, Bybit, and OKX have documented backtesting examples. Lumibot does not claim blanket support for every CCXT exchange.
Select Backtesting Data Sources
Lumibot can backtest from free daily data, broker data, premium market data, and your own files:
Yahoo Finance
Alpaca
Interactive Brokers REST
ThetaData
Polygon/Massive
DataBento
Tradier
Schwab
Polymarket prediction-contract price history
CCXT backtesting examples: Kraken, Binance, KuCoin, BitMEX, Bybit, and OKX
Pandas/CSV dataframes
Recommended Data Provider
For the deepest historical coverage (stocks, options, futures, indexes), we recommend ThetaData. Use promo code BotSpot10 for 10% off your first order.
AI Trading Agents
Lumibot includes a built-in AI trading agent runtime. Build agents that run identically in backtests and live trading.
Create agents with self.agents.create(...)
The default model is openai/gpt-6-luna on medium reasoning; set model= per agent to use any other LiteLLM/ADK-supported provider string
on medium reasoning; set per agent to use any other LiteLLM/ADK-supported provider string Make research agents read-only with allow_trading=False
Give agents built-in SEC fundamentals, filings, FRED macro data, indicators, memory, and notifications
Use DuckDB for time-series analysis instead of dumping raw bars into prompts
for time-series analysis instead of dumping raw bars into prompts Mount external MCP servers for news, macro data, filings, or any domain-specific tools
for news, macro data, filings, or any domain-specific tools Replay identical agent decisions in backtests without paying for another model call
Use BotSpot MCP when you want an AI coding agent to generate Lumibot strategies, launch backtests, inspect artifacts, and iterate without leaving your editor.
Start here:
Memory and Traceability
AI strategies can record proposals, risk notes, actual trading decisions, submitted orders, lessons, open theses, tool calls, and run artifacts as local SQLite and Parquet files. This makes an AI backtest reviewable instead of a black box: you can inspect why the agent traded, which tools it used, what memory it retrieved, and what it remembered for later iterations. Memory events include agent/model-call provenance when they come from agent tools.
Community Strategies
Browse and contribute open-source strategies: lumibot-strategies. For hosted strategy discovery with performance, descriptions, visuals, and deploy flows, use the BotSpot marketplace.
Example Strategies
Lumibot includes 25+ example strategies covering stocks, options, crypto, futures, forex, and Polymarket prediction contracts:
# Run a simple buy-and-hold backtest python -m lumibot.example_strategies.stock_buy_and_hold # Or explore all examples ls lumibot/example_strategies/
Browse all examples: example_strategies/
Polymarket example: polymarket_prediction_contract.py
External example repo: stock_example_algo shows a minimal strategy repository you can run yourself or adapt inside BotSpot.
Backtesting Data Sources
Select a data source via environment variable (overrides code):
export BACKTESTING_DATA_SOURCE = thetadata # or yahoo, ibkr, polygon, polymarket
Multi-provider routing by asset type:
export BACKTESTING_DATA_SOURCE = '{"default":"thetadata","option":"thetadata","crypto":"ibkr","crypto_future":"ibkr","future":"ibkr","cont_future":"ibkr"}'
Crypto futures/perpetual backtests can route Asset.AssetType.CRYPTO_FUTURE through spot crypto history. Quote symbols are preserved: BTCUSDT uses BTC/USDT spot history when that pair is available from the selected crypto data source. LumiBot must not silently replace a requested USDT, USDC, EUR, or other quote with USD; missing pairs should fail honestly or be changed explicitly in strategy code.
Data source comparison
Data Source OHLCV Split Adjusted Dividends Dividend Adjusted Returns Yahoo Yes Yes Yes Yes Alpaca Yes Yes No No Polygon Yes Yes No No Tradier Yes Yes No No Polymarket Yes N/A N/A N/A Pandas* Yes Yes Yes Yes
*Pandas loads CSV files in Yahoo dataframe format, which can contain dividends.
Learn More
Project Growth
AI Bootcamp
Learn to build, backtest, and deploy trading strategies using AI. Join 2,400+ traders.
Contributing
We welcome contributions! Here's a video to help you get started: Watch The Video
Steps:
Clone the repository Create a new branch: git switch -c my-feature Install dev dependencies: pip install -r requirements_dev.txt && pip install -e . Make your changes Run tests: pytest Create a pull request
Running Tests
pytest # Run all tests pytest tests/test_asset.py # Run a specific test file coverage run ; coverage report # Show code coverage
Remote Cache Configuration
Lumibot can mirror its local parquet caches to AWS S3. See docs/remote_cache.md for configuration.
Architecture Documentation
Disclaimer
This software is provided for educational and informational purposes only. It is not financial advice and does not constitute a recommendation to buy or sell any security. Lumibot and BotSpot are not registered broker-dealers or financial advisors. Algorithmic trading involves substantial risk of loss, including the possibility of losses greater than your initial investment. Software bugs and errors can lead to rapid financial losses. Past backtest performance does not guarantee future results. Use this software at your own risk. You are solely responsible for compliance with all applicable laws and regulations regarding the assets you choose to trade.
Affiliate disclosure: some provider links or promo codes, including ThetaData, may support continued Lumibot development.
License
GNU General Public License v3.0 - View License
Contribute
See CONTRIBUTING.md for reproducible bugs, examples, tests, and focused pull requests. If LumiBot is useful to your work, star the repository and share an example with another developer.
CRYPTO
Bitcoinist
09 Oct 2026 · 20:45
Moscow Exchange Plans To Open Crypto Trading On December 1
Trusted Editorial content, reviewed by leading industry experts and seasoned editors. content, reviewed by leading industry experts and seasoned editors. Ad Disclosure TL;DR: Moscow Exchange plans to begin offering cryptocurrency trading from December 1 …
Trusted Editorial content, reviewed by leading industry experts and seasoned editors. content, reviewed by leading industry experts and seasoned editors. Ad Disclosure
TL;DR: Moscow Exchange plans to begin offering cryptocurrency trading from December 1 and says testing with professional market participants is already underway. Under Russia’s new framework, unqualified investors are expected to face limits on which assets they can buy and how much they can invest.
Russia‘s largest securities exchange is preparing to move from crypto derivatives into direct cryptocurrency trading.
Moscow Exchange plans to offer crypto transactions from December 1, according to senior managing director Boris Blokhin, who said the venue is already testing the service with professional market participants.
The planned launch follows a broader Russian regulatory framework that gives existing exchanges, brokers and asset managers a formal role in digital asset markets.
Moscow Exchange will use a partner digital depository for settlement, with market participants opening accounts through that infrastructure.
Blokhin said the exchange does not expect to need an additional permit or license for the launch beyond the framework already in place.
The service will not treat every investor equally.
Under the new rules, unqualified investors will be allowed to purchase a limited group of major crypto assets, including Bitcoin, Ethereum and USDT, and will face an annual investment cap through each intermediary.
Qualified investors will have broader access and will not be subject to the same amount limit.
That structure reflects Russia’s cautious approach to opening crypto markets.
The government is allowing investment and trading infrastructure to develop while maintaining tighter restrictions around ordinary consumers and the use of cryptocurrency for domestic payments.
Moscow Exchange has already gained experience with crypto-linked products.
The venue previously introduced perpetual futures tied to assets including Bitcoin and Ethereum.
Direct trading is a more significant step because it brings the underlying digital assets into established securities-market infrastructure rather than limiting investors to price exposure through derivatives.
It also gives Russia’s conventional financial institutions a stronger role.
Crypto trading in many countries developed around specialist exchanges that operated separately from banks and stock markets.
Russia is increasingly pushing the opposite model.
Existing regulated market institutions are being used as the rails through which digital assets can be bought, sold and recorded.
The exchange says testing began roughly a week ago and will continue ahead of the December launch.
That leaves time for settlement and operational systems to be tested before customers gain access.
There are still obvious questions.
Liquidity, available trading pairs, custody arrangements and the exact user experience will all determine whether investors actually migrate activity from existing crypto channels.
But Moscow Exchange brings something smaller venues cannot easily replicate: an established network of brokers, professional investors and financial institutions already connected to its market infrastructure.
If the December 1 launch goes ahead as planned, crypto trading in Russia will become considerably more integrated with the country’s traditional capital markets.
That is likely exactly what regulators want.
CRYPTO
Crypto Briefing
09 Oct 2026 · 20:45
Nasdaq CEO Adena Friedman says tokenization can free billions in trapped capital
Nasdaq and Payward, Kraken's parent company, have partnered to develop Nasdaq Equity Tokens and support tokenized equities. Tokenizing financial assets and the movement of money could release tens of billions of dollars in capital …
Nasdaq and Payward, Kraken's parent company, have partnered to develop Nasdaq Equity Tokens and support tokenized equities.
Tokenizing financial assets and the movement of money could release tens of billions of dollars in capital locked up as collateral throughout the global financial system, said Nasdaq CEO Adena Friedman in an interview with CNBC at TOKEN2049 in Singapore.
Friedman said tokenized Treasurys, equities and money market funds could make collateral more fluid by improving its liquidity.
Nasdaq’s growing involvement in tokenization is focused on the systems that allow traditional financial assets to operate on blockchain networks.
Advertisement
The company is working with Payward, Kraken’s parent company and the infrastructure provider behind xStocks, on an equities transformation gateway. The goal is to connect regulated, permissioned financial infrastructure with permissionless blockchain networks where tokenized equities can circulate.
Friedman said institutional interest in tokenization has accelerated over the past year, with the passage of the GENIUS Act, which established a regulatory framework for stablecoins, contributing to the trend.
The news moving money, markets, and the world—before your day starts. Daily. Free. Join 34,000+ readers across crypto, finance, and policy. Email address Subscribe free We respect your privacy. Unsubscribe anytime.
She said the ability to tokenize money could also allow financial institutions to tokenize capital flows. The development is bringing institutional finance closer to retail investors’ demand for 24-hour markets, which Friedman said has put the retail ecosystem about 10 years ahead.
Establishing fully round-the-clock financial markets would require more than upgrading trading infrastructure. Friedman said exchange infrastructure is the easiest element to address, while institutions would need to ensure that risk controls, collateral management and system updates can function without the scheduled downtime traditionally associated with market closures. All these processes would need to operate in real time.
Nasdaq is using artificial intelligence to help prepare for that shift. The firm has introduced digital agents in its risk management platform that currently provide recommendations and could eventually execute actions more directly. Friedman said AI would be essential to supporting 24/7 trading.
CRYPTO
Crypto Briefing
09 Oct 2026 · 20:45
Firmus shelves multibillion-dollar Australian IPO as investor demand falls short
The NVIDIA-backed AI data center operator is turning to private markets after its planned ASX float failed to draw enough buyers Firmus Grid Ltd. was set to stage one of the biggest stock market …
The NVIDIA-backed AI data center operator is turning to private markets after its planned ASX float failed to draw enough buyers
Firmus Grid Ltd. was set to stage one of the biggest stock market debuts Australia has seen in decades. Instead, it has walked away from the stage before the curtain went up.
The NVIDIA-backed AI data center operator shelved its planned initial public offering around October 8-9, 2026, after failing to line up enough investor demand. The deal had been designed to raise up to A$5.5 billion. Market volatility did the rest.
What Firmus was trying to pull off
Firmus priced its shares at A$11 each, a level that implied an equity value of approximately A$43.7 billion, or around US$30 billion.
Shares were expected to begin trading on the Australian Securities Exchange around October 23, 2026. That debut will no longer happen on schedule.
Had it gone ahead, the float would have ranked among Australia’s largest in recent decades. Only Telstra’s landmark 1997 listing would have been bigger.
Firmus currently runs two small operational data centers. Investors were being asked to price in a future that, for now, mostly exists in project plans and partnership agreements.
Advertisement
A valuation that moved fast
In April 2026, Firmus raised $505 million at a post-money valuation of $5.5 billion.
Four months later, in August 2026, it brought in another $2 billion. That round valued the firm at more than $10.5 billion.
AI, tech, and the markets they move—in one daily briefing. Daily. Free. Join 34,000+ readers across crypto, finance, and policy. Email address Subscribe free We respect your privacy. Unsubscribe anytime.
The IPO price then pointed to an equity value of around US$30 billion.
Coatue Management and Blackstone are among the names supporting the company. Public market investors, despite earlier strong interest, did not fill the order book to the level Firmus needed.
What Firmus actually builds
Firmus develops modular AI data centers, which it calls “AI factories.” The company leans on advanced energy and cooling technologies.
Its flagship effort is Project Southgate in Australia. Firmus also has operations in Indonesia.
Much of that work centers on its collaboration with NVIDIA. The partnership involves the use of up to 170,000 GPUs.
Firmus also has partnerships with OpenAI and Meta tied to cloud services and capacity expansion.
Why the timing went wrong
Firmus cited market volatility as a key factor behind the decision. A deal of this size also leaves little room for error. Raising up to A$5.5 billion in a single offering requires broad participation, not just enthusiasm from a handful of anchor investors.
Firmus chose to pull the deal rather than force it through at a lower price or with a thin book.
What this means for Firmus and the AI infrastructure trade
For Firmus, the immediate plan is to tap private-market funding and other alternatives while it keeps building out its projects. The company has already raised more than $2.5 billion across its two 2026 rounds.
The things to watch now are concrete. Investors will be tracking the size and pricing of Firmus’s next private round, progress on Project Southgate and its Indonesian operations, and how quickly its GPU deployment with NVIDIA scales.
Either way, Australia’s hoped-for record-adjacent float has been moved to the “maybe later” pile. Telstra keeps its spot at the top of the list, for now.
CRYPTO
Pypi.org
09 Oct 2026 · 20:45
lumibot 4.6.9
LumiBot AI Trading AI agents that actually place the trade. Twelve broker integrations, real backtests, and stocks, options, futures, forex, crypto and prediction markets. Most AI trading projects stop at a recommendation. LumiBot sends …
LumiBot AI Trading
AI agents that actually place the trade. Twelve broker integrations, real backtests, and stocks, options, futures, forex, crypto and prediction markets. Most AI trading projects stop at a recommendation. LumiBot sends the order.
Read this in 中文 · Español · Français · Deutsch · 日本語 · 한국어 · Português · Русский
Sixty seconds
pip install lumibot lumibot demo
That runs a real backtest on free daily data and writes a tearsheet. No API key, no broker account, no configuration.
Then make it yours:
lumibot init my-bot --template ai # writes an ordinary, editable Strategy subclass lumibot backtest my-bot --days 90 lumibot run my-bot --paper
lumibot init writes the same Python you would have written by hand. Nothing is hidden behind the CLI, and you keep an editable file.
The strategy class can stay the same. The code that starts it must select a backtest or a broker run. Strategy.backtest(...) always backtests; Trader.run_all() or strategy.run_live() starts a configured broker. Setting IS_BACKTESTING=false alone cannot turn a backtest-only example into a broker runner. Check every AI example's run mode
Prefer traditional trading strategies? Use --template python instead. Write your own rules, indicators, and order logic in a normal Strategy subclass. No AI model or model API key is required.
Python quickstart · AI quickstart · Python examples · AI examples
Why LumiBot?
Use Python rules, AI agents, or both. Keep one familiar Strategy lifecycle.
Keep one familiar lifecycle. The decision reaches a broker. A deterministic Python gate the model cannot talk past, real broker orders, and a trace you can open. How it works
A deterministic Python gate the model cannot talk past, real broker orders, and a trace you can open. How it works Backtest before connecting a broker. Run historical simulations and view trades and results.
Run historical simulations and view trades and results. Reuse your strategy across supported brokers. Keep strategy logic separate from broker configuration.
Keep strategy logic separate from broker configuration. Start from working examples. Choose stocks, macro, options, or a traditional buy-and-hold strategy.
How LumiBot compares
AI trading projects have proved that people want agentic trading workflows. Lumibot's edge is that those workflows run inside a real Python trading framework: you can backtest the agent decisions, inspect artifacts, add Python guardrails, paper trade, and connect to brokers without rewriting the strategy.
That matters because an AI trading demo is not the same thing as a trading system. Without backtests and broker-aware strategy code, you are mostly trusting prompts. Lumibot lets you iterate faster: test the agent flow on historical data, see what it would have bought or sold, tighten the Python risk checks, then run the same lifecycle in paper or live trading.
Compared with AI trading agent projects
Project Main angle AI agents / teams Backtest agent decisions Paper/live broker path Deterministic Python strategies Hosted data/deploy/monitoring Lumibot + BotSpot Python strategies, flexible AI trading teams, hybrid guardrails, backtests, brokers, hosted deployment Flexible teams, debates, specialist desks, and deterministic gates Replayable decisions, orders, traces, artifacts, charts, logs Yes: Alpaca, IBKR, Tradier, Schwab, Tradovate, ProjectX, Bitunix, Polymarket, selected CCXT Yes Hosted data, parallel backtests, deployment, monitoring, MCP, alerts, kill switches TradingAgents Multi-agent LLM trading research framework Yes, with a specific research/debate structure Research/demo oriented Not the main focus Limited No ai-hedge-fund Educational AI hedge fund with named investor-style agents Yes, with investor-style personas Demo/backtest oriented Not the main focus Limited No OpenAlice One-person Wall Street agent concept Yes, end-to-end agent concept Emerging/experimental Local/self-run focus Limited No QuantDinger Self-hosted AI quant operating system Yes Yes Crypto, IBKR, MT5, Alpaca Yes Self-hosted Vibe-Trading Personal trading agent Yes Yes Agent trading platform focus Limited Platform-specific AI-Trader Agent-native trading platform Yes Platform focus Platform focus Limited Platform-specific OpenBB Financial data platform for analysts, quants, and AI agents Tooling for agents Not a strategy backtester No broker execution framework No OpenBB workspace/platform Qlib AI-oriented quant research platform Research/ML agents Quant research backtests Limited live focus Research pipelines No
See the docs comparison pages for more detail: Lumibot vs TradingAgents, Lumibot vs ai-hedge-fund, Lumibot vs OpenAlice, and Lumibot vs QuantDinger.
Compared with backtesting libraries
Feature Lumibot Backtrader Freqtrade Zipline Backtesting.py Jesse vectorbt NautilusTrader Hummingbot Same code: backtest + live Yes Yes Yes (crypto) No No Yes (paid) No Yes Yes (crypto) Stocks Yes Yes No Yes Yes No Yes Yes No Options Yes No No No No No No Limited No Crypto Yes Limited Yes No Yes Yes Yes Yes Yes Prediction markets Polymarket trading and backtesting No No No No No No No Limited/no Futures Yes Limited Crypto only Partial Yes Crypto only Yes Yes Perpetuals/crypto venues Forex Yes Outdated No No Yes No Yes Yes No AI agent runtime Built-in No FreqAI (ML) No No ML pipeline No No Scripts/controllers Broker execution Alpaca, IBKR, Tradier, Schwab, Tradovate, TopstepX (via ProjectX), Bitunix, Polymarket, selected CCXT IB only (outdated) Crypto exchanges None None Crypto exchanges No Exchange adapters Crypto exchanges Hosted deployment path BotSpot No No No No Paid cloud No No Hummingbot Foundation/enterprise ecosystem License GPL-3.0 GPL-3.0 GPL-3.0 Apache-2.0 AGPL-3.0 MIT Apache-2.0 LGPL-3.0 Apache-2.0
Switching from Backtrader? See our migration guide for a side-by-side comparison with code examples.
Run your first AI backtest
Start with SPY. A research agent analyzes its trend; a trading agent checks the evidence and account, then decides whether to buy, hold, or sell. This example limits a new position to 10% of the simulated portfolio.
You need Python 3.10+ and an OpenAI API key ( OPENAI_API_KEY ). The default model is openai/gpt-6-luna on medium reasoning. Historical prices come from Yahoo; this backtest does not connect to a broker account. Model usage may incur charges.
python -m pip install "git+https://github.com/Lumiwealth/lumibot.git@version/4.6.3" export OPENAI_API_KEY = "your-openai-api-key" export BACKTESTING_DATA_SOURCE = yahoo python -m lumibot.example_strategies.ai_researcher_trader
The command runs a historical backtest of the complete SPY example. Watch the research and trading decisions, then inspect the generated simulated order records. Open its source.
Customize the backtest
Save as my_ai_strategy.py :
from datetime import datetime from lumibot.backtesting import YahooDataBacktesting from lumibot.example_strategies.ai_researcher_trader import ResearcherTraderStrategy if __name__ == "__main__" : ResearcherTraderStrategy . backtest ( YahooDataBacktesting , datetime ( 2026 , 4 , 6 ), datetime ( 2026 , 4 , 11 ), budget = 100_000 , benchmark_asset = "SPY" , parameters = { "symbol" : "SPY" , "max_position_pct" : 10 }, )
python my_ai_strategy.py
Watch the research and trading decisions in the log, then inspect the orders and backtest report. The $100,000 is simulated portfolio capital. The example uses openai/gpt-6-luna on medium reasoning.
Open the complete strategy code to change the prompts, tools, or trading rules. Follow the walkthrough for the agent setup and how to read the results. Prefer rules without AI? Run a conventional Python strategy.
Recorded run (made with Gemini, before GPT-6 Luna became the default): ten fresh agent runs across April 6 to 10, with one verified fill for 15 SPY shares. Inspect the source, decisions, and trade records. Fresh AI decisions can vary.
If this helps you build, star LumiBot so you can find it again and share your strategy with the community.
Explore an AI trading team
The large-cap stock example has four agents: a researcher ranks stocks, a bull makes the case, a bear challenges it, and a trader decides what to do.
See the code, run commands, and recorded results. A fresh model run can choose different trades and returns. Replaying saved decisions is different from asking the model to reason again.
Want help building your first AI trading bot?
Join the free challenge with Rob Grzesik, creator of LumiBot. Follow the training and learn how to turn an idea into an AI trading strategy.
Looking for deeper training? Explore the AI Trading Bootcamp. Prefer a hosted workspace? Explore BotSpot.
🌐 Community
Reddit Community Discord Community
What You Can Build
Deterministic strategies: normal Python logic, indicators, if statements, scheduled rules, position sizing, and risk controls.
normal Python logic, indicators, if statements, scheduled rules, position sizing, and risk controls. AI-agent strategies: one or more agents that reason through evidence, call tools, write memory, and optionally place orders.
one or more agents that reason through evidence, call tools, write memory, and optionally place orders. Backtests: replay historical data and simulated orders with artifacts you can inspect.
replay historical data and simulated orders with artifacts you can inspect. Paper or live trading: reuse the same strategy code with real broker state and real order routing.
Start with the open-source docs, then deploy when you are ready: Lumibot documentation · Try a sample Lumibot strategy on BotSpot
Quick Start
Choose a starting point:
Run a Python backtest: the complete example below, using daily Yahoo data without a broker account.
the complete example below, using daily Yahoo data without a broker account. Build an AI agent: AI Agents Quick Start, with installation, model credentials, and a complete backtest runner.
AI Agents Quick Start, with installation, model credentials, and a complete backtest runner. Explore an options strategy: AI iron condor, including data requirements and the limits of the recorded evidence.
Building a product on LumiBot? Partner with LumiBot through funded integrations, open-source maintenance, joint tutorials, or strategic collaboration.
Backtest a strategy
This is a traditional rules-based strategy: buy 10 AAPL shares on the first iteration and hold. It uses Yahoo historical prices, requires internet access, and makes no AI calls. Use Python 3.10 or later.
pip install lumibot
Save this as my_strategy.py :
from datetime import datetime from lumibot.strategies import Strategy from lumibot.backtesting import YahooDataBacktesting class MyStrategy ( Strategy ): def on_trading_iteration ( self ): if self . first_iteration : aapl = self . create_order ( "AAPL" , 10 , "buy" ) self . submit_order ( aapl ) MyStrategy . backtest ( YahooDataBacktesting , datetime ( 2023 , 1 , 1 ), datetime ( 2024 , 1 , 1 ), )
python my_strategy.py
Run the same strategy with a paper broker
After the backtest works, keep the MyStrategy class and replace the final MyStrategy.backtest(...) call with a broker runner. This example uses Alpaca paper trading:
export ALPACA_API_KEY = 'your-alpaca-key' export ALPACA_API_SECRET = 'your-alpaca-secret' export ALPACA_IS_PAPER = true python my_strategy.py
import os from lumibot.brokers import Alpaca from lumibot.traders import Trader ALPACA_CONFIG = { "API_KEY" : os . environ [ "ALPACA_API_KEY" ], "API_SECRET" : os . environ [ "ALPACA_API_SECRET" ], "PAPER" : os . environ . get ( "ALPACA_IS_PAPER" , "true" ) . lower () != "false" , } broker = Alpaca ( ALPACA_CONFIG ) strategy = MyStrategy ( broker = broker ) trader = Trader () trader . add_strategy ( strategy ) trader . run_all ()
Start with paper trading. When you are ready for live trading, use the same strategy class and switch your broker account/configuration intentionally.
For full setup guides, broker tutorials, AI-agent docs, examples, and deployment notes, use the Lumibot documentation.
AI Trading Team
Lumibot now includes a built-in AI agent runtime for financial research, reasoning, debate, risk review, and trade execution. Agents can inspect market data, read filings, query indicators, search memory, compare macro context, and submit orders through the same Lumibot strategy loop used by normal backtests and live trading.
Classic Python strategies are still first-class. Lumibot lets you choose the right level of intelligence: fixed rules, AI agents, or a hybrid where Python handles the hard gates and agents reason through evidence.
Built-in AI agent tools include market/account state, order inspection, DuckDB queries, documentation search, Alpaca news when credentials exist, technical indicators, SEC fundamentals and filings, FRED macro data, local memory, and Telegram notifications.
Explore existing AI strategies
Start with stock opening range breakout, large-cap stock teams, or macro research.
Explore the public Macro Insight AI: Bridgewater-Style Strategy listing on BotSpot. Inspect their published code and available observations before using them.
These educational implementations have no affiliation or endorsement from the named firms or people. BotSpot plans, model usage, broker access, and data requirements may apply.
Design Your AI Trading Team
An AI trading team is just a group of agents with different jobs inside the same Lumibot strategy. You can build a single-agent strategy, a specialist research flow, bull/bear/neutral teams, model-vs-model debates, deterministic execution gates, or agent reviewers layered on top of normal Python logic.
Example: Research, Bull, Bear, and Trader Agents
Here is one example pattern: a researcher gathers evidence, bull and bear agents debate the trade, and a trader agent decides what to buy or sell.
In this pattern, each agent has a job:
Research Agent: builds the evidence pack from market data, filings, fundamentals, news, macro data, and indicators. Bull Agent: turns that evidence into the strongest long thesis. Bear Agent: challenges the thesis, looks for risk, and argues for avoiding, delaying, or reducing the trade. Trader / Portfolio Manager Agent: checks cash, positions, open orders, and risk limits, then decides whether to trade.
The copy-paste example below implements that exact team. It uses GPT-6 Luna on medium reasoning, LumiBot's default model.
To run it with a broker in paper mode, set your AI and Alpaca credentials and run the file:
export OPENAI_API_KEY = 'your-key-here' export ALPACA_API_KEY = 'your-alpaca-key' export ALPACA_API_SECRET = 'your-alpaca-secret' export ALPACA_IS_PAPER = true python ai_trading_team_bull_bear_leveraged_etf.py
To backtest the same strategy instead, change IS_BACKTESTING = False to IS_BACKTESTING = True in the runner:
export OPENAI_API_KEY = 'your-key-here' python ai_trading_team_bull_bear_leveraged_etf.py
Save this as ai_trading_team_bull_bear_leveraged_etf.py . If an AI key is missing or invalid, Lumibot stops and prints a clear provider key error with a link to create a key.
import os from datetime import datetime from lumibot.strategies.strategy import Strategy class AITradingTeamBullBearLeveragedETFStrategy ( Strategy ): parameters = { "universe" : [ "TQQQ" , "SQQQ" , "UPRO" , "SPXU" , "UDOW" , "SDOW" , "TNA" , "TZA" , "TECL" , "TECS" , "SOXL" , "SOXS" , "WEBL" , "WEBS" , "FAS" , "FAZ" , "LABU" , "LABD" , "ERX" , "ERY" , "GUSH" , "DRIP" , "DRN" , "DRV" , "TMF" , "TMV" , "NUGT" , "DUST" ], } def initialize ( self ): self . sleeptime = "1D" model = os . environ . get ( "AI_TRADING_TEAM_MODEL" , "openai/gpt-6-luna" ) # The first three agents are read-only. They can reason, but cannot trade. self . agents . create ( name = "researcher" , model = model , allow_trading = False , system_prompt = "Rank the ETFs by upside. Be direct." , ) self . agents . create ( name = "bull" , model = model , allow_trading = False , system_prompt = "Argue for the strongest money-making trade." , ) self . agents . create ( name = "bear" , model = model , allow_trading = False , system_prompt = "Point out the biggest risk, briefly." , ) # Only this final agent can submit orders through Lumibot. self . agents . create ( name = "trader" , model = model , allow_trading = True , system_prompt = "Buy one ETF from the universe aggressively. Use nearly all cash." , ) def on_trading_iteration ( self ): # Each trading day, pass the same market context through the team. context = { "date" : self . get_datetime () . date () . isoformat (), "universe" : self . parameters [ "universe" ], } research = self . agents [ "researcher" ] . run ( task_prompt = "Pick the strongest ETF." , context = context , ) bull = self . agents [ "bull" ] . run ( task_prompt = "Make the bull case." , context = { ** context , "research" : research . summary }, ) bear = self . agents [ "bear" ] . run ( task_prompt = "Make the bear case." , context = { ** context , "research" : research . summary , "bull" : bull . summary }, ) self . agents [ "trader" ] . run ( task_prompt = "Sell anything that is not the pick, then buy the best ETF with nearly all available cash." , context = { ** context , "research" : research . summary , "bull" : bull . summary , "bear" : bear . summary }, ) if __name__ == "__main__" : IS_BACKTESTING = False if IS_BACKTESTING : from lumibot.backtesting import YahooDataBacktesting AITradingTeamBullBearLeveragedETFStrategy . backtest ( YahooDataBacktesting , datetime ( 2026 , 4 , 7 ), datetime ( 2026 , 5 , 22 ), ) else : from lumibot.brokers import Alpaca from lumibot.traders import Trader ALPACA_CONFIG = { "API_KEY" : os . environ [ "ALPACA_API_KEY" ], "API_SECRET" : os . environ [ "ALPACA_API_SECRET" ], "PAPER" : os . environ . get ( "ALPACA_IS_PAPER" , "true" ) . lower () != "false" , } broker = Alpaca ( ALPACA_CONFIG ) strategy = AITradingTeamBullBearLeveragedETFStrategy ( broker = broker ) trader = Trader () trader . add_strategy ( strategy ) trader . run_all ()
Backtests are not expected future performance. The point is that the full AI trading team runs inside Lumibot's normal broker and backtest loops, so the decisions, orders, and artifacts are inspectable before you connect real money.
More AI Trading Team Examples
These examples show different ways to organize an AI trading team. Each page explains the inspiration, the agent flow, how to run it with a broker in paper mode, and how to backtest it.
Run Lumibot Without Managing Servers
BotSpot is the managed cloud built around Lumibot. It makes Lumibot easier and cheaper to run because the data, backtesting workers, broker connections, scheduling, monitoring, logs, alerts, and kill switches are already wired together.
BotSpot is not a generic chatbot bolted onto a broker account. Its AI workflows, prompts, MCP tools, backtest setup, broker paths, and deployment flow are built for Lumibot.
Backtesting data included. Use hosted stock, futures, options, FRED macro, SEC filing, and other supported data without wrangling every feed and API key yourself. Some data is included; premium data can be much cheaper than buying direct subscriptions for occasional experiments.
Use hosted stock, futures, options, FRED macro, SEC filing, and other supported data without wrangling every feed and API key yourself. Some data is included; premium data can be much cheaper than buying direct subscriptions for occasional experiments. Cheaper deployment at scale. Scheduled and periodic bots should not need a full always-on server per strategy. BotSpot runs Lumibot bots on managed infrastructure built for this workflow, with monitoring and controls included.
Scheduled and periodic bots should not need a full always-on server per strategy. BotSpot runs Lumibot bots on managed infrastructure built for this workflow, with monitoring and controls included. Lumibot-tuned AI. Generic coding tools can write Python, but BotSpot is tuned for Lumibot strategy structure, broker setup, backtests, artifacts, and deployment.
Generic coding tools can write Python, but BotSpot is tuned for Lumibot strategy structure, broker setup, backtests, artifacts, and deployment. MCP for coding agents. Connect BotSpot to Codex, Claude Code, Cursor, and other MCP clients so your coding agent can run backtests, inspect artifacts, compare results, and prepare deployment instead of only generating code.
Connect BotSpot to Codex, Claude Code, Cursor, and other MCP clients so your coding agent can run backtests, inspect artifacts, compare results, and prepare deployment instead of only generating code. Work from anywhere. Use the same strategy workspace from the web, your phone, Telegram, Discord, Claude, ChatGPT, and coding tools. Start in one place and continue in another.
Use the same strategy workspace from the web, your phone, Telegram, Discord, Claude, ChatGPT, and coding tools. Start in one place and continue in another. Marketplace and strategy library. Browse existing strategy code, clone and adapt strategies, run strategies where available, and publish your own strategies when you are ready.
Browse existing strategy code, clone and adapt strategies, run strategies where available, and publish your own strategies when you are ready. Observability and control. Inspect why a bot bought or sold, review charts, logs, decisions, orders, notifications, audit history, and kill-switch controls in one place.
Deploy Live
Option A: BotSpot (managed cloud)
BotSpot is the managed path for taking a Lumibot strategy from idea to backtest to paper or live trading. It handles the expensive and fragile parts around the strategy: hosted data setup for supported backtests, parallel backtest runs, broker connections, scheduling, logs, alerts, monitoring, audit history, and kill-switch controls.
This is especially useful when your strategy only needs to run daily or periodically. You get the same Lumibot code path without paying for always-on infrastructure, maintaining a scheduler, hand-wiring broker secrets, or building your own log and alerting stack.
Option B: Self-hosted (full control)
Run Lumibot on your own machine with any supported broker:
from lumibot.brokers import Alpaca from lumibot.traders import Trader ALPACA_CONFIG = { "API_KEY" : "your-key" , "API_SECRET" : "your-secret" , "PAPER" : True , } broker = Alpaca ( ALPACA_CONFIG ) strategy = MyStrategy ( broker = broker ) trader = Trader () trader . add_strategy ( strategy ) trader . run_all ()
Supported Brokers
Lumibot supports stocks, options, crypto, futures, forex, indexes, and prediction contracts across several broker integrations:
Alpaca
Interactive Brokers and Interactive Brokers REST
Tradier
Schwab
Tradovate
TopstepX futures (via ProjectX)
Bitunix
Polymarket prediction-contract trading and backtesting
Selected CCXT crypto paths. Coinbase, Kraken, and WEEX have auto-detected credential paths; KuCoin, Binance, and BitMEX have documented manual CCXT setup paths; Kraken, Binance, KuCoin, BitMEX, Bybit, and OKX have documented backtesting examples. Lumibot does not claim blanket support for every CCXT exchange.
Select Backtesting Data Sources
Lumibot can backtest from free daily data, broker data, premium market data, and your own files:
Yahoo Finance
Alpaca
Interactive Brokers REST
ThetaData
Polygon/Massive
DataBento
Tradier
Schwab
Polymarket prediction-contract price history
CCXT backtesting examples: Kraken, Binance, KuCoin, BitMEX, Bybit, and OKX
Pandas/CSV dataframes
Recommended Data Provider
For the deepest historical coverage (stocks, options, futures, indexes), we recommend ThetaData. Use promo code BotSpot10 for 10% off your first order.
AI Trading Agents
Lumibot includes a built-in AI trading agent runtime. Build agents that run identically in backtests and live trading.
Create agents with self.agents.create(...)
The default model is openai/gpt-6-luna on medium reasoning; set model= per agent to use any other LiteLLM/ADK-supported provider string
on medium reasoning; set per agent to use any other LiteLLM/ADK-supported provider string Make research agents read-only with allow_trading=False
Give agents built-in SEC fundamentals, filings, FRED macro data, indicators, memory, and notifications
Use DuckDB for time-series analysis instead of dumping raw bars into prompts
for time-series analysis instead of dumping raw bars into prompts Mount external MCP servers for news, macro data, filings, or any domain-specific tools
for news, macro data, filings, or any domain-specific tools Replay identical agent decisions in backtests without paying for another model call
Use BotSpot MCP when you want an AI coding agent to generate Lumibot strategies, launch backtests, inspect artifacts, and iterate without leaving your editor.
Start here:
Memory and Traceability
AI strategies can record proposals, risk notes, actual trading decisions, submitted orders, lessons, open theses, tool calls, and run artifacts as local SQLite and Parquet files. This makes an AI backtest reviewable instead of a black box: you can inspect why the agent traded, which tools it used, what memory it retrieved, and what it remembered for later iterations. Memory events include agent/model-call provenance when they come from agent tools.
Community Strategies
Browse and contribute open-source strategies: lumibot-strategies. For hosted strategy discovery with performance, descriptions, visuals, and deploy flows, use the BotSpot marketplace.
Example Strategies
Lumibot includes 25+ example strategies covering stocks, options, crypto, futures, forex, and Polymarket prediction contracts:
# Run a simple buy-and-hold backtest python -m lumibot.example_strategies.stock_buy_and_hold # Or explore all examples ls lumibot/example_strategies/
Browse all examples: example_strategies/
Polymarket example: polymarket_prediction_contract.py
External example repo: stock_example_algo shows a minimal strategy repository you can run yourself or adapt inside BotSpot.
Backtesting Data Sources
Select a data source via environment variable (overrides code):
export BACKTESTING_DATA_SOURCE = thetadata # or yahoo, ibkr, polygon, polymarket
Multi-provider routing by asset type:
export BACKTESTING_DATA_SOURCE = '{"default":"thetadata","option":"thetadata","crypto":"ibkr","crypto_future":"ibkr","future":"ibkr","cont_future":"ibkr"}'
Crypto futures/perpetual backtests can route Asset.AssetType.CRYPTO_FUTURE through spot crypto history. Quote symbols are preserved: BTCUSDT uses BTC/USDT spot history when that pair is available from the selected crypto data source. LumiBot must not silently replace a requested USDT, USDC, EUR, or other quote with USD; missing pairs should fail honestly or be changed explicitly in strategy code.
Data source comparison
Data Source OHLCV Split Adjusted Dividends Dividend Adjusted Returns Yahoo Yes Yes Yes Yes Alpaca Yes Yes No No Polygon Yes Yes No No Tradier Yes Yes No No Polymarket Yes N/A N/A N/A Pandas* Yes Yes Yes Yes
*Pandas loads CSV files in Yahoo dataframe format, which can contain dividends.
Learn More
Project Growth
AI Bootcamp
Learn to build, backtest, and deploy trading strategies using AI. Join 2,400+ traders.
Contributing
We welcome contributions! Here's a video to help you get started: Watch The Video
Steps:
Clone the repository Create a new branch: git switch -c my-feature Install dev dependencies: pip install -r requirements_dev.txt && pip install -e . Make your changes Run tests: pytest Create a pull request
Running Tests
pytest # Run all tests pytest tests/test_asset.py # Run a specific test file coverage run ; coverage report # Show code coverage
Remote Cache Configuration
Lumibot can mirror its local parquet caches to AWS S3. See docs/remote_cache.md for configuration.
Architecture Documentation
Disclaimer
This software is provided for educational and informational purposes only. It is not financial advice and does not constitute a recommendation to buy or sell any security. Lumibot and BotSpot are not registered broker-dealers or financial advisors. Algorithmic trading involves substantial risk of loss, including the possibility of losses greater than your initial investment. Software bugs and errors can lead to rapid financial losses. Past backtest performance does not guarantee future results. Use this software at your own risk. You are solely responsible for compliance with all applicable laws and regulations regarding the assets you choose to trade.
Affiliate disclosure: some provider links or promo codes, including ThetaData, may support continued Lumibot development.
License
GNU General Public License v3.0 - View License
Contribute
See CONTRIBUTING.md for reproducible bugs, examples, tests, and focused pull requests. If LumiBot is useful to your work, star the repository and share an example with another developer.
CRYPTO
CoinDesk
09 Oct 2026 · 04:45
Standard Chartered to expand institutional crypto and RWA custody to Singapore
Standard Chartered (STAN) plans to offer custody in Singapore for selected cryptocurrencies, stablecoins and tokenized real-world assets, expanding a digital asset business that already reaches financial hubs including the United Arab Emirates (UAE), Luxembourg …
Standard Chartered (STAN) plans to offer custody in Singapore for selected cryptocurrencies, stablecoins and tokenized real-world assets, expanding a digital asset business that already reaches financial hubs including the United Arab Emirates (UAE), Luxembourg and Hong Kong.
The service, which remains subject to applicable regulatory requirements, would be available to institutional clients and accredited investor corporate clients, the bank said Thursday. It would sit within Standard Chartered’s financing and securities-services business rather than operate as a retail crypto product.
“As adoption grows, we are seeing institutional use cases and client interest emerge around tokenised funds, ETFs and precious metals, as clients look for more efficient ways to hold, transfer and mobilise assets,” Ying Ying Tan, global head of digital assets and securities services at Standard Chartered told CoinDesk via email.
“Our Singapore launch further strengthens our ability to help clients bridge traditional and digital markets through secure, regulated and bank-grade infrastructure,” she added.
The move is not a first for a global bank. BNY, for example, expanded its digital-asset custody platform to include USDC custody and minting, and later added staking.
CRYPTO
Crypto Briefing
09 Oct 2026 · 04:45
Google drives Finland’s data center boom with largest European investment
A pledge of at least €13 billion for AI infrastructure is pulling new data center projects into Finland, though regulators have already halted work at two sites Google has picked Finland for the biggest …
A pledge of at least €13 billion for AI infrastructure is pulling new data center projects into Finland, though regulators have already halted work at two sites
Google has picked Finland for the biggest single bet it has ever made in Europe. The company announced on September 9, 2026, that it will invest at least €13 billion ($15.1 billion) in AI infrastructure and data centers across the country.
There is one complication. A month after the announcement, Finnish regulators told Google to stop work at two of its new sites.
Where the €13 billion is going
The spending is scheduled to land over roughly two years, covering 2027 to 2028. It will fund three entirely new data centers in Kajaani, Muhos, and Vaala.
Google will also expand its existing campus in Hamina, which has been running since 2009. For scale, Google had already put €4.5 billion into Hamina before this announcement. The new pledge is nearly three times that figure, and it is described as a floor rather than a ceiling.
The jobs projections are hefty. The investment is expected to support more than 37,000 jobs during the construction phase, with approximately 16,000 of those directly in construction work.
Advertisement
Once the facilities are operational, the project is expected to sustain around 7,000 ongoing jobs. Those positions are projected to pay wages approximately 24% above the Finnish median.
The investment is forecast to add an average of €3.6 billion a year to Finland’s GDP.
AI, tech, and the markets they move—in one daily briefing. Daily. Free. Join 34,000+ readers across crypto, finance, and policy. Email address Subscribe free We respect your privacy. Unsubscribe anytime.
Powering the machines
Google signed a 22-year power purchase agreement with utility Fortum that lets it buy up to 50% of the output from the Loviisa nuclear plant. The arrangement is also expected to support grid stability.
Google has also lined up contracts for wind energy and a 94 MW battery system, which can store power and release it when demand spikes or the wind drops off.
Why Finland keeps winning these deals
Finland’s pitch to data center operators comes down to two things: the cold and the grid. Low temperatures sharply cut the cost of keeping servers from overheating, which is one of the largest ongoing expenses in running a facility.
The country also offers access to cleaner energy, including nuclear and hydroelectric power.
The regulators hit pause
The rollout hit a snag on October 6, 2026. Finland’s Licensing and Supervisory Agency (LVV) ordered work to stop at the Muhos and Kajaani sites.
The issue was timing. Forest had been cleared at the sites before environmental impact assessments were finished.
Google acknowledged it had fallen short of compliance. The company pledged to follow the rules going forward and has outlined biodiversity measures, including planting 130 hectares of trees at the Muhos site where work was halted.
What this means
For Finland, the stakes are mostly economic, and they are large. A projected €3.6 billion annual GDP contribution and thousands of above-median-wage jobs would reshape regions like Kajaani, Muhos, and Vaala.
Energy is the other pressure point. Committing up to half of Loviisa’s output to one customer for 22 years is a major structural shift for Finland’s power market.
CRYPTO
Crypto Briefing
09 Oct 2026 · 04:45
BOE’s Pill stresses need for strong focus on inflation control
This article examines how recent events may relate to prediction market pricing. It reflects interpretive analysis of publicly available information and is provided for informational purposes only. Observers will be monitoring upcoming economic indicators, …
This article examines how recent events may relate to prediction market pricing. It reflects interpretive analysis of publicly available information and is provided for informational purposes only.
Observers will be monitoring upcoming economic indicators, such as inflation and wage growth data, ahead of the MPC’s November meeting. Indications from other MPC members, including Governor Andrew Bailey, could provide further insights into the Bank’s policy direction. Any shifts in energy prices or geopolitical developments may also influence market expectations and the Bank’s approach to interest rates.
Bank of England Chief Economist Huw Pill has emphasized the need for monetary policy to prioritize controlling inflation. Pill’s remarks come as UK inflation remains above the target at 3.1%, with the Bank Rate at 3.75%. His comments suggest a cautious approach to monetary policy amid concerns about persistent inflationary pressures from rising energy costs and geopolitical tensions. While Pill’s statement does not confirm an imminent decision by the Monetary Policy Committee (MPC) to raise rates, it indicates a continued focus on inflation management.
Disclaimer
This article contains analysis of publicly available information and market data and is for informational purposes only. It does not constitute investment advice or a recommendation to buy, sell, or hold any asset or contract.
Content may include AI-assisted interpretation and may be incomplete or subject to change. Market conditions may evolve rapidly, and the timing of information may affect how it is interpreted.
Market participants may act on similar information at or around the time it becomes available. You are solely responsible for any decisions made based on this content.
For additional details, please review our full Disclaimer & Risk Disclosure.