For Binance Traders

The Binance trading bot built for Python developers.

Write your strategy in Python, paste it in, click Start. WatchDog Bot handles the Binance connection via CCXT, the venv, the logs, and the AI-powered debugging when things break. Spot and futures supported.

Start Free Trial → View Bot Examples

Why automate on Binance?

Binance is the world's largest crypto exchange by volume — and the deep liquidity, tight spreads, and full API surface make it the natural home for algorithmic crypto trading. The only question is what platform you run your bot on.

You could rent a VPS, set up Docker, install Python, manage venvs, configure log rotation, and wire up alerts yourself. Or paste your code into WatchDog Bot and skip all of that.

What you actually get

→ Connection

CCXT integration, ready

Add Binance API key + secret in Settings. Bot pulls them via wd.connection("Binance"). Never hardcoded.

→ Isolation

One venv per bot

Different bots can use different ccxt versions. No conflicts. No pip-install nightmares.

→ Self-heal

Auto-installs dependencies

Forgot to install pandas? The runtime catches the ModuleNotFoundError, installs it, retries. You almost never see the error.

→ Logs

Real-time cloud logs

Every log line streams to a dashboard you can check from your phone. Filter by level. See what your bot is doing when you're not there.

→ AI Fix

One-click debugging

When your bot crashes, Claude reads the code + traceback and proposes a fix. ~70% success rate on common errors.

→ Multi-bot

Run many strategies at once

Spot momentum, futures grid, USDT-margined arb — every bot independent, all visible on one dashboard.

Common Binance bot patterns

Spot momentum / mean reversion

Classic moving-average crossover, RSI extremes, or VWAP-based strategies. CCXT exposes everything you need for OHLCV + order placement.

Grid trading

Place a ladder of buy and sell orders around a center price. Profits from sideways volatility. WatchDog Bot's per-bot state directory makes tracking filled levels easy.

Futures funding-rate arbitrage

Long the spot, short the perp when funding is positive. Earn funding payments while staying delta-neutral. Standard advanced crypto strategy.

DCA / scheduled accumulation

Buy a fixed amount every N hours. Boring, often outperforms active traders. Copy the DCA example.

Cross-exchange arbitrage

Watch BTC/USDT on Binance and one or two other exchanges. When the spread widens past your threshold, execute. See the example scanner.

A simple Binance bot in 20 lines

Moving-average crossover on BTC/USDT — buys when the 5-minute MA crosses above the 20-minute, sells when it crosses back.

import time
from collections import deque
import wd
import ccxt

conn = wd.connection("Binance")
ex = ccxt.binance({"apiKey": conn.api_key, "secret": conn.api_secret, "enableRateLimit": True})

short_ma = deque(maxlen=5)
long_ma  = deque(maxlen=20)
in_position = False

while True:
    try:
        price = float(ex.fetch_ticker("BTC/USDT")["last"])
        short_ma.append(price); long_ma.append(price)
        if len(long_ma) < 20:
            time.sleep(60); continue

        s, l = sum(short_ma)/len(short_ma), sum(long_ma)/len(long_ma)
        wd.log.info("price=%.2f short=%.2f long=%.2f", price, s, l)

        if s > l and not in_position:
            wd.log.info("BUY signal"); in_position = True
            if not wd.is_demo(): ex.create_market_buy_order("BTC/USDT", 0.001)
        elif s < l and in_position:
            wd.log.info("SELL signal"); in_position = False
            if not wd.is_demo(): ex.create_market_sell_order("BTC/USDT", 0.001)

        time.sleep(60)
    except Exception as e:
        wd.log.error("tick failed: %s", e); time.sleep(60)

Binance bot FAQ

Does this work with Binance.US?

Yes. CCXT supports both Binance.com and Binance.US — pick the right one when you create the connection. Note that Binance.US has a smaller market list than the global version.

Spot only, or futures too?

Both. CCXT's binance covers spot; binanceusdm and binancecoinm cover USDT-M and COIN-M futures respectively. Each can be its own WatchDog Bot connection.

Do you support websocket order updates?

Yes via CCXT Pro (which is part of the standard ccxt package now). Real-time fills and orderbook updates without REST polling.

What about rate limits?

Binance has six tiers of rate limits depending on endpoint and account level. CCXT's enableRateLimit: true handles the basics. For aggressive strategies you may want to implement a custom token bucket — see our guide.

Do I have to use CCXT?

No. CCXT is the easiest path, but you can use python-binance, the raw REST API, or roll your own HTTP client. WatchDog Bot doesn't lock you into a specific library — it's a runtime, not a framework.

How do I avoid leaking my API key in logs?

Never log conn.api_secret. Use the SDK's wd.log for everything else — it doesn't auto-capture variables. If you do print(conn) by mistake, the Connection repr masks the secret.

Run your Binance bot today

Free trial, no credit card. Your strategy live in under 10 minutes.

Start Free Trial →