Edge // DeskPrivate trading ledger
—
—
—
—
—
—

Equity curve start capital + realized, by close date

———

Performance computed from closed trades in the journal

0
—
—gross wins ÷ gross losses
—avg R per trade (needs stops logged)
—
—
—
—
—

Exit discipline the plan was ±2R against ∓1R — did your exits obey it?

—stop honoured or target taken
—closed between stop and target
—loss exceeded −1.15R
—plan says +2.00R
—plan says −1.00R
—at your actual win/loss shape

Target math what your goal demands per trade — judge it honestly

—

Reward : riskRequired win rateVerdict

Recent closes last five journal entries

SymbolSideClosedP/LRSetup

Open position stop is required — no stop, no measurable risk

Live prices come from Settings: a quote proxy URL (JSE symbols like NPN.JO, plus US and most global tickers) or a free Finnhub key (US only). Price cells stay editable either way.
SymbolSideQtyEntryStopTarget PriceValueUnrealizedR nowRisk left

Log a closed trade the journal is the product — 40–50 entries tell you if you have an edge

SymbolSideQtyEntryExitFees P/LRClosedSetupNotes

Watchlist levels you are stalking, not positions

SymbolLastTriggerDistanceNote

Daily brief not fetched yet

Headlines for every symbol in Positions and Watchlist. The AI brief classifies news tone — it does not predict which stocks will be profitable, because public news is largely priced in by the time you read it. Treat this as a reading list feeding your own decisions, and journal the outcomes like everything else.

Quant scan not run yet

Ruleset v1 — six deterministic checks per chart: price vs 200-day average, 50/200 trend, price vs 20-day, RSI(14), MACD(12,26,9), 52-week structure. A score of ±4 out of 6 is required for a bias; everything else is NO TRADE. Stops are 2×ATR(14), targets 2R. No AI touches this — signals must be reproducible math or the test means nothing. These are the most public indicators in existence, so assume no edge until your journal proves one: log the paper trades and read the "quant" setup expectancy after 30–50 closes.

Universe screen

Same six checks, pointed at a candidate universe and ranked by score. "Promising" means "currently in a strong trend state" — a momentum screen, not a prophecy. Promote candidates to the Watchlist; the paper journal still decides whether any of this earns money. The auto lists pull live from Yahoo’s public screeners and change daily; the 210-bar rules filter out one-day pumps, and the liquidity floor (over $5, over ~$5m/day traded) exists because thin stocks fill paper orders at prices you would never get for real.

Backtest not run yet

Ruleset v1 walked bar by bar over real history, using the same scoring code the live scanner uses. A signal on one day's close is entered at the next day's open — never the signal price — and exits are checked against each day's actual high and low, with gaps filling at the open rather than at your stop. Costs come off every fill. Results are reported in R, which sidesteps the rand-dollar mixing in your live book. Read the caveats under the results before you believe any of it.

Position sizing size from the stop, never from conviction

—
—
—
—

Account saved locally in this browser — nothing leaves your machine

Copies a private link with the proxy URL and secret tucked after the #. Bookmark it, or use it as the address you Add to Home Screen — any fresh browser that opens it configures itself instantly, then Pull restores the whole book. The link contains your secret, so treat it like a password.

Data backups are your job — export regularly

Entry robot opens positions from your watchlist, once a day, after the close

Scores every symbol on your Watchlist with ruleset v1 and opens the strongest, sized off the stop. Hard limits it will not cross: one position per symbol, never more than the position cap, never past your open-risk ceiling, never a chart with under 210 bars, and never a price more than five days old — the bug that cost you four trades entered at 39-day-old prices. It runs once per day; a second run the same day is refused. Raise Min score to 6 to take only unanimous signals, which is far fewer trades.

Auto-close robot runs on your worker, not this browser — your PC can be off

With this on, a cron job on your worker quotes every open position on a schedule and closes any that has breached its stop or target, writing the journal entry at the plan price less the slippage above. It never opens a position and never widens a stop — it only exits. The settings here only reach it once you Push to cloud, and it needs a cron trigger set in the Cloudflare dashboard (Worker → Settings → Triggers). Honest caveat: a robot filling at your exact stop flatters the paper book, because a real stop slips on gaps — which is what the slippage setting is for. Leave it at 0.1% for liquid large caps and raise it for anything thin.

Sync one book across devices — via your worker + Cloudflare KV

Manual and explicit: Push uploads this device's whole book; Pull replaces this device's book with the cloud copy (it asks first). Last push wins — finish on one device, push, then pull on the other before working there. Needs the proxy secret set on both sides and a KV namespace bound to the worker as SYNC.

This desk is a ledger and a discipline tool. It tracks what you did and tells you the truth about it. It does not generate signals, and no dashboard turns a strategy without an edge into 15–30% a year — the journal stats above will tell you, within about fifty trades, whether the edge is real. Not financial advice.

Close position

Log paper trade