hash · living design concept

Tell hash a trading idea.

It turns plain English into a strategy, backtests it against real history, and shows you honestly how it would have gone, wins and losses alike. This page is the living design for what we're building.

01 · the screens

Clean, simple, easy to use

Clean screens, smooth transitions, easy from the first tap. Every flow is built to feel obvious, not learned.

9:41●●●
#hash
# 
Describe a strategy in plain English
buy NVDA when the 20-day average crosses above the 50-day, sell when it crosses back…
Golden cross on NVDABuy AAPL dips (RSI < 30)SPY breakout after quiet weeks
Compose strategy
1. Createlanding · type or tap a chipTypewriter hero, prompt box, example chips. The # here only breathes. It has nothing to say yet.
9:41●●●
#composing…
Buy NVDA when the 20-day average crosses above the 50-day, sell when it crosses back under.
Got it, a classic golden-cross strategy. I'll enter long on the 20/50 crossover and exit on the reverse cross. Here's your strategy:

Golden Cross

Buys when the 20-day average crosses above the 50-day; sells on the reverse cross.

NVDADailychange ▾
Try a tweak
Add a 5% stop lossUse 10/30 averagesOnly in uptrends
Save & Run
#one question…
Buy PLTR when it dips 5% in a day, sell after it recovers.
#
I can't backtest PLTR yet, there's no data for it.
Closest symbols with full history from 2015. Pick one, or type another:
TSLANVDAAAPLSPY
The dip-and-recover idea works the same on any of these. TSLA moves most like what you described.
Use TSLA instead
#composing…

Golden Cross

Buys when the 20-day average crosses above the 50-day.

Symbol · only symbols with data
NVDAdaily · 2015 → today✓
TSLAdaily · 2015 → today
AAPLdaily · 2015 → today
SPYdaily · 2010 → today
Timeframe
DailyHourly15 min
Done
2. Composecomposing · dots show statesDot 1 is the happy path: # talks while the reply streams and the card materializes on commit. Dot 2 is an unavailable symbol: # asks back with real alternatives instead of showing an error. Dot 3 is the change sheet: only symbols and timeframes with data are offered, with their coverage ranges.
9:41●●●
#Golden Cross● running

Golden Cross

Buys the 20/50 SMA crossover, exits on the reverse cross.
NVDADaily$100k paper
backtesting… 64%2019 → today
Return
+38.2%
Win rate
58%
Trades
41
Max drawdown
−12.4%
Latest tradeslive
Mar 14NVDA+$2,14010:12L 112 @ 482.10+4.1%
Entry
$482.10
Mar 14
Exit
$501.90
Apr 02
Size
112 shares
Held
19 days
Side
Long
Fees
$2.40
Jan 30NVDA−$86014:36L 98 @ 538.40−1.6%
Entry
$538.40
Jan 30
Exit
$529.75
Feb 21
Size
98 shares
Held
22 days
Side
Long
Fees
$2.10
3. Strategy: running/s/{slug}Shimmering progress, live equity draw, counting stats. Stillness returns when the run completes.
9:41●●●
#Golden Crosscompleted
Return
+61.7%
Final equity
$161,704
Run again
✦ Optimize
Publish to board
results public · rules private
Trading activity★ · streak line
winbig winloss
All trades41
Nov 08NVDA+$5,42009:42L 120 @ 412.80+9.8%
Entry
$412.80
Nov 08
Exit
$453.25
Jan 12
Size
120 shares
Held
65 days
Side
Long
Fees
$2.60
Aug 21NVDA+$1,20511:05L 104 @ 445.60+2.3%
Entry
$445.60
Aug 21
Exit
$455.85
Sep 30
Size
104 shares
Held
40 days
Side
Long
Fees
$2.20
paper trading · not financial advice
#Golden Crosscompleted
Return
+61.7%
Final equity
$161,704
Run again
✦ Optimize
Trading activityA · streak grid
nonewinbig winloss
All trades41
Nov 08NVDA+$5,42009:42L 120 @ 412.80+9.8%
Entry
$412.80
Nov 08
Exit
$453.25
Jan 12
Size
120 shares
Held
65 days
Side
Long
Fees
$2.60
Aug 21NVDA+$1,20511:05L 104 @ 445.60+2.3%
Entry
$445.60
Aug 21
Exit
$455.85
Sep 30
Size
104 shares
Held
40 days
Side
Long
Fees
$2.20
#Golden Crosscompleted
Return
+61.7%
Final equity
$161,704
Run again
✦ Optimize
P/L by monthB · monthly bars
winning monthlosing month
All trades41
Nov 08NVDA+$5,42009:42L 120 @ 412.80+9.8%
Entry
$412.80
Nov 08
Exit
$453.25
Jan 12
Size
120 shares
Held
65 days
Side
Long
Fees
$2.60
Aug 21NVDA+$1,20511:05L 104 @ 445.60+2.3%
Entry
$445.60
Aug 21
Exit
$455.85
Sep 30
Size
104 shares
Held
40 days
Side
Long
Fees
$2.20
#Golden Crosscompleted
Return
+61.7%
Final equity
$161,704
Run again
✦ Optimize
Win / loss sequenceC · trade ribbon
7 longest win streak3 longest loss streak
All trades41
Nov 08NVDA+$5,42009:42L 120 @ 412.80+9.8%
Entry
$412.80
Nov 08
Exit
$453.25
Jan 12
Size
120 shares
Held
65 days
Side
Long
Fees
$2.60
4a. Strategy: completed/s/{slug} · dots show alternativesClick the dots to compare. The default streak line puts one square per trade in order: the streak look without empty calendar days, scrolling sideways when a strategy trades a lot. The alternatives are a daily grid, monthly bars, and a sized ribbon. The default slide also shows the Publish toggle, off by default: results go public, rules stay private.
9:41●●●
#Dip Buyercompleted
Return
−23.8%
Final equity
$76,190
Win rate
31%
Max drawdown
−31.2%
#
It buys dips, but the dips kept dipping.
Most first strategies lose; that's what paper money is for. The biggest leak: no exit when a dip becomes a slide.
Add a stop lossWait for recovery signsTrade less often
Trading activity★ · streak line
Run again
✦ Optimize
paper trading · not financial advice
#Deep RSI Buyercompleted
Trades
0
Return
0.0%
#
Your rules never triggered, not once in six years.
RSI under 5 almost never happens on daily bars. The idea is fine; the threshold is too strict.
Try RSI under 30Use hourly barsExplain RSI to me
Adjust & run again
4b. When it doesn't workthe two most likely first outcomesDot 1 is a losing run: the curve runs red below your starting capital, the numbers stay honest, and # names the leak in plain English with fix chips. Optimize becomes the hero action. Dot 2 is zero trades: a flat grey line, and # explains why the rules never fired with one-tap ways to loosen them. Never a dead end.
9:41●●●
#Golden Crosscompleted

Golden Cross

Buys when the 20-day average crosses above the 50-day; sells on the reverse cross.
NVDATSLASPYDaily$100k paper
Performance by symboltap a row to filter
NVDA
18 trades
win 61% · pf 2.14
+$9,480
TSLA
14 trades
win 43% · pf 1.21
+$2,360
SPY
9 trades
win 67% · pf 2.60
+$3,905
Return · TSLA
+2.4%
Win rate
43%
Trades
14
Max drawdown
−9.4%
Trades · TSLA14
Sep 12TSLA+$1,81011:52L 108 @ 242.60+6.9%
Entry
$242.60
Sep 12
Exit
$259.40
Oct 03
Size
108 shares
Held
21 days
Side
Long
Fees
$2.30
Jun 20TSLA−$94010:24L 140 @ 268.10−2.5%
Entry
$268.10
Jun 20
Exit
$261.35
Jul 01
Size
140 shares
Held
11 days
Side
Long
Fees
$2.80
equity curve is portfolio-wide · stats & trades filtered to TSLA
4c. Multi-symbol strategy/s/{slug} · per-symbol filterOne strategy, several symbols. The comparison rows are the filter: tap one (it works in this mock) and the stats and trades below follow it. The equity curve stays portfolio-wide. TSLA is selected here: profitable overall but with the weakest win rate, which is exactly the insight this view exists for.
9:41●●●
#Golden Cross · Optimizegen 3/5

Optimizing

Breeding 12 small variations of your strategy each generation and keeping the winners. Better settings usually emerge by generation 3–4.
36 of 60 backtests~2 min left
Variantsranked live
V7
Best so far
SMA 18/46 · stop 4%
+81.2%
V12
Gen 3
SMA 22/44 · stop 5%
+76.4%
V3
Gen 1
SMA 20/55 · stop 6%
+74.5%
·
Your original
SMA 20/50 · no stop
+61.7%
V9
Gen 2
SMA 9/21 · stop 2%
−2.3%
Use best variant (when done)
5. Optimize/s/{slug}/optimize · genetic experimentGenetics without the jargon: "breeding variations, keeping winners." Your original stays pinned (dashed) so improvement is legible. Best variant wears the ★. One action at the end: adopt it.
9:41●●●
#Leaderboardall time ▾
1
Quiet Breakout
SPY · 1d · 87 trades · by anon-4f2
+94.6%
win 61%
2
Golden Cross
NVDA · 1d · 41 trades · you
+61.7%
win 58%
3
RSI Dip Buyer
AAPL · 1h · 214 trades · by anon-9c1
+48.9%
win 66%
4
Momentum Rider
TSLA · 1d · 63 trades · by anon-77a
+31.2%
win 49%
5
Mean Revert
QQQ · 15m · 402 trades · by anon-b03
−4.1%
win 44%
ranked by return % · min 10 trades · published runs only
6. Leaderboard: all users/leaderboardOne global board across everyone. Rows show an anonymous author handle; yours says "you". Tapping any row opens the public run view (screen 7): trades yes, recipe no.
9:41●●●
#Quiet Breakout#1

Quiet Breakout

by anon-4f2 · completed backtest · 2019 → today
SPYDaily$100k paper
Strategy rules are private
Only performance is shared. The prompt and rules belong to their creator.
Return
+94.6%
Win rate
61%
Trades
87
Max drawdown
−9.8%
All trades87
Jun 11SPY+$3,84509:35L 210 @ 585.20+3.4%
Entry
$585.20
Jun 11
Exit
$605.10
Jul 08
Size
210 shares
Held
27 days
Side
Long
Fees
$4.10
Apr 22SPY−$1,02015:48L 195 @ 612.40−0.9%
Entry
$612.40
Apr 22
Exit
$606.90
May 05
Size
195 shares
Held
13 days
Side
Long
Fees
$3.90
7. Public run view/b/{run} · someone else'sFull transparency on results: equity, stats, every trade, with the recipe locked. No run or edit actions here; those exist only on your own strategies.
9:41●●●
#My strategies

Golden Cross

NVDA · 1d
Buys the 20/50 SMA crossover, exits on the reverse cross.
completed+61.7%

RSI Dip Buyer

AAPL · 1h
Buys when hourly RSI drops under 30, sells at 55.
● optimizing · gen 2/5

Mean Revert

QQQ · 15m
Fades 2-sigma moves on 15-minute bars.
completed−4.1%
+ New strategy
8. My strategies: private/mineOnly you see this list; nobody can browse another user's strategies. Ongoing optimizations surface here too. The magnifier in the top bar opens the # bar (screen 9).
9:41●●●
#run goldenesc
Do
Run Golden Cross
backtest · NVDA · daily
↵
✦
Optimize Golden Cross
breed 12 variants × 5 generations
Jump to
Golden Cross
yours · NVDA · daily · completed
+61.7%
Quiet Breakout
board · #1 · SPY · daily · anon-4f2
+94.6%
Or just ask
#
"why did it lose money in November?"
#
"make it less risky"
search · command · or just talk
9. The # bartap the # in any frame aboveTry it here: click the # or magnifier in any frame's top bar and you land on this screen. In the app it opens in place, one gesture from anywhere. The # comes alive and a single input resolves three ways as you type: Do (run, optimize, new), Jump to (your strategies and the board), or just ask in plain language. Enter runs the top hit.
02 · motion language

Few animations, each with a job

Motion only where something is genuinely happening: the # communicating, money moving, work progressing. Everything else stays still. What we leave out matters as much: no parallax, no hover lifts, no shimmer waves, no page transition past a 150ms fade. The quiet is what makes the # feel alive. All demos below are live and respect prefers-reduced-motion.

#
The talking #

The # vibrates while it's communicating with you, and stays still when it has nothing to say.

scale pulse 90ms / breathe 4.5s
Golden Cross

Buys the 20/50 crossover.

Card materialize

Motion marks the one moment that matters: a strategy coming into being. Creation only.

450ms spring + border flash
+0.0%
Counting numerals

A result is worth watching land, so numbers count up to it instead of appearing.

800ms ease-out · tabular-nums
Working shimmer

Movement means work is happening. Stillness means it is done.

1.6s sweep, only while running
Streak cascade

Years of history arrive in one motion, so its weight lands before any number does.

per-column 12ms stagger
Equity draw-in

The data is the motion. The line draws itself, nothing decorative added.

900ms draw · endpoint pulse
03 · design language

Quiet by default

The whole visual system, kept to a few rules. Everything here and in the app follows them. Flip the theme toggle to see the same tokens carry both modes.

Philosophy

The prompt is the product. Every screen exists to type into it or read what it produced. One idea per screen, one primary action.

Quiet by default. Color and motion appear only where something real happens: money, progress, the AI speaking. 90% of any screen is four neutrals.

Numbers are sacred. Every digit is mono and tabular, aligned, honest. Losses render as prominently as wins.

Mobile is the design. Desktop is the same components given room, never a different app.

Plain English. "Breeding variations, keeping winners", never "genetic hyperparameter search."

Type

Two faces: a system sans for prose and UI (Geist Sans in the app), and the mono (Geist Mono) for the terminal side: numbers, commands, labels, the # itself.

Title26/700 page
Screen title19/700
Card title15.5/700
Body text for reading13/400 · 1.5–1.6 lh
Secondary / summaries12.5 muted
Section label10–11 mono upper .12em
+$2,140 · 58% · 41mono tabular, always
Space & shape

4px grid. Screen gutter 16 (mobile) / 28 (desktop). Card padding 12–14. Section rhythm 20. List row gap 8. Stat grid gap 8–10.

Radius follows size: chips 999 · buttons & tiles 12 · cards 14 · prompt box 16 · phone shell 34. Nothing in between.

Borders, not shadows. 1px in two tones (border / border-soft) does all separation; shadow exists only under the device frames on this spec page.

Touch first. Targets ≥44px, primary action within thumb reach (sticky bottom bar), wide content scrolls in its own container. The page never scrolls sideways.

Color rules
groundcardactionprofitloss

Neutrals do the work. Ground, card, border: a cool near-black ramp, or its light mirror. Every grey leans slightly cool, on purpose.

Emerald means profit, red means loss. Never decoration, never branding. If it's green, money went up.

One action color: the inverted foreground. White on black in dark, black on white in light. States are soft tints, never solid fills.

In practice
Save & Run+4.1%−1.6%● runningcompleted
Display contract

The same facts in the same order, on every surface. A strategy's name never names a symbol; symbols are only where it runs.

Mar 14NVDA+$2,14010:12L 112 @ 482.10+4.1%
Entry
$482.10
Mar 14
Exit
$501.90
Apr 02
Size
112 shares
Held
19 days
Side
Long
Fees
$2.40
Stacks, not lists

When there are many of something, show one and count the rest. A stack says "there are 41 of these" without spending a screen on them; tap to open the full list.

Trades41
Jan 12NVDA+$5,42009:42L 120 @ 412.80+9.8%
04 · desktop expansion

Same components, wider canvas

Nothing is redesigned. The tab bar becomes a top nav, cards become a grid, trade rows become a table. Two representative views below.

The two desktop mockups need a wide screen. Open this page on a desktop to see them.

heyhash.ai/s/golden-cross
#CreateMineBoardcompleted

Golden Cross

Buys when the 20-day average crosses above the 50-day; sells on the reverse cross.
NVDADaily$100k paper
Run again
✦ Optimize
Return
+61.7%
Win rate
58%
Max drawdown
−12.4%
Profit factor
1.84
SideSymbolDatesEntry $Exit $SharesP/L %P/L $
LONGNVDANov 08 – Jan 12412.80453.25120+9.8%+$5,420
LONGNVDAAug 21 – Sep 30445.60455.85104+2.3%+$1,205
LONGNVDAMay 02 – May 19470.30459.0099−2.4%−$1,340
LONGNVDAMar 14 – Apr 02482.10501.90112+4.1%+$2,140
LONGNVDAJan 30 – Feb 21538.40529.7598−1.6%−$860
Optimization · gen 3/5
V7SMA 18/46 · stop 4%+81.2%
V12SMA 22/44 · stop 5%+76.4%
V3SMA 20/55 · stop 6%+74.5%
yoursSMA 20/50 · no stop+61.7%
Trading activity · 6 yrs
D1. Strategy on desktopdesktop layout of screens 4 and 5Equity + trades take the main column; optimization progress and the streak heatmap live in the rail. Optimize on desktop is a panel, not a separate page.
heyhash.ai
#CreateMineBoardcomposing…
Buy NVDA when the 20-day average crosses above the 50-day, sell when it crosses back under.
Got it, a classic golden-cross strategy. I'll enter long on the 20/50 crossover and exit on the reverse cross. Here's your strategy:
Try a tweak
Add a 5% stop lossUse 10/30 averagesOnly in uptrends
Refine it, or just say "run"…

Golden Cross

Buys when the 20-day average crosses above the 50-day; sells on the reverse cross.

NVDADailychange ▾
Data available
NVDA · 2015→AAPL · 2015→SPY · 2010→
Save & Run
D2. Compose on desktopdesktop layout of screen 2Chat on the left, the strategy card pinned right where it updates live as you refine. The # talks in the nav: same glyph, same voice, any screen size.