Press ▶ Stream for live logs, or ⬇ Fetch for recent history.
Check Orders
Runs check_orders.py — positions, P&L, balance⟳ auto-refreshes every 60s
check_orders.py output
Running check_orders.py...
PnL History
Runs pnl_tracker.py — full session breakdown⟳ auto-refreshes every 60s
pnl_tracker.py output
Running pnl_tracker.py...
Redeem Winnings
Runs redeem_winnings.py — sends won positions to wallet
⚠ On-Chain Transaction — sends a Polygon blockchain transaction. Ensure no open trade is active first. Gas fees apply.
redeem_winnings.py output
Click "Redeem Winnings" to run.
Wallet Approvals
One-time on-chain approval transactions for Polymarket CLOB
⚠ One-time setup only. Run Approve Contracts first, then Approve USDC. Each click sends an on-chain transaction.
Approval output
Select an approval to run.
Convert Funds
Wrap USDC.e or USDC → pUSD for live trading · Redeem winnings back to USDC.e
CLOB Balance (pUSD)
—
Available to trade
USDC.e Wallet
—
Bridged — wrappable to pUSD
USDC Wallet
—
Native — wrappable to pUSD
POL Balance
—
For gas fees
Redeemable Positions
—
Won — pending redemption
💡 How funds flow
Wins redeem → USDC.e wallet → Wrap to pUSD → Ready to trade
Buy USDC on Polygon → send to your wallet → wrap below → trade
ℹ Wrapping sends two on-chain transactions (approve + wrap). Each costs a small amount of POL for gas.
After wrapping, run Approve USDC in the Approvals tab if it's your first wrap.
Output
Click an action above to begin.
.env Configuration
Edit bot parameters — restart bot after saving any change
Private keys, API secrets and Telegram credentials are hidden and cannot be edited here. Use SSH for those.
Loading config...
After saving, restart the bot for changes to take effect:
Raw .env (read-only)
Loading...
Portfolio
Live position data from Polymarket — refreshes every 60s · ⚠ All-Time P&L shows only redeemed on-chain positions. Your full bot performance is in the Bot Trade Database below. Polymarket's -$283 includes all manual trades made before the bot started.
↗ Open Live Market
ℹ Winning positions disappear from Polymarket API after redemption.
This section shows any unredeemed wins (curPrice ≥ 0.95).
Your actual win history is in the Bot Trade Database above.
None pending
Closed Losses (0)
None
⚙️ Open Fade Settings
Edit BS_ parameters live — restart bot after saving any change
Secret keys (Telegram, private key) are hidden and must be edited via SSH.
After saving: docker restart openfade-bot
Paper Mode
BS_PAPER
Entry Mode
BS_POST_ONLY / BS_MARKET_ENTRY
Drift Filter
BS_DRIFT_FILTER
Kill Switch Override
BS_DAILY_DRAWDOWN_OVERRIDE
Overnight Gate
BS_OVERNIGHT_GATE — pause live trading overnight
Overnight Paper Mode
BS_OVERNIGHT_PAPER — collect paper data while gated
Loading...
Command output
Waiting for command…
Raw BS_ Settings (read-only)
Loading...
FAQ & Command Reference
Everything you need to operate the bot — no SSH required for most tasks
🤖 How the Bot Works
The bot monitors BTC 15-minute Up/Down markets on Polymarket. It uses the Chainlink oracle price feed — not Binance — because that's what Polymarket resolves on.
When Chainlink shows a strong directional move (e.g. DOWN=65%) but the market ask price is still below MAX_ENTRY_ASK, that gap is the arbitrage opportunity.
The bot enters, then exits via TAKE_PROFIT, TRAIL_STOP, NEAR_RESOLVE, or HARD_STOP depending on price action.
📊 Understanding the Stats
Win Rate ≥ 60% = Strong Edge
Win Rate 55-60% = Slight Edge
Win Rate 45-55% = Break Even
Profit Factor > 1.0 = Profitable
Current: 43.6% WR paper, 59% in recent session
Goal: 50+ trades at 55%+ before going live
⚙️ Key Parameters
ORACLE_MID_THRESHOLDMin oracle gap to trigger (0.60 = 60%)MAX_ENTRY_ASKMax price to buy at (default 0.75 = 75¢)CONFIDENCE_THRESHOLDMin composite confidence (0.52)TAKE_PROFIT_PCTExit at +35% gain (0.35)HARD_STOP_PCTExit at -14% loss (0.14)TRAIL_PCTTrail 10% below peak (0.10)LIVE_TRADING0=paper, 1=live (needs 3 flags)
🚦 Why No Trades?
ask > MAX — Market already repriced above your entry cap. BTC is in a sustained trend.
conf < threshold — Oracle gap exists but Binance momentum doesn't confirm direction.
edge < minimum — Gap between oracle and market price too small.
Best conditions: BTC makes a sharp move at the START of a new 15-min window, before the market reprices.