Jesse
An advanced crypto trading bot written in Python
Install / Use
npx skills add jesse-ai/jesseInstalls into whichever agent you are using.
README
Jesse
Jesse is an advanced crypto trading framework that aims to simplify researching and defining YOUR OWN trading strategies for backtesting, optimizing, and live trading.
What is Jesse?
Watch this video to get a quick overview of Jesse:
Why Jesse?
In short, Jesse is more accurate than other solutions, and way more simple. In fact, it is so simple that in case you already know Python, you can get started today, in matter of minutes, instead of weeks and months.
Key Features
- 📝 Simple Syntax: Define both simple and advanced trading strategies with the simplest syntax in the fastest time.
- 📊 Comprehensive Indicator Library: Access a complete library of technical indicators with easy-to-use syntax.
- 📈 Smart Ordering: Supports market, limit, and stop orders, automatically choosing the best one for you.
- ⏰ Multiple Timeframes and Symbols: Backtest and livetrade multiple timeframes and symbols simultaneously without look-ahead bias.
- 🔒 Self-Hosted and Privacy-First: Designed with your privacy in mind, fully self-hosted to ensure your trading strategies and data remain secure.
- 🛡️ Risk Management: Built-in helper functions for robust risk management.
- 📋 Metrics System: A comprehensive metrics system to evaluate your trading strategy's performance.
- 🔍 Debug Mode: Observe your strategy in action with a detailed debug mode.
- 🔧 Optimize Mode: Search strategy parameters efficiently with Optuna and parallel processing powered by Ray.
- 📈 Leveraged and Short-Selling: First-class support for leveraged trading and short-selling.
- 🔀 Partial Fills: Supports entering and exiting positions in multiple orders, allowing for greater flexibility.
- 🔔 Advanced Alerts: Create real-time alerts within your strategies for effective monitoring.
- 🔌 Jesse MCP: Connect Claude, Codex, Cursor, VS Code, Zed, and other MCP-compatible AI assistants directly to your local Jesse project.
- 🔧 Built-in Code Editor: Write, edit, and debug your strategies with a built-in code editor.
- 📊 Interactive Trading Charts: Inspect candles, strategy indicators, horizontal levels, orders, and completed trades across backtest, paper, and live sessions.
- 🔬 Rule Significance Testing: Test whether an entry rule shows genuine historical edge or could have appeared by chance.
- 🎲 Monte Carlo Analysis: Stress-test your strategies with trade-order shuffling and candles-based simulations to distinguish skill from luck and guard against overfitting.
- 🧠 Machine Learning: A built-in ML pipeline — gather labelled training data from backtests, train scikit-learn models (binary, multiclass, or regression), and deploy predictions directly inside your strategies.
- 🧪 Research API and Jupyter: Run backtests, optimization, significance tests, Monte Carlo analysis, candle workflows, and machine learning from Python scripts or notebooks.
- 🦀 Rust-Powered Indicators: Native Rust implementations make indicator-heavy strategies and large research runs substantially faster.
- 🤖 Reinforcement Learning — Coming Soon: First-class reinforcement-learning workflows built on Jesse's simulation and research stack are on the way.
- 📺 Youtube Channel: Jesse has a Youtube channel with screencast tutorials that go through example strategies step by step.
Dive Deeper into Jesse's Capabilities
Stupid Simple
Craft complex trading strategies with remarkably simple Python. Access 300+ indicators, multi-symbol/timeframe support, spot/futures trading, partial fills, and risk management tools. Focus on logic, not boilerplate.
class GoldenCross(Strategy):
def should_long(self):
# go long when the EMA 8 is above the EMA 21
short_ema = ta.ema(self.candles, 8)
long_ema = ta.ema(self.candles, 21)
return short_ema > long_ema
def go_long(self):
entry_price = self.price - 10 # limit buy order at $10 below the current price
qty = utils.size_to_qty(self.balance*0.05, entry_price) # spend only 5% of my total capital
self.buy = qty, entry_price # submit entry order
self.take_profit = qty, entry_price*1.2 # take profit at 20% above the entry price
self.stop_loss = qty, entry_price*0.9 # stop loss at 10% below the entry price
Backtest
Execute highly accurate and fast backtests without look-ahead bias. Utilize debugging logs, interactive charts with indicator support, and detailed performance metrics to validate your strategies thoroughly.

Interactive Trading Charts
Inspect your strategy where its decisions happened. Jesse combines candlesticks, strategy-added indicators and levels, executed orders, and completed trades in synchronized interactive charts. The same charting workflow is available for backtests and for running or completed paper/live sessions.

Expand a trade to inspect every execution, collapse or isolate indicator panes, follow OHLC and indicator values under the cursor, reset the view, use fullscreen mode, or export the chart as an image.

Explore Jesse's interactive charts →
Live/Paper Trading
Deploy strategies live with robust monitoring tools. Supports paper trading, multiple accounts, real-time logs & notifications (Telegram, Slack, Discord), interactive charts, spot/futures, DEX, and a built-in code editor.

Benchmark
Accelerate research using the benchmark feature. Run batch backtests, compare across timeframes, symbols, and strategies. Filter and sort results by key performance metrics for efficient analysis.

Jesse MCP: Your AI Assistant, Connected to Jesse
Jesse includes a local Model Context Protocol (MCP) server. Connect your preferred AI assistant and let it work with Jesse's real tools and project context instead of merely guessing how your trading framework behaves.
Through Jesse MCP, an assistant can help you write and improve strategies, manage candle data, run and inspect backtests, perform rule significance tests, optimize parameters, run Monte Carlo simulations, and link you directly to the saved results in the Jesse dashboard. Your strategies and data remain under your control in your self-hosted Jesse setup.
For example, you can ask:
Check whether my new entry rule is statistically significant, backtest it, optimize the promising parameters, and run a candles-based Monte Carlo analysis before we consider paper trading.
Connect Claude, Codex, Cursor, VS Code, or Zed to Jesse →
Rule Significance Testing
Before spending hours building and tuning a complete strategy, test whether its entry rule has a measurable historical edge. Jesse compares the rule against a bootstrap distribution of random entries on the same market history, helping you reject noisy ideas early and focus your research on signals worth developing.
Learn about Rule Significance Testing →
Monte Carlo Analysis
Stress-test your strategies beyond a single historical path. Jesse's Monte Carlo mode runs hundreds of simulations using trade-order shuffling (tests whether trade timing drove your results) and candles-based (tests robustness under slightly different market conditions) methods. Use it to distinguish skill from luck, understand the range of outcomes you can realistically expect, and catch overfitting early.
Machine Learning
Jesse includes a complete, end-to-end ML pipeline built for trading strategies:
- Gather data — run a backtest in gather mode; call
record_features({...})at each signal bar andrecord_label(name, value)when the outcome is known. Data is auto-saved to CSV. - Train a model — call
train_model()with any scikit-learn–compatible estimator and choose a task type:"binary"classification,"multiclass"classification, or"regression". Get a full report with feature importance, calibration, and metrics. - Deploy — switch to deploy mode and call
ml_predict()orml_predict_proba()inside your strategy. Model loading, scaling, and feature ordering are handled automatically.
# Gather phase — inside your strategy
def before(self):
self.record_features({
'rsi': ta.rsi(self.candles),
'adx': ta.adx(self.candles),
})
# Deploy phase — gate entries with model confidence
def should_long(self):
proba = self.ml_predict_proba()
return proba['long'] > 0.65
[Explore Jesse's machine-learning
Related Skills
python-debugpy
385.5kDebug Python with pdb, breakpoint(), post-mortem inspection, and debugpy remote attach.
skill-creator
385.5kCreate, edit, audit, tidy, validate, or restructure AgentSkills and SKILL.md files.
claude-opus-4-5-migration
140.6kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
automl-hyperparameter-optimization
40.5kAutoML and hyperparameter optimization rules for Python ML projects using Ray Tune, Optuna, PyCaret, and time-series AutoML libraries

