Engine

See how decisions are made

Follow the path from collecting indicators to reading connections, checking limits and learning.

At a glance

Nine steps, every day

  1. 01Collect40 sources
  2. 02Publication lagonly after release
  3. 03Links6 methods
  4. 04Scoringonly what passes
  5. 05Forecast · value5 to 60 days · fair value
  6. 06Gates8 checks
  7. 07Allocate4 sleeves · wallets
  8. 08Orders · protection10+ checks
  9. 09Reconcile · learn5 min · weekly

Collection

News every 10 minutes, quotes whenever a market is open

In plain words

News arrives every 10 minutes, social data every 15, quotes whenever a market is open, statistics on their release schedule. The engine, not a person, decides which source is late. If core quotes stop for three days, only new buys stop.

Technically

Sources
40 · 2,793 indicators · 31 groups
Cadence
News RSS 10 min · GDELT, Reddit, StockTwits 15 min · FRED hourly on the release calendar · quotes 07:10 and 16:10 KST · CFTC, BIS weekly
Freshness
It learns each source's usual gap; 3× that gap means late, 3× the run interval means stalled, under 6 hours is tolerated
Right now
33 sources on time
Core sources
Quotes 3 days or FX 4 days stale blocks new buys only; sells pass

Publication lag

Yesterday's release is used from today, never before

In plain words

A statistic is unknown to everyone until it is published. When the engine learns from the past it uses only what was knowable on each day, so test results cannot look better than live trading.

Technically

Rule version
2026-10-07 · decision time 07:55 KST
Lag by source
Yahoo quotes 0 · FRED 1 business day · BIS 10 · US CPI 35 · unknown sources 5 (weekly 10 · monthly 65 · quarterly 130 · yearly 400)
Weekends
Observations roll to the next business day
Same information
Training and today's scoring see the same lag-shifted values
Lag drift
Recorded only; never affects trading

Link computation

How indicators connect, redrawn every morning

In plain words

Two things can move together because of a third. Those links are removed. Six methods run separately, and the strength that chance alone could produce (the noise floor) is shown on every correlation screen.

Technically

6 methods
Pearson and Spearman (random-matrix cleaned, false-discovery rate 5%) · partial correlation (Graphical Lasso) · lead-lag (up to 5 days, directed) · exponentially weighted (half-life 60 days) · Ledoit-Wolf
3 layers
Daily 252 days · weekly 156 weeks · monthly 120 months
Thresholds
Pearson 0.30 · partial 0.02 · noise floor √(2·ln(pairs)/T)
Node statistics
Degree · strength · eigenvector centrality · betweenness · Louvain cluster
Links alive
2,135,133
When
Daily 07:30 · weekly Sat 10:00 · monthly on the 1st 10:30

Hypothesis scoring

"This indicator moves that stock" is scored against the data

In plain words

A link between an indicator and a stock starts as a hypothesis. It passes only if the sign matches and the strength clears the noise floor. Only passing links tilt the allocation, a little.

Technically

Supported
Sign matches and |ρ| ≥ noise floor, or partial correlation ≠ 0
Weak
Sign matches but below the floor
Contradicted
Opposite sign at or above the floor
Untested
No time series or not in the run
Right now
supported 141 · weak 222 · contradicted 3 · untested 9
Allocation
Supported only, tilt capped at 20%, damped 0.85 per hop
When
Weekly, Sun 08:40

Forecast

The probability of a rise is the share of similar pasts, not a prophecy

In plain words

It writes the range the price may be in 5, 10, 20, 40 and 60 days ahead. The probability of a rise is the share of the 150 most similar past cases that went up. How well stated probabilities matched reality is re-measured weekly and shown on screen.

Technically

Horizons
5 · 10 · 20 · 40 · 60 days
Output
Quantiles p05 p25 p50 p75 p95 · share up · probability of hitting ±3, 5, 10% first
Methods
150 nearest analogs (kNN) · GJR-GARCH-t simulation cone · base rate · hazard classifier
Calibration
Out-of-sample Brier; marked calibrated only with 50+ test cases and a score better than the base rate
Reliability table
Six years replayed weekly into stated-vs-realized bins. A stated 72% once realized at 56%, and that is shown as is
For allocation
Only the up-minus-down analog gap at 10, 40 and 60 days. The table changes screen wording only
When
Daily 07:50 · table Sat 12:30

Stock value

Earning power now and growth, valued separately

In plain words

A value from current earning power (EPV) and a value including growth (DCF) are computed separately, so you see how cheap or expensive the price is against each. Loss-making companies get a reason code, not an invented value.

Technically

3 methods
DCF (5 years of cash-flow growth plus 2% terminal; growth is the 3-year average clipped to −5..12%) · EPV (normal operating income × 75% ÷ discount rate + net cash, 8+ quarters) · Graham √(22.5 × EPS × BVPS)
Discount rates
Korea 10% · US 9%
Fair value
Median of the available methods. Confidence 1.0 with 2+ methods within 3× of each other, else 0.5
On screen
Discount to current value = 1 − price/EPV · discount to future value = 1 − price/DCF · growth premium = DCF/EPV − 1 · evidence score (completeness .25 · agreement .35 · predictability .25 · IR skepticism .15)
Currency
Foreign statements are converted to the price currency
Allocation
±20% tilt, mid and long sleeves only
When
Daily 07:48 · weekly Sun 08:20

Eight gates

All eight must pass. None has yet

In plain words

So far 228 strategies were tested and 0 passed all eight. The eighth gate needs three months of live records, so nothing can pass it automatically yet. Lowering the bar would let strategies through; the bar was not lowered.

Technically

1 Leakage
Compared with label-shuffled fakes: |shuffled SR| < 0.3 and shifted SR ≤ SR + 0.1
2 Walk forward
Retrain every 63 days with a 5-day embargo between training and test
3 Out of sample
5+ unseen years · 100+ effective trades
4 Costs
SR > 0.3 at 2× fees and > 0.5 at 1× (1×, 2×, 3× are all run)
5 Overfitting
DSR ≥ 0.95 · PBO ≤ 0.5
6 Against fakes
Top 5% against phase-randomized series
7 Mechanism
Why it earns must be written down
8 Live comparison
3+ months of records, tracking error under 2σ. Not scored automatically yet
Engine promotion gate
Out-of-sample IC > 0.01 · t > 2 · mean IC over the last 2 years > 0 · breakeven cost ≥ 0.64% (2× the Korean round trip of 0.32%). Otherwise shadow only

Allocation

Four sleeves with different horizons

In plain words

One account holds sleeves with different horizons, and each market gets its own budget. The cash to keep is never touched whatever the signal, and what is left is not parked in cash but moved into defensive assets.

Technically

4 sleeves
Ultra-short 0 to 3 days, 3 names · short 1 to 28 days, 8 names (risk parity) · mid 29 to 180 days, 10 names (HRP) · long 181 to 1,095 days, 10 names (HRP)
Market budgets
That market's cash + holdings × investable share. Crypto capped at 20% of the whole
Cash to keep
The larger of a percentage and a minimum amount. Never invested
Leftover budget
Into defensive assets such as short-term bonds
Goal ladder
5% behind plan raises risk exposure, 10% ahead lowers it
When
Daily 08:05 · orders crypto 08:15 · Korea 09:05 · US 22:35 KST (daylight time)

Orders and protection

An order passes more than ten checks

In plain words

A buy over a limit is trimmed, not rejected. Sell orders and stop-losses pass every check. When a large loss appears, the full stop is armed only after a second reading ten minutes later.

Technically

Checks that block buys
Manual stop (everything) · drawdown stages (−5% reduce, −10% pause, −15% halt from the peak, weekly −4%, monthly −8%, time-weighted, and 0.5 pt extra recovery before a stage steps down) · daily loss ₩500,000 · intraday −3% · the buys-only pause switch · licence · tamper detection · books stale over 15 minutes · core source stalled
Per order
HMAC-SHA256 signature · price within ±10% of the last close (crypto 15%) · ₩1,000,000 per order · 1% of 20-day average value · 15% per name · crypto 20% total, 10% per name · cash to keep · venue cash
Over a cap
Trimmed to the headroom and re-signed instead of rejected
Full stop
Armed only after a halt-level reading repeats 10 minutes later. Auto-released after 72 hours
Outside regular hours
Limit orders only, reference ±0.2%. Ultra-short at half size
Unfilled
Cancelled after 10 minutes (crypto 5). Sells resubmitted up to 3 times
Cost basis
Round trip Korea 0.32% · US 0.06% · crypto 0.20%. Ultra-short entry needs 3× cost, take-profit 2×, stop-loss −1.5%, time stop after 3 days

Reconcile and learn

Books matched every 5 minutes, relearned every week

In plain words

Every 5 minutes the ledger is matched against the broker. Trades you placed yourself are found and recorded, and a holdings mismatch is reported, never overwritten. Every fill's outcome is kept and the models relearn weekly. Sharing can be switched off, and accounts, amounts and keys cannot leave by construction.

Technically

Reconcile
Every 5 minutes and after each order pass: fills → manual trades → cash. The broker is the source of truth
Holdings mismatch
Alert only, no automatic fix. Unreadable is recorded as unverifiable
On wake
A gap over 180 seconds counts as a wake: reconcile before any decision; allocation and orders are never run late
Outcome ledger
Fees and taxes · latency (s) · slippage · 10 and 40-day return buckets
Sharing (every 30 min, off in Settings)
Hashed order id · time · market and venue · symbol · side · horizon · intended and filled price · slippage · latency · order of magnitude of equity · regime · engine version · return bucket
Never sent
API keys · account numbers · equity · order amounts · fees and taxes · email
Downloads
Priors daily · shared model daily (Ed25519-signed; used only if switched on)
Relearn
Weekly Sat 12:30; shadow only if not promoted · backup daily 03:00, kept 14 days

Security

Keys stay locked; on a warning only buying stops

In plain words

Keys are encrypted and the unlock key lives in the operating system's store. If a program file changes or odd access appears, only new buys stop; selling keeps running.

Technically

Key storage
AES-256-GCM. The unlock key is in macOS Keychain or Windows DPAPI (else a 0600 file, shown on screen). The API returns presence and the last 4 characters, never values
Tamper detection
Fingerprint of engine files; baseline resets on a version change; a mismatch blocks new buys only
15-minute checks
Open ports · settings file hash and permissions · external-IP login attempts · database tampering · unknown holdings
Access log
24-hour summary on the security screen
Heartbeat
Every 60 s: version, mode, markets, last jobs, scheduler and DB state only. No accounts or amounts. 15 minutes of silence sends an email
Guardian
Owner account only. Server-side, sells only, and only when the Mac heartbeat has been silent for 300 s

Running it yourself is the fastest way

Indicators, data and your holdings are free. Try the call screens and orders free for 14 days.