HivemindOS manual

Penny-stock Standing-limit Paper Lab

This is a paper-trading research lab: it never contacts a broker, places or cancels an order, uses a wallet, or moves money. It tests one method — find stocks closing near $0.10 and leave a buy limit near $0.07 — ranks ten candidates, lets you pick zero to three for a paper basket, and tests at most one policy change at a time against strict overfitting checks.

It is not an investment recommender. Simulated profit is not evidence of future earnings. Run the commands below from the HivemindOS repository folder.

Research candidates

node scripts/penny-stock-paper-lab.mjs research

The report covers each candidate separately:

  • market cap and 90-session volume;
  • volatility, maximum drawdown, and return;
  • how often the limit price was touched and later bounced, with conservative confidence bounds;
  • expected value after spread, partial fills, adverse selection, and costs;
  • recent bid/ask spread and displayed size;
  • SEC filing risks (offerings, convertibles, warrants, going-concern language, listing compliance, losses, share growth, cash runway), classified as confirmed, planned, conditional, boilerplate, or unclear;
  • reverse splits and other corporate actions;
  • hard-veto reasons, and a separate list of unresolved risks.

Each run saves a dated snapshot of the candidate universe, so later reviews still include stocks that drop off the screen. Coverage starts from your first snapshot; the lab does not rebuild a full history of delisted stocks.

Pick a paper basket

node scripts/penny-stock-paper-lab.mjs review \
  --run-id <run-id> \
  --symbols AAA,BBB,CCC \
  --reviewed-by "<reviewer>" \
  --rationale "<evidence-based rationale>"

Pick one to three names. Use --symbols cash to stay in cash, or --symbols auto to let the built-in conservative reasoner choose. A vetoed, unresolved-risk, or non-positive expected-value candidate cannot be selected.

Keep it running

Command When What it does
monitor Hourly during U.S. market hours Refreshes spread, displayed size, SEC filings, and corporate actions for the latest top ten. Skips if nothing changed.
after-close Once after the close Runs research, the review, outcome updates, and evolution in one safe step. Skips if the data has not changed.
weekly-audit Weekly Summarizes runs, coverage, gate pass rates, cost stress, and matured outcomes.

Run each as node scripts/penny-stock-paper-lab.mjs <command>. The monitor and weekly audit never change the policy. The weekly audit’s profit figures overlap and must not be added up or read as portfolio earnings.

How paper fills are modeled

With quote data, a buy fills only when the ask reaches the limit, and a sale only when the bid reaches the target. Fills are capped at 10% of displayed size, and partial fills are recorded. Without quote data, a deliberately pessimistic daily-bar model is used.

Both models include costs, adverse-selection penalties, volume limits, stop-first handling when a bar hits both exits, gap penalties, no fills on zero-volume days, a position limit, daily-loss and drawdown kill switches, and results at 1x, 2x, and 3x costs.

A modeled fill still does not prove a real order would fill. Queue position, hidden liquidity, manipulation, halts, and broker handling remain unknown.

How the policy can change

node scripts/penny-stock-paper-lab.mjs evolve --run-id <run-id>

Historical tests are diagnostic only; they cannot change the policy. Real learning uses only forward-recorded evidence:

  • Every new snapshot pre-registers a small set of single-change variants (entry, target, stop, holding period, or expiry), selector-weight trials of ±0.01 and ±0.02, and 10%, 20%, and 30% entry-distance panels. Old runs are never backfilled.
  • Evidence is grouped into fixed blocks: 32 training sessions, a 20-session gap, and a three-session holdout. That is normally 320 training and 30 holdout observations. Each block needs at least 252 training observations, 25 holdout observations, 95% label coverage, and 20 distinct symbols, and is used only once.

A change is eligible only if it passes every gate, including: beating cash, the current policy, a simple rule, and random variants; positive training and holdout returns (with unfilled orders counted as zero); a positive 10,000-sample bootstrap lower bound; no worse drawdown; positive results in both volatility regimes and at 1x, 2x, and 3x costs; overfitting and false-discovery checks; a stable parameter neighborhood; and genuinely new evidence.

At most one change is adopted per generation, with its hypothesis, prediction, result, and decision recorded. Rejected attempts are kept. Even a passing change only updates the local paper policy.

How outcomes are reviewed

Each run revisits earlier candidates after 1, 5, 10, and 20 trading sessions, selected or not, and replays the limit-order method on what actually happened. A stock that rose without ever touching the limit is not a missed trade. Each decision is labeled supported, challenged, mixed, or inconclusive.

Big movers get a check for new filings, corporate actions, volume shocks, and overnight gaps. The lab reports these as possible catalysts, never as proven causes, and marks a move with no evidence as unexplained.

Expanded image Scroll to pan · Esc to close
100%