Spaces:
Running on Zero
Running on Zero
| <html><head><meta charset='utf-8'><style>@font-face{font-family:'Styrene A';src:url('file:///Users/bit-trading-company/Desktop/dev/hugging-face/space/assets/fonts/StyreneA-Light.otf') format('opentype');font-weight:300;font-style:normal;font-display:swap} | |
| @font-face{font-family:'Styrene A';src:url('file:///Users/bit-trading-company/Desktop/dev/hugging-face/space/assets/fonts/StyreneA-Regular.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap} | |
| @font-face{font-family:'Styrene A';src:url('file:///Users/bit-trading-company/Desktop/dev/hugging-face/space/assets/fonts/StyreneA-Medium.otf') format('opentype');font-weight:500;font-style:normal;font-display:swap} | |
| @font-face{font-family:'Mac Minecraft';src:url('file:///Users/bit-trading-company/Desktop/dev/hugging-face/space/assets/fonts/MacMinecraft.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap} | |
| :root{ | |
| --pure-black:#000000; | |
| --pure-white:#ffffff; | |
| --stone-950:#161512; | |
| --stone-900:#1d1c18; | |
| --stone-850:#24221d; | |
| --stone-800:#2c2a24; | |
| --stone-700:#3d3a32; | |
| --stone-600:#54503f; | |
| --stone-500:#6f6a56; | |
| --stone-400:#918c76; | |
| --stone-300:#b6b09a; | |
| --stone-200:#d6d1bf; | |
| --stone-100:#ece8dc; | |
| --stone-50:#f5f3ea; | |
| --off-white:#f7f4ec; | |
| --accent-moss:#68781e; | |
| --accent-moss-strong:#7d901f; | |
| --accent-moss-dim:#4d5817; | |
| --accent-amber:#af9209; | |
| --accent-amber-strong:#cfab0a; | |
| --accent-amber-dim:#7d6a09; | |
| --mute-red:#8a5a54; | |
| --mute-orange:#8a6f54; | |
| --mute-yellow:#8a8154; | |
| --mute-green:#6e8a54; | |
| --mute-teal:#54898a; | |
| --mute-blue:#59656e; | |
| --mute-indigo:#5c5c8a; | |
| --mute-violet:#75588a; | |
| --fin-up:oklch(66% 0.22 149); | |
| --fin-up-strong:oklch(72% 0.24 149); | |
| --fin-down:oklch(62% 0.26 24); | |
| --fin-down-strong:oklch(68% 0.27 24); | |
| --fin-flat:var(--stone-400); | |
| --fin-up-cvd:oklch(58% 0.13 240); | |
| --fin-up-cvd-strong:oklch(64% 0.14 240); | |
| --fin-down-cvd:oklch(58% 0.13 55); | |
| --fin-down-cvd-strong:oklch(64% 0.14 55); | |
| --fin-buy:var(--fin-up); | |
| --fin-buy-strong:var(--fin-up-strong); | |
| --fin-sell:var(--fin-down); | |
| --fin-sell-strong:var(--fin-down-strong); | |
| --focus-ring:var(--accent-amber); | |
| --bg-canvas:var(--stone-950); | |
| --bg-panel:var(--stone-900); | |
| --bg-raised:var(--stone-850); | |
| --bg-sunken:var(--pure-black); | |
| --border-subtle:var(--stone-800); | |
| --border-default:var(--stone-700); | |
| --border-strong:var(--stone-500); | |
| --text-primary:var(--off-white); | |
| --text-secondary:var(--stone-300); | |
| --text-tertiary:var(--stone-500); | |
| --text-disabled:var(--stone-600); | |
| --text-inverse:var(--stone-950); | |
| --surface-accent-fg:var(--stone-950); | |
| --glass-bg:rgba(29,28,24,0.72); | |
| --glass-border:rgba(247,244,236,0.14); | |
| --glass-blur:20px; | |
| } | |
| [data-theme="dark"]{ | |
| --bg-canvas:var(--stone-950); | |
| --bg-panel:var(--stone-900); | |
| --bg-raised:var(--stone-850); | |
| --bg-sunken:var(--pure-black); | |
| --border-subtle:var(--stone-800); | |
| --border-default:var(--stone-700); | |
| --border-strong:var(--stone-500); | |
| --text-primary:var(--off-white); | |
| --text-secondary:var(--stone-300); | |
| --text-tertiary:var(--stone-500); | |
| --text-disabled:var(--stone-600); | |
| --text-inverse:var(--stone-950); | |
| --surface-accent-fg:var(--stone-950); | |
| } | |
| [data-colorblind="true"]{ | |
| --fin-up:var(--fin-up-cvd); | |
| --fin-up-strong:var(--fin-up-cvd-strong); | |
| --fin-down:var(--fin-down-cvd); | |
| --fin-down-strong:var(--fin-down-cvd-strong); | |
| } | |
| [data-theme="light"]{ | |
| --bg-canvas:var(--off-white); | |
| --bg-panel:var(--stone-50); | |
| --bg-raised:var(--pure-white); | |
| --bg-sunken:var(--stone-100); | |
| --border-subtle:var(--stone-200); | |
| --border-default:var(--stone-300); | |
| --border-strong:var(--stone-500); | |
| --text-primary:var(--stone-950); | |
| --text-secondary:var(--stone-700); | |
| --text-tertiary:var(--stone-500); | |
| --text-disabled:var(--stone-300); | |
| --text-inverse:var(--off-white); | |
| --surface-accent-fg:var(--stone-950); | |
| --glass-bg:rgba(245,243,234,0.72); | |
| --glass-border:rgba(22,21,18,0.1); | |
| } | |
| /* Custom themes: copy this block, rename the [data-theme] value, and override only | |
| the tokens that should change. Every component reads these tokens, never raw colors, | |
| so a new theme needs no component edits — set data-theme on any ancestor (SidebarNav's | |
| theme selector does this at the app root) and everything downstream updates. */ | |
| [data-theme="custom"]{ | |
| --bg-canvas:var(--stone-950); | |
| --bg-panel:var(--stone-900); | |
| --bg-raised:var(--stone-850); | |
| --bg-sunken:var(--pure-black); | |
| --border-subtle:var(--stone-800); | |
| --border-default:var(--stone-700); | |
| --border-strong:var(--accent-amber-dim); | |
| --text-primary:var(--off-white); | |
| --text-secondary:var(--stone-300); | |
| --text-tertiary:var(--stone-500); | |
| --text-disabled:var(--stone-600); | |
| --text-inverse:var(--stone-950); | |
| --surface-accent-fg:var(--stone-950); | |
| } | |
| :root{ | |
| --font-styrene:'Styrene A',sans-serif; | |
| --font-system:-apple-system,BlinkMacSystemFont,system-ui,sans-serif; | |
| --font-mono:'JetBrains Mono',ui-monospace,'SFMono-Regular',Menlo,monospace; | |
| --font-tiny:'Mac Minecraft',monospace; | |
| --font-body:var(--font-system); | |
| --font-heading:var(--font-styrene); | |
| --weight-heading:400; | |
| --weight-body:300; | |
| --weight-styrene-thin:100; | |
| --weight-styrene-light:300; | |
| --weight-styrene-regular:400; | |
| --weight-styrene-medium:500; | |
| --weight-mono:400; | |
| --weight-tiny:400; | |
| --weight-strong:700; | |
| --text-2xs:8px; | |
| --text-xs:10px; | |
| --text-sm:11px; | |
| --text-base:12px; | |
| --text-md:16px; | |
| --text-lg:19px; | |
| --text-xl:25px; | |
| --text-2xl:33px; | |
| --text-3xl:45px; | |
| --text-4xl:62px; | |
| --leading-tight:1.1; | |
| --leading-snug:1.3; | |
| --leading-normal:1.5; | |
| --leading-relaxed:1.7; | |
| --tracking-tight:-0.01em; | |
| --tracking-normal:0; | |
| --tracking-wide:0.04em; | |
| --tracking-wider:0.12em; | |
| } | |
| :root{ | |
| --space-0:0px; | |
| --space-1:4px; | |
| --space-2:8px; | |
| --space-3:12px; | |
| --space-4:16px; | |
| --space-5:24px; | |
| --space-6:32px; | |
| --space-7:48px; | |
| --space-8:64px; | |
| --space-9:96px; | |
| --radius-0:0px; | |
| --radius-sm:4px; | |
| --radius-md:8px; | |
| --radius-pill:999px; | |
| --border-width:1px; | |
| --border-width-strong:2px; | |
| --ease:ease;/* @kind other */ | |
| --duration:1s;/* @kind other */ | |
| --shadow-none:none; | |
| --shadow-panel:0 0 0 var(--border-width) var(--border-default); | |
| --z-header:100;/* @kind other */ | |
| --z-menu:200;/* @kind other */ | |
| --z-modal:300;/* @kind other */ | |
| --z-toast:400;/* @kind other */ | |
| } | |
| /* ================= app shell ================= */ | |
| .gradio-container{ | |
| max-width:100% ; padding:0 ; | |
| background:var(--bg-canvas) ; | |
| font-family:var(--font-body); font-weight:var(--weight-body); | |
| color:var(--text-primary); font-size:var(--text-base); | |
| } | |
| .gradio-container *{ border-radius:var(--radius-sm) ; } | |
| footer{ display:none ; } | |
| .gap.svelte-vt1mxs, .gradio-container .gap{ gap:var(--space-2) ; } | |
| /* ================= typography ================= */ | |
| .bit-h1,.bit-h2,.bit-h3{ | |
| font-family:var(--font-heading); font-weight:var(--weight-heading); | |
| letter-spacing:var(--tracking-wide); text-transform:uppercase; | |
| color:var(--text-primary); margin:0; | |
| } | |
| .bit-h1{ font-size:var(--text-md); } | |
| .bit-h2{ font-size:var(--text-md); } | |
| .bit-h3{ font-size:var(--text-base); } | |
| .bit-micro{ | |
| font-family:var(--font-tiny); font-size:var(--text-xs); | |
| letter-spacing:var(--tracking-wider); text-transform:uppercase; | |
| color:var(--text-tertiary); line-height:1.6; | |
| } | |
| .bit-spacer{ flex:1; } | |
| /* ================= top bar ================= */ | |
| .bit-topbar{ | |
| display:flex; align-items:center; gap:var(--space-3); flex-wrap:wrap; | |
| background:var(--bg-panel); | |
| border-bottom:var(--border-width) solid var(--border-default); | |
| padding:var(--space-3) var(--space-4); | |
| position:sticky; top:0; z-index:var(--z-header); | |
| } | |
| .bit-mark{ | |
| width:20px; height:20px; background:var(--accent-amber); | |
| display:inline-block; flex:0 0 20px; | |
| box-shadow:inset 0 0 0 3px var(--bg-panel), inset 0 0 0 6px var(--accent-amber); | |
| } | |
| .bit-wordmark{ | |
| font-family:var(--font-heading); font-size:var(--text-md); font-weight:500; | |
| letter-spacing:var(--tracking-wide); color:var(--text-primary); | |
| } | |
| .bit-slash{ color:var(--text-tertiary); } | |
| .bit-chip{ | |
| display:inline-flex; align-items:center; gap:6px; white-space:nowrap; | |
| font-family:var(--font-mono); font-size:var(--text-sm); | |
| border:var(--border-width) solid var(--border-default); | |
| padding:3px var(--space-2); color:var(--text-secondary); background:transparent; | |
| } | |
| .bit-chip-ok{ color:var(--accent-moss-strong); border-color:var(--accent-moss-dim); } | |
| .bit-chip-run{ color:var(--accent-amber-strong); border-color:var(--accent-amber-dim); } | |
| .bit-chip-warn{ color:var(--fin-down); border-color:var(--fin-down); } | |
| .bit-chip-accent{ color:var(--stone-950); background:var(--accent-amber); | |
| border-color:var(--accent-amber); } | |
| .bit-chip-ctx{ color:var(--text-tertiary); } | |
| a.bit-link{ text-decoration:none; } | |
| a.bit-link:hover{ color:var(--accent-amber-strong); | |
| border-color:var(--accent-amber-dim); } | |
| /* ================= panels ================= */ | |
| .bit-panel{ | |
| background:var(--bg-panel); | |
| border:var(--border-width) solid var(--border-default); | |
| padding:var(--space-4); margin-bottom:var(--space-3); | |
| } | |
| .bit-panel-head{ | |
| display:flex; align-items:baseline; gap:var(--space-3); | |
| border-bottom:var(--border-width) solid var(--border-subtle); | |
| padding-bottom:var(--space-2); margin-bottom:var(--space-3); | |
| } | |
| .bit-zone-title{ | |
| font-family:var(--font-heading); text-transform:uppercase; | |
| letter-spacing:var(--tracking-wide); font-size:var(--text-md); | |
| color:var(--text-primary); padding:var(--space-3) var(--space-1) var(--space-2); | |
| display:flex; align-items:baseline; gap:var(--space-2); | |
| } | |
| .bit-zone-title .bit-micro{ margin-left:auto; } | |
| /* ================= stat band ================= */ | |
| .bit-statband{ | |
| display:flex; flex-wrap:wrap; | |
| border:var(--border-width) solid var(--border-default); | |
| background:var(--bg-panel); margin-bottom:var(--space-3); | |
| } | |
| .bit-stat{ | |
| flex:1 1 132px; padding:var(--space-3) var(--space-4); | |
| border-right:var(--border-width) solid var(--border-subtle); | |
| border-bottom:var(--border-width) solid var(--border-subtle); | |
| } | |
| .bit-stat-label{ | |
| font-family:var(--font-tiny); font-size:var(--text-xs); | |
| letter-spacing:var(--tracking-wider); text-transform:uppercase; | |
| color:var(--text-tertiary); | |
| } | |
| .bit-stat-value{ | |
| font-family:var(--font-mono); font-size:var(--text-xl); | |
| line-height:var(--leading-tight); color:var(--text-primary); | |
| margin:3px 0 2px; letter-spacing:var(--tracking-tight); | |
| } | |
| .bit-stat-sub{ | |
| font-family:var(--font-mono); font-size:var(--text-xs); | |
| color:var(--text-tertiary); | |
| } | |
| .bit-up{ color:var(--fin-up-strong); } .bit-down{ color:var(--fin-down-strong); } | |
| /* ================= notes ================= */ | |
| .bit-note{ | |
| font-family:var(--font-mono); font-size:var(--text-sm); line-height:1.5; | |
| border-left:var(--border-width-strong) solid var(--accent-amber); | |
| background:var(--bg-raised); padding:var(--space-2) var(--space-3); | |
| color:var(--text-secondary); margin-bottom:var(--space-2); | |
| } | |
| .bit-note-danger{ border-left-color:var(--fin-down); } | |
| .bit-tag{ | |
| font-family:var(--font-tiny); font-size:var(--text-2xs); | |
| letter-spacing:var(--tracking-wider); border:1px solid var(--border-default); | |
| padding:1px 4px; color:var(--text-tertiary); margin-left:4px; | |
| } | |
| /* ================= empty state ================= */ | |
| .bit-empty{ | |
| display:flex; flex-direction:column; align-items:center; justify-content:center; | |
| gap:var(--space-3); padding:var(--space-8) var(--space-4); text-align:center; | |
| border:var(--border-width) dashed var(--border-default); background:var(--bg-panel); | |
| } | |
| .bit-empty-glyph{ font-size:34px; color:var(--accent-amber-dim); line-height:1; } | |
| .bit-empty-copy{ color:var(--text-secondary); max-width:46ch; font-size:var(--text-base); } | |
| .bit-kbd-row{ display:flex; gap:var(--space-2); flex-wrap:wrap; justify-content:center; } | |
| .bit-kbd{ | |
| font-family:var(--font-tiny); font-size:var(--text-xs); | |
| letter-spacing:var(--tracking-wider); color:var(--text-tertiary); | |
| border:var(--border-width) solid var(--border-default); padding:3px 7px; | |
| } | |
| /* ================= run manager ================= */ | |
| .bit-run-card{ | |
| border:var(--border-width) solid var(--border-subtle); | |
| padding:var(--space-2); margin-bottom:var(--space-1); background:var(--bg-panel); | |
| } | |
| .bit-run-card-sel{ border-color:var(--accent-amber-dim); } | |
| .bit-run-top{ display:flex; align-items:center; gap:var(--space-2); } | |
| .bit-run-name{ font-size:var(--text-sm); color:var(--text-primary); | |
| overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } | |
| .bit-run-mark{ margin-left:auto; color:var(--accent-amber-strong); font-size:11px; } | |
| .bit-run-sharpe{ font-family:var(--font-mono); font-size:var(--text-base); | |
| display:flex; gap:var(--space-2); } | |
| .bit-run-ret{ margin-left:auto; color:var(--text-tertiary); } | |
| .bit-gloss{ margin-bottom:var(--space-2); } | |
| .bit-gloss-def{ font-size:var(--text-sm); color:var(--text-secondary); line-height:1.45; } | |
| /* ================= KPI row ================= */ | |
| .bit-kpi-row{ display:flex; flex-wrap:wrap; gap:var(--space-4); } | |
| .bit-kpi{ min-width:78px; } | |
| .bit-kpi-value{ font-family:var(--font-mono); font-size:var(--text-lg); | |
| line-height:1.1; color:var(--text-primary); } | |
| /* ================= podium ================= */ | |
| .bit-podium-row{ display:flex; gap:var(--space-3); flex-wrap:wrap; | |
| margin-bottom:var(--space-3); } | |
| .bit-podium{ | |
| flex:1 1 200px; border:var(--border-width) solid var(--border-default); | |
| background:var(--bg-panel); padding:var(--space-3); | |
| border-top:var(--border-width-strong) solid var(--border-strong); | |
| } | |
| .bit-podium-1{ border-top-color:var(--accent-amber); } | |
| .bit-podium-2{ border-top-color:var(--accent-moss-strong); } | |
| .bit-podium-3{ border-top-color:var(--mute-teal); } | |
| .bit-podium-rank{ font-family:var(--font-tiny); font-size:var(--text-xs); | |
| color:var(--text-tertiary); letter-spacing:var(--tracking-wider); } | |
| .bit-podium-name{ font-size:var(--text-md); color:var(--text-primary); | |
| font-family:var(--font-heading); letter-spacing:var(--tracking-tight); } | |
| .bit-podium-value{ font-family:var(--font-mono); font-size:var(--text-2xl); | |
| line-height:1.1; margin-top:var(--space-2); display:flex; | |
| align-items:baseline; gap:var(--space-2); } | |
| .bit-podium-unit{ font-family:var(--font-tiny); font-size:var(--text-xs); | |
| letter-spacing:var(--tracking-wider); color:var(--text-tertiary); } | |
| /* ================= signal aggregator ================= */ | |
| .bit-sig-grid{ display:flex; gap:var(--space-4); flex-wrap:wrap; align-items:flex-start; } | |
| .bit-sig-list{ flex:1 1 340px; min-width:0; } | |
| .bit-sig-row{ | |
| display:flex; align-items:center; gap:var(--space-3); | |
| border:var(--border-width) solid var(--border-subtle); | |
| padding:5px var(--space-2); margin-bottom:3px; | |
| font-family:var(--font-mono); font-size:var(--text-sm); | |
| } | |
| .bit-sig-name{ flex:1 1 auto; color:var(--text-secondary); | |
| overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } | |
| .bit-sig-dir{ width:74px; text-align:right; } | |
| .bit-sig-edge{ width:64px; text-align:right; } | |
| .bit-sig-acc,.bit-sig-w{ width:64px; text-align:right; color:var(--text-tertiary); } | |
| .bit-consensus{ | |
| flex:0 0 210px; border:var(--border-width) solid var(--accent-moss-dim); | |
| background:var(--bg-raised); padding:var(--space-3); | |
| } | |
| .bit-consensus-dir{ font-family:var(--font-heading); font-size:var(--text-2xl); | |
| line-height:1.1; margin:var(--space-1) 0; letter-spacing:var(--tracking-tight); } | |
| .bit-conf-track{ height:4px; background:var(--bg-sunken); margin:var(--space-2) 0 4px; } | |
| .bit-conf-fill{ height:100%; } | |
| /* ================= gradio overrides ================= */ | |
| .gradio-container .tabs > .tab-nav{ | |
| border-bottom:var(--border-width) solid var(--border-default) ; | |
| background:transparent ; gap:0 ; flex-wrap:wrap; | |
| } | |
| .gradio-container .tabs > .tab-nav > button{ | |
| font-family:var(--font-heading) ; text-transform:uppercase; | |
| letter-spacing:var(--tracking-wide); font-size:var(--text-base) ; | |
| color:var(--text-tertiary) ; background:transparent ; | |
| border:none ; border-bottom:2px solid transparent ; | |
| padding:var(--space-2) var(--space-4) ; | |
| } | |
| .gradio-container .tabs > .tab-nav > button:hover{ color:var(--text-secondary) ; } | |
| .gradio-container .tabs > .tab-nav > button.selected{ | |
| color:var(--text-primary) ; | |
| border-bottom-color:var(--accent-amber) ; | |
| } | |
| .gradio-container .form, .gradio-container .block{ | |
| background:transparent ; border:none ; | |
| } | |
| /* Field captions only -- scoped so it never swallows option text. */ | |
| .block > label > span, .block > .form > label > span{ | |
| font-family:var(--font-tiny) ; font-size:var(--text-xs) ; | |
| letter-spacing:var(--tracking-wider) ; text-transform:uppercase; | |
| color:var(--text-tertiary) ; | |
| } | |
| input, select, textarea{ | |
| font-family:var(--font-mono) ; font-size:var(--text-base) ; | |
| background:var(--bg-sunken) ; color:var(--text-primary) ; | |
| border:var(--border-width) solid var(--border-default) ; | |
| } | |
| input:focus, select:focus, textarea:focus{ | |
| outline:1px solid var(--focus-ring) ; outline-offset:-1px; | |
| } | |
| /* Radio / checkbox options read as segmented chips. */ | |
| .gradio-container fieldset label, | |
| .gradio-container .wrap label:has(input[type="radio"]), | |
| .gradio-container .wrap label:has(input[type="checkbox"]){ | |
| background:transparent ; | |
| border:var(--border-width) solid var(--border-default) ; | |
| color:var(--text-secondary) ; | |
| padding:4px 10px ; margin:2px ; | |
| } | |
| .gradio-container fieldset label span, | |
| .gradio-container .wrap label:has(input[type="radio"]) span, | |
| .gradio-container .wrap label:has(input[type="checkbox"]) span{ | |
| font-family:var(--font-mono) ; font-size:var(--text-base) ; | |
| letter-spacing:var(--tracking-normal) ; text-transform:none ; | |
| color:var(--text-secondary) ; opacity:1 ; | |
| } | |
| .gradio-container fieldset label.selected, | |
| .gradio-container fieldset label:has(input:checked), | |
| .gradio-container .wrap label:has(input[type="radio"]:checked){ | |
| background:var(--accent-amber) ; border-color:var(--accent-amber) ; | |
| } | |
| .gradio-container fieldset label.selected span, | |
| .gradio-container fieldset label:has(input:checked) span, | |
| .gradio-container .wrap label:has(input[type="radio"]:checked) span{ | |
| color:var(--stone-950) ; font-weight:500 ; | |
| } | |
| .gradio-container input[type="radio"], .gradio-container input[type="checkbox"]{ | |
| accent-color:var(--accent-amber); | |
| } | |
| /* Accordions read as the design's numbered sections. */ | |
| .gradio-container .label-wrap, .bit-accordion > .label-wrap{ | |
| font-family:var(--font-heading) ; text-transform:uppercase; | |
| letter-spacing:var(--tracking-wide); font-size:var(--text-base) ; | |
| color:var(--text-primary) ; | |
| border-bottom:var(--border-width) solid var(--border-subtle) ; | |
| padding:var(--space-2) 0 ; | |
| } | |
| .bit-accordion{ | |
| border:none ; | |
| border-top:var(--border-width) solid var(--border-subtle) ; | |
| padding:0 ; margin-bottom:var(--space-1) ; | |
| } | |
| /* Buttons */ | |
| .bit-run-btn{ | |
| background:var(--accent-amber) ; color:var(--stone-950) ; | |
| font-family:var(--font-heading) ; text-transform:uppercase; | |
| letter-spacing:var(--tracking-wide); border:none ; font-weight:500 ; | |
| } | |
| .bit-run-btn:hover{ background:var(--accent-amber-strong) ; } | |
| .bit-ghost-btn{ | |
| background:transparent ; color:var(--text-secondary) ; | |
| border:var(--border-width) solid var(--border-default) ; | |
| font-family:var(--font-mono) ; font-size:var(--text-sm) ; | |
| } | |
| .bit-ghost-btn:hover{ border-color:var(--border-strong) ; | |
| color:var(--text-primary) ; } | |
| /* Tables */ | |
| .bit-table table{ font-family:var(--font-mono) ; font-size:var(--text-sm) ; } | |
| .bit-table thead th{ | |
| font-family:var(--font-tiny) ; font-size:var(--text-xs) ; | |
| letter-spacing:var(--tracking-wider); text-transform:uppercase; | |
| color:var(--text-tertiary) ; background:var(--bg-raised) ; | |
| border-bottom:var(--border-width) solid var(--border-default) ; | |
| } | |
| .bit-table tbody td{ border-color:var(--border-subtle) ; } | |
| /* Footer */ | |
| .bit-footer{ | |
| position:sticky; bottom:0; z-index:var(--z-header); | |
| display:flex; justify-content:space-between; gap:var(--space-4); | |
| background:var(--bg-panel); border-top:var(--border-width) solid var(--border-default); | |
| padding:var(--space-2) var(--space-4); | |
| font-family:var(--font-mono); font-size:var(--text-sm); color:var(--text-tertiary); | |
| } | |
| .bit-footer-right{ white-space:nowrap; } | |
| @media (max-width: 900px){ | |
| .bit-statband{ flex-direction:column; } | |
| .bit-stat{ border-right:none; } | |
| .bit-sig-grid{ flex-direction:column; } | |
| .bit-consensus{ flex:1 1 auto; width:100%; } | |
| } | |
| </style></head><body class='gradio-container' style='margin:0'> | |
| <div class="bit-topbar"> | |
| <span class="bit-mark"></span> | |
| <span class="bit-wordmark">BIT</span> | |
| <span class="bit-slash">/</span> | |
| <span class="bit-h1">Backtest Lab</span> | |
| <span class="bit-chip bit-chip-ctx">BTC-USD · 1D · 2023-08-16 → 2026-08-15 · WALK-FORWARD</span> | |
| <span class="bit-spacer"></span> | |
| <span class="bit-micro" style="margin:0 4px">0.1s</span><span class="bit-chip bit-chip-ok">RUN 7bee8d1b COMPLETE</span> | |
| <a class="bit-chip bit-link" target="_blank" rel="noopener" | |
| href="https://huggingface.co/datasets/The-Bit-Trading-Company/bit-signal-store">SIGNAL STORE ↗</a> | |
| <a class="bit-chip bit-link" target="_blank" rel="noopener" | |
| href="https://huggingface.co/spaces/Bit-Trading-Company/bit-backtest-lab">SPACE ↗</a> | |
| </div><div style="padding:16px"><div class="bit-zone-title">Leaderboard podium</div><div class="bit-podium-row"><div class="bit-podium bit-podium-1"><div class="bit-podium-rank">#1</div><div class="bit-podium-name">Bollinger Breakout</div><div class="bit-micro">NVDA · 1h</div><div class="bit-podium-value" style="color:var(--accent-moss-strong)">3.33<span class="bit-podium-unit">OOS SHARPE</span></div><div class="bit-micro">ret +22.3% · dd -19.3% · 49 trades</div></div><div class="bit-podium bit-podium-2"><div class="bit-podium-rank">#2</div><div class="bit-podium-name">Chronos Forecast Follower</div><div class="bit-micro">BTC-USD · 1d · Chronos-Bolt Small</div><div class="bit-podium-value" style="color:var(--accent-moss-strong)">1.43<span class="bit-podium-unit">OOS SHARPE</span></div><div class="bit-micro">ret +122.3% · dd -23.1% · 35 trades</div></div><div class="bit-podium bit-podium-3"><div class="bit-podium-rank">#3</div><div class="bit-podium-name">MACD Momentum</div><div class="bit-micro">NVDA · 1h</div><div class="bit-podium-value" style="color:var(--accent-moss-strong)">1.26<span class="bit-podium-unit">OOS SHARPE</span></div><div class="bit-micro">ret +21.7% · dd -29.7% · 93 trades</div></div></div><div class="bit-zone-title">Signal aggregator</div><div class="bit-panel"><div class="bit-panel-head"><span class="bit-h3">Signal aggregator</span><span class="bit-micro">8 MODELS</span></div><div class="bit-sig-grid"><div class="bit-sig-list"><div class="bit-sig-row"><span class="bit-sig-name">Chronos-Bolt Small</span><span class="bit-sig-dir" style="color:var(--fin-up-strong)">▲ LONG</span><span class="bit-sig-edge" style="color:var(--fin-up-strong)">+0.27%</span><span class="bit-sig-acc">acc 53%</span><span class="bit-sig-w">w0.07</span></div><div class="bit-sig-row"><span class="bit-sig-name">Chronos-Bolt Base</span><span class="bit-sig-dir" style="color:var(--fin-down-strong)">▼ SHORT</span><span class="bit-sig-edge" style="color:var(--fin-down-strong)">-1.15%</span><span class="bit-sig-acc">acc 51%</span><span class="bit-sig-w">w0.03</span></div><div class="bit-sig-row"><span class="bit-sig-name">Chronos-Bolt Mini</span><span class="bit-sig-dir" style="color:var(--fin-down-strong)">▼ SHORT</span><span class="bit-sig-edge" style="color:var(--fin-down-strong)">-1.23%</span><span class="bit-sig-acc">acc 51%</span><span class="bit-sig-w">w0.03</span></div><div class="bit-sig-row"><span class="bit-sig-name">Baseline · Drift <span class="bit-tag">BASELINE</span></span><span class="bit-sig-dir" style="color:var(--fin-down-strong)">▼ SHORT</span><span class="bit-sig-edge" style="color:var(--fin-down-strong)">-0.06%</span><span class="bit-sig-acc">acc 51%</span><span class="bit-sig-w">w0.03</span></div><div class="bit-sig-row"><span class="bit-sig-name">Baseline · Seasonal naive <span class="bit-tag">BASELINE</span></span><span class="bit-sig-dir" style="color:var(--fin-down-strong)">▼ SHORT</span><span class="bit-sig-edge" style="color:var(--fin-down-strong)">-8.33%</span><span class="bit-sig-acc">acc 51%</span><span class="bit-sig-w">w0.03</span></div><div class="bit-sig-row"><span class="bit-sig-name">Chronos-Bolt Tiny</span><span class="bit-sig-dir" style="color:var(--fin-up-strong)">▲ LONG</span><span class="bit-sig-edge" style="color:var(--fin-up-strong)">+0.60%</span><span class="bit-sig-acc">acc 50%</span><span class="bit-sig-w">w0.01</span></div><div class="bit-sig-row"><span class="bit-sig-name">Baseline · Random walk <span class="bit-tag">BASELINE</span></span><span class="bit-sig-dir" style="color:var(--text-tertiary)">■ FLAT</span><span class="bit-sig-edge" style="color:var(--text-tertiary)">+0.00%</span><span class="bit-sig-acc">acc —</span><span class="bit-sig-w">w0.00</span></div><div class="bit-sig-row"><span class="bit-sig-name">Chronos T5 Small</span><span class="bit-sig-dir" style="color:var(--fin-up-strong)">▲ LONG</span><span class="bit-sig-edge" style="color:var(--fin-up-strong)">+0.95%</span><span class="bit-sig-acc">acc 48%</span><span class="bit-sig-w">w0.00</span></div></div><div class="bit-consensus"><div class="bit-micro">BTC-USD · 1d</div><div class="bit-consensus-dir" style="color:var(--fin-down-strong)">SHORT ▼</div><div class="bit-micro">WEIGHTED EDGE -1.44%</div><div class="bit-conf-track"><div class="bit-conf-fill" style="width:50%;background:var(--fin-down-strong)"></div></div><div class="bit-micro">4/8 MODELS AGREE</div></div></div><div class="bit-micro" style="color:var(--text-tertiary)">weight = realised directional accuracy above a coin flip, on this asset and timeframe</div></div><div class="bit-note bit-note-danger">Learned models call direction correctly 50.2% of the time; naive baselines manage 51.1%. <b>The models are not beating the baselines on direction.</b> Read the leaderboard with that in mind.</div><div class="bit-zone-title">Coverage</div><div class="bit-note bit-note-danger">The signal store has no coverage yet.</div></div> | |
| <div class="bit-footer"> | |
| <span>Backtested results are hypothetical, derived from historical data, and are not indicative of future results. Nothing here is investment advice. The Bit Trading Company is not a licensed investment adviser.</span> | |
| <span class="bit-footer-right">BITTRADING BACKTEST LAB v1.1.0</span> | |
| </div></body></html> |