SimpliBreakout: The Multi-Market Breakout and Trend Screener for Active Traders
Introduction
In fast-moving markets, timing a breakout or identifying early trend alignment can define a successful trading strategy. The SimpliBreakout suite is a Python-based toolkit designed to empower traders, analysts, and quant developers with advanced, customizable scanners for breakout detection, EMA crossovers, and peer comparisons.
It supports a wide range of global markets—from the S&P 500 and NASDAQ 100 to SET50, Nikkei 50, and HSI 50—and integrates seamlessly with Plotly visualizations and local AI sentiment models via Ollama.
Core Scanner: test10.py
At the heart of the system lies test10.py, the multi-market breakout and near-breakout scanner. It fetches OHLCV data via yfinance, applies filters for volume, close percentage, and volatility, and generates interactive Plotly charts enriched with RSI, EMA, and support/resistance overlays.
Key Capabilities
- Detection Modes: Breakout, near-breakout, and consolidation pre-filters.
- Indicators: RSI, EMA gating, ATR and daily gain caps.
- Markets Covered: Euronext, SET50/100, SSE50, NYSE, NASDAQ, S&P500, HSI, STI, Nikkei, Taiwan50, Vietnam50, and more.
- Charting: Interactive HTML or PNG charts with sloped trendlines, annotated news, and rumor scoring.
- AI Integration: Optional Ollama sentiment analysis for local insights and rumor evaluation.
Simplified API and CLI Wrapper: breakout.py
For developers who want cleaner integration or batch automation, breakout.py provides a thin wrapper around the core scanner.
It exposes a run_breakout(...) API and mirrors the CLI options for convenient scripting.
Example Usage
python breakout.py --markets sp500,nyse --charts --weekly-confirm
This command scans for weekly-confirmed breakouts across the S&P500 and NYSE, generating complete interactive charts.
Trend and Crossover Finder: trends.py
Momentum investors will appreciate trends.py, which helps identify long candidates based on trend alignment or EMA crossovers.
- Trend Mode: EMA(fast) > EMA(slow) with both lines rising and price above fast EMA.
- Crossover Mode: Detects fast EMA crossing slow EMA within a recent window.
- Extras: Optional RSI floors, liquidity filters, and Ollama sentiment enrichment.
- Output: Immediate Plotly charts with overlays and rumor annotations.
Resistance Retest Analyzer: retest.py
Before many breakouts, prices repeatedly test resistance levels—a key signal for traders.
retest.py identifies these retest clusters, analyzing volume trends, pullback depth, and price tightening.
Configurable Heuristics
- Lookback windows and touch tolerances.
- Minimum touches and separation distances.
- Volume increase and higher-low patterns.
- Optional breakout confirmation.
Like other modules, it supports immediate chart generation and sentiment overlays.
Peer Comparison Module: compare_peers.py
Valuation context is essential. compare_peers.py compares a stock against industry peers using market cap, EV/EBITDA, EV/Sales, margin, and return metrics.
Visualization
- EV/Sales vs Gross Margin
- EV/EBITDA vs Operating Margin
Results are ranked and plotted in interactive scatter charts, making relative valuation instantly visible.
Desktop Interface: ui_breakout.py
For those who prefer a GUI over the terminal, ui_breakout.py provides a Tkinter desktop app.
Users can configure markets, filters, and indicators, monitor live logs, and open generated charts instantly. Each run spawns an independent process for easy cancellation and resource control.
Unified Environment and Conventions
All modules share the same core infrastructure:
- Pools and Markets: Unified index loaders with fallback to yfinance listings.
- Chart Output: Saved under
charts/<Market>/<TICKER>.htmlor.png. -
Environment Variables:
NEWS_SENTIMENT=1— enables sentiment modeOLLAMA_MODEL— selects local AI modelOLLAMA_PROMPT— customizes sentiment prompt
- Debug Mode:
--debugfor detailed per-ticker diagnostics.
Example Quick Commands
# Core scan
python test10.py --markets sp50 --charts
# Wrapper usage
python breakout.py --markets sp500,nyse --charts --weekly-confirm
# Trend selector
python trends.py --markets sp500 --crossover --cross-lookback 5 --charts
# Resistance retest
python retest.py --markets sp50 --min-touches 3 --charts
# Peer comparison
python compare_peers.py --ticker NVDA --charts
Conclusion
The SimpliBreakout toolkit unites technical analysis, multi-market data, and AI-assisted insights into a modular Python ecosystem.
Whether you’re coding custom strategies, scanning for market leaders, or seeking retest setups before breakouts, this suite offers a powerful blend of flexibility, visualization, and intelligence—ready for traders and developers alike.
Get in Touch with us
Related Posts
- The Accounting Software Your Firm Uses Is Built for Your Clients, Not for You
- 2026年本地大模型(Local LLM)硬件选型实用指南
- Choosing Hardware for Local LLMs in 2026: A Practical Sizing Guide
- Why Your Finance Team Spends 40% of Their Week on Work AI Can Now Do
- 用纯开源方案搭建生产级 SOC:Wazuh + DFIR-IRIS + 自研集成层实战记录
- How We Built a Real Security Operations Center With Open-Source Tools
- FarmScript:我们如何从零设计一门农业IoT领域特定语言
- FarmScript: How We Designed a Programming Language for Chanthaburi Durian Farmers
- 智慧农业项目为何止步于试点阶段
- Why Smart Farming Projects Fail Before They Leave the Pilot Stage
- ERP项目为何总是超支、延期,最终令人失望
- ERP Projects: Why They Cost More, Take Longer, and Disappoint More Than Expected
- AI Security in Production: What Enterprise Teams Must Know in 2026
- 弹性无人机蜂群设计:具备安全通信的无领导者容错网状网络
- Designing Resilient Drone Swarms: Leaderless-Tolerant Mesh Networks with Secure Communications
- NumPy广播规则详解:为什么`(3,)`和`(3,1)`行为不同——以及它何时会悄悄给出错误答案
- NumPy Broadcasting Rules: Why `(3,)` and `(3,1)` Behave Differently — and When It Silently Gives Wrong Answers
- 关键基础设施遭受攻击:从乌克兰电网战争看工业IT/OT安全
- Critical Infrastructure Under Fire: What IT/OT Security Teams Can Learn from Ukraine’s Energy Grid
- LM Studio代码开发的系统提示词工程:`temperature`、`context_length`与`stop`词详解













