Methodology
Rufusbot.com is a real-money monitoring surface. It does not display paper trading, fresh OOS, or backtest PnL on the public dashboard.
PnL definition
The hero line is cumulative realized net PnL for the configured symbol, built from Binance USD-M Futures userTrades (realized PnL minus commission per fill) plus FUNDING_FEE income.
Unrealized open-position PnL is shown only as a health signal, not blended into the main realized PnL line.
Trade and win-rate definition
A trade is one completed position episode: flat → long or short → flat. Binance execution rows are grouped across partial fills and scaled entries before win rate, profit factor, best trade, or worst trade are calculated.
Open positions and breakeven episodes are excluded from win rate. A buy that closes a short remains part of a SHORT episode; it is not mislabeled as a new long trade.
Advanced statistics
Completed trades count flat-to-flat episodes, while execution fills count the underlying Binance userTrades rows. Average trade, average win, average loss, payoff ratio, profit factor, duration, and best/worst results are calculated from completed episode net PnL after commissions.
Maker share and executed notional are fill-level statistics. Funding is reported separately and remains included in cumulative dashboard PnL. All statistics begin at the configured live-session start.
Open position
The open-position panel uses Binance position-risk data for quantity, entry, break-even, mark and liquidation prices, notional, and unrealized PnL. Configured leverage comes from Binance symbol configuration.
Position age and fill count come from the reconstructed open episode. Open exposure is displayed separately and is never blended into realized PnL, completed-trade statistics, or win rate.
Data source
Server-rendered pages and API routes call the signed Binance Futures API using Cloudflare environment secrets. API keys never ship to the browser.
RUFUSBOT_LIVE_START_MS defines the beginning of the real-money monitoring window. Set it to the deployment start timestamp so old tests or unrelated account history are excluded.
Liveness
The homepage first renders with Binance data, then opens a Server-Sent Events stream. If the stream or Binance account state falls behind, the status pill changes away from LIVE and the live pulse stops.