binance-futures-signal-bot
Professional automated trading bot for Binance, Bybit, and OKX Futures with multi-strategy engine, Telegram/TradingView signal integration, and real-time P&L dashboard.
What this skill does
# Binance Futures Signal Bot
> Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection.
Automated trading bot for Binance, Bybit, and OKX Futures markets. Receives signals from Telegram channels, TradingView webhooks, or custom APIs, then executes trades with configurable leverage, dynamic position sizing, trailing stop-loss, and a real-time P&L terminal dashboard.
---
## Installation
```bash
git clone https://github.com/Whit1985/Binance-Futures-Signal-Bot.git
cd Binance-Futures-Signal-Bot
pip install -r requirements.txt
```
Or via the interactive menu:
```bash
python main.py # choose option 1 → Install Dependencies
```
**Required Python: 3.10+**
Key dependencies:
| Package | Purpose |
|---|---|
| `rich` | Terminal UI / dashboards |
| `python-binance` | Binance REST & WebSocket |
| `ccxt` | Unified multi-exchange interface |
| `pandas` | OHLCV data & indicators |
| `ta` | Technical analysis (RSI, MACD, BB, EMA) |
| `websockets` | Real-time market streams |
| `cryptography` | Secure key storage |
---
## Quick Start
```bash
python main.py
```
Interactive menu options:
```
1 → Install Dependencies
2 → Settings (API keys, exchange, leverage)
3 → About
4 → Connect Signal Source (Telegram / TradingView / API)
5 → Start Auto Trading
6 → Strategy Configuration
7 → Position Manager (view & close positions)
8 → P&L Dashboard
0 → Exit
```
**Windows:**
```batch
run.bat
```
**Linux / macOS:**
```bash
chmod +x run.sh && ./run.sh
```
---
## Configuration
### config.json (full reference)
```json
{
"exchange": "binance",
"api_key": "",
"api_secret": "",
"testnet": false,
"leverage": 10,
"max_position_pct": 5.0,
"trailing_stop_pct": 1.5,
"signal_source": "telegram",
"telegram_bot_token": "",
"telegram_channel_id": "-100XXXXXXXXXX",
"tradingview_webhook_port": 8080,
"strategies": {
"ema_crossover": {"enabled": true, "fast": 9, "slow": 21},
"rsi_divergence": {"enabled": true, "period": 14, "overbought": 70, "oversold": 30},
"bollinger_breakout":{"enabled": false, "period": 20, "std_dev": 2.0},
"macd_momentum": {"enabled": true, "fast": 12, "slow": 26, "signal": 9}
},
"pairs": ["BTCUSDT", "ETHUSDT", "SOLUSDT"],
"risk_management": {
"max_open_positions": 5,
"max_daily_loss_pct": 3.0,
"stop_loss_pct": 2.0,
"take_profit_pct": 4.0
}
}
```
### Environment Variables (preferred for secrets)
```bash
export BINANCE_API_KEY="your_api_key_here"
export BINANCE_API_SECRET="your_api_secret_here"
export BYBIT_API_KEY="your_bybit_key"
export BYBIT_API_SECRET="your_bybit_secret"
export OKX_API_KEY="your_okx_key"
export OKX_API_SECRET="your_okx_secret"
export OKX_PASSPHRASE="your_okx_passphrase"
export TELEGRAM_BOT_TOKEN="your_telegram_bot_token"
```
Never commit `config.json` with real keys — it is `.gitignore`d by default.
---
## Exchange Setup
### Binance Futures
```python
# config.py usage pattern
import os
import json
config = {
"exchange": "binance",
"api_key": os.environ.get("BINANCE_API_KEY"),
"api_secret": os.environ.get("BINANCE_API_SECRET"),
"testnet": True, # always test first
"leverage": 5,
"pairs": ["BTCUSDT", "ETHUSDT"]
}
with open("config.json", "w") as f:
json.dump(config, f, indent=2)
```
### Bybit Perpetual
```json
{
"exchange": "bybit",
"api_key": "",
"api_secret": "",
"leverage": 5,
"pairs": ["BTCUSDT", "ETHUSDT"]
}
```
### OKX Perpetual Swap
```json
{
"exchange": "okx",
"api_key": "",
"api_secret": "",
"okx_passphrase": "",
"leverage": 5,
"pairs": ["BTC-USDT-SWAP", "ETH-USDT-SWAP"]
}
```
---
## Signal Sources
### 1. Telegram Channel
```python
# Setup steps:
# 1. Create bot at https://t.me/BotFather → get token
# 2. Add bot to signal channel as admin
# 3. Get channel ID (negative number starting with -100)
config_snippet = {
"signal_source": "telegram",
"telegram_bot_token": os.environ.get("TELEGRAM_BOT_TOKEN"),
"telegram_channel_id": "-1001234567890"
}
```
### 2. TradingView Webhook
```json
{
"signal_source": "tradingview",
"tradingview_webhook_port": 8080
}
```
TradingView alert message format (JSON):
```json
{
"symbol": "BTCUSDT",
"side": "BUY",
"leverage": 10,
"price": "{{close}}",
"strategy": "ema_crossover"
}
```
Point your TradingView alert webhook URL to:
```
http://YOUR_SERVER_IP:8080/webhook
```
### 3. Custom API Signal Source
```json
{
"signal_source": "api",
"custom_api_url": "https://your-signal-provider.com/signals",
"custom_api_key": ""
}
```
---
## Strategies
### EMA Crossover
```json
{
"ema_crossover": {
"enabled": true,
"fast": 9,
"slow": 21
}
}
```
- **LONG**: fast EMA crosses above slow EMA
- **SHORT**: fast EMA crosses below slow EMA
- Best timeframes: 15m, 1h, 4h
### RSI Divergence
```json
{
"rsi_divergence": {
"enabled": true,
"period": 14,
"overbought": 70,
"oversold": 30
}
}
```
- **Bullish**: price lower lows + RSI higher lows → LONG
- **Bearish**: price higher highs + RSI lower highs → SHORT
### Bollinger Band Breakout
```json
{
"bollinger_breakout": {
"enabled": true,
"period": 20,
"std_dev": 2.0
}
}
```
- **LONG**: close above upper band
- **SHORT**: close below lower band
### MACD Momentum
```json
{
"macd_momentum": {
"enabled": true,
"fast": 12,
"slow": 26,
"signal": 9
}
}
```
- Trades histogram crossovers with signal line confirmation
- Zero-line acts as trend filter
### Running Multiple Strategies
All enabled strategies run per candle. The bot takes the **highest-confidence signal** and filters conflicts:
```json
{
"strategies": {
"ema_crossover": {"enabled": true, "fast": 9, "slow": 21},
"rsi_divergence": {"enabled": true, "period": 14},
"bollinger_breakout": {"enabled": false},
"macd_momentum": {"enabled": true}
}
}
```
---
## Risk Management
```json
{
"leverage": 10,
"max_position_pct": 5.0,
"trailing_stop_pct": 1.5,
"risk_management": {
"max_open_positions": 5,
"max_daily_loss_pct": 3.0,
"stop_loss_pct": 2.0,
"take_profit_pct": 4.0
}
}
```
| Parameter | Description |
|---|---|
| `leverage` | 1x–125x (start with 2–5x) |
| `max_position_pct` | % of account balance per trade |
| `trailing_stop_pct` | Trailing SL activates after price moves this % in profit |
| `max_open_positions` | Hard cap on concurrent open trades |
| `max_daily_loss_pct` | Bot halts trading if daily loss exceeds this |
| `stop_loss_pct` | Fixed stop-loss distance from entry |
| `take_profit_pct` | Fixed take-profit distance from entry |
**Trailing stop-loss behavior:** Once position is in profit by `trailing_stop_pct`, the stop follows the peak price. Position closes automatically on reversal of that distance.
---
## Testnet Mode
Always validate on testnet before live trading:
```json
{
"testnet": true,
"exchange": "binance"
}
```
Binance testnet: https://testnet.binancefuture.com
Bybit testnet: https://testnet.bybit.com
---
## Project Structure
```
Binance-Futures-Signal-Bot/
├── main.py # Entry point — interactive menu
├── bot_actions.py # Core trading action handlers
├── config.py # Configuration loader (JSON + env vars)
├── requirements.txt
├── run.bat / run.sh # Platform launchers
├── actions/
│ ├── about.py # Feature display
│ ├── install.py # Dependency installer
│ └── settings.py # Configuration UI
├── utils/
│ ├── __init__.py # Environment bootstrap
│ ├── compat.py # Platform compatibility
│ ├── ui.py # Rich terminal interface
│ ├── http.py # HTTP client
│ ├── integrity.py # Data integrity checks
│ └── bootstrap.py # Runtime initialization
└── release/
└── README.md # Pre-compiled binary info
```
---
## Common Patterns
### Load Config Programmatically
```python
import json
import os
def load_config(path="config.json"):
with open(path) as fRelated in Data & Analytics
clawarr-suite
IncludedComprehensive management for self-hosted media stacks (Sonarr, Radarr, Lidarr, Readarr, Prowlarr, Bazarr, Overseerr, Plex, Tautulli, SABnzbd, Recyclarr, Unpackerr, Notifiarr, Maintainerr, Kometa, FlareSolverr). Deep library exploration, analytics, dashboard generation, content management, request handling, subtitle management, indexer control, download monitoring, quality profile sync, library cleanup automation, notification routing, collection/overlay management, and media tracker integration (Trakt, Letterboxd, Simkl).
querying-soql
IncludedSOQL query generation, optimization, and analysis with 100-point scoring. Use this skill when the user needs SOQL/SOSL authoring or optimization: natural-language-to-query generation, relationship queries, aggregates, query-plan analysis, and performance or safety improvements for Salesforce queries. TRIGGER when: user writes, optimizes, or debugs SOQL/SOSL queries, touches .soql files, or asks about relationship queries, aggregates, or query performance. DO NOT TRIGGER when: bulk data operations (use handling-sf-data), Apex DML logic (use generating-apex), or report/dashboard queries.
app-store-optimization
IncludedApp Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklists, and tracking ranking changes.
habit-flow
IncludedAI-powered atomic habit tracker with natural language logging, streak tracking, smart reminders, and coaching. Use for creating habits, logging completions naturally ("I meditated today"), viewing progress, and getting personalized coaching.
app-store-optimization
IncludedApp Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklists, and tracking ranking changes.
visualizing-data
IncludedBuilds dashboards, reports, and data-driven interfaces requiring charts, graphs, or visual analytics. Provides systematic framework for selecting appropriate visualizations based on data characteristics and analytical purpose. Includes 24+ visualization types organized by purpose (trends, comparisons, distributions, relationships, flows, hierarchies, geospatial), accessibility patterns (WCAG 2.1 AA compliance), colorblind-safe palettes, and performance optimization strategies. Use when creating visualizations, choosing chart types, displaying data graphically, or designing data interfaces.