84 lines
6.4 KiB
Markdown
84 lines
6.4 KiB
Markdown
|
|
# Trading Program Understanding
|
||
|
|
|
||
|
|
## Scope
|
||
|
|
|
||
|
|
This report records read-only archaeology of `S:\PycharmProjects\SquadWatch`,
|
||
|
|
the Spark replay workspace, and the Pi service state. No exchange action,
|
||
|
|
credential access, service restart, or database mutation occurred.
|
||
|
|
|
||
|
|
## Current Decision
|
||
|
|
|
||
|
|
**CONFIRMED: no existing strategy qualifies for Shadow Mode from the latest
|
||
|
|
Spark evidence.** The latest 45-day selection/final comparison selected 50
|
||
|
|
families and recorded `survivor_count: 0`. This is a successful falsification
|
||
|
|
result, not a reason to loosen the gate.
|
||
|
|
|
||
|
|
## Data
|
||
|
|
|
||
|
|
| Status | Evidence |
|
||
|
|
| --- | --- |
|
||
|
|
| CONFIRMED | Spark snapshot `/home/daniel/hyperscalper-replay/binance_btcusd_2m_455d.csv` has 327,599 BTCUSD 2-minute OHLCV rows with `timestamp,open,high,low,close,volume`. Its observed range is Unix `1743840960` through `1783152720`. |
|
||
|
|
| CONFIRMED | Spark has a chronologically separated 90-day OOS snapshot and 45-day selection/final partitions: `binance_btcusd_2m_oos_90d.csv`, `binance_btcusd_2m_oos_select_45d.csv`, and `binance_btcusd_2m_oos_final_45d.csv`. The selection/final boundary is adjacent, not shuffled. |
|
||
|
|
| CONFIRMED | The newest discovered Spark HyperScalper artifacts were written 2026-08-08. They are not current market data on 2026-08-17. |
|
||
|
|
| CONFIRMED | Pi logs were updated 2026-08-17, but `hyperscalper-live.service` and `hyperscalper-risk50-paper.service` were inactive during the read-only check. |
|
||
|
|
| UNKNOWN | Current live exchange positions, fills, and account equity were not queried. Trading Studio V0.1 intentionally does not make exchange calls. |
|
||
|
|
| UNKNOWN | Funding, open interest, order book, tick, and liquidation datasets were not located in the verified Spark replay input. They must not be implied by OHLCV availability. |
|
||
|
|
|
||
|
|
## HyperScalper Architecture
|
||
|
|
|
||
|
|
| Status | Evidence |
|
||
|
|
| --- | --- |
|
||
|
|
| CONFIRMED | The source system is `src/hyperscalper` in SquadWatch. It contains indicator/search code, paper replay, feed, bot, executor, risk, and Postgres/SQLite journaling components. |
|
||
|
|
| CONFIRMED | Live topology documented in `docs/hyperscalper_pi_deployments.md` is feed -> paper/signal authority -> webhook-only live runner -> Hyperliquid executor. Documented initial live controls were single position, 1x leverage, and max notional 20. |
|
||
|
|
| CONFIRMED | The Pi documentation states a known accounting limitation: bot-managed exits may record local trigger price/PnL rather than the actual exchange close fill. Historical live PnL therefore needs reconciliation before it is treated as canonical. |
|
||
|
|
| INFERRED | Existing execution controls are useful source material but cannot be trusted as an Artifex execution adapter until restart recovery, idempotency, account-level risk persistence, and reconciliation are audited. |
|
||
|
|
|
||
|
|
## Features And Leakage
|
||
|
|
|
||
|
|
| Status | Evidence |
|
||
|
|
| --- | --- |
|
||
|
|
| CONFIRMED | `fast_engine.py`, `indicators_depth_nb.py`, and `indicator_library.py` provide a large multi-family feature universe. The implementation uses trend, oscillator, volatility, channel, pivot, time, and candle-derived signals. |
|
||
|
|
| CONFIRMED | The active paper-like replay computes signal at completed-bar close and enters at next-bar open with intrabar TP/SL handling. |
|
||
|
|
| BLOCKED | The high-throughput search kernel enters at same-bar close while the paper replay uses next-bar open. Search PnL is not execution-equivalent evidence and cannot qualify a strategy. |
|
||
|
|
| BLOCKED | Search volatility percentile calibration is derived from the full evaluated window in `fast_engine.py`; this leaks later observations into early threshold calibration. It must be fit on train only and frozen before validation/holdout. |
|
||
|
|
| SUSPICIOUS | Existing walk-forward code has no documented purge/embargo around position/cooldown boundaries. Future Artifex folds must embargo at least the maximum holding period plus cooldown. |
|
||
|
|
|
||
|
|
## Existing Strategy Evidence
|
||
|
|
|
||
|
|
| Status | Evidence |
|
||
|
|
| --- | --- |
|
||
|
|
| CONFIRMED | Spark report `/home/daniel/hyperscalper-replay/reports/oos_45d_selection_final_comparison.json` applied its stated selection rule to 50 candidates and reported zero final survivors. |
|
||
|
|
| CONFIRMED | The selection candidates exhibited strong prior-window PFs, while the displayed final-window results were negative with PF below one. This is direct evidence of regime/search fragility, not a live execution result. |
|
||
|
|
| CONFIRMED | `walkforward_14d_14d.json` states it used a read-only transaction and that selection used only fully completed training trades. It is useful historical evidence, but its thresholds and data partition policy must be revalidated by Artifex before reuse. |
|
||
|
|
| UNKNOWN | The local 14-row SQLite live journal is too small to establish a live alpha conclusion. The documented main 60-day paper database was not present in the inspected local workspace. |
|
||
|
|
|
||
|
|
## Backtester Integrity Assessment
|
||
|
|
|
||
|
|
**PARTIAL / NOT QUALIFIED FOR PROMOTION**
|
||
|
|
|
||
|
|
- Reuse candidate: `src/hyperscalper/paper_replay.py` because its timing model is closer to intended paper/live semantics.
|
||
|
|
- Reject for qualification: `fast_engine.evaluate_combo()` and the close-only kernel until same-bar and full-window calibration issues are repaired.
|
||
|
|
- Required before a future cohort: immutable source hash, chronological discovery/train/validation/holdout split, train-only thresholds, purge/embargo, fixed cost version, and next-open/intrabar conservative replay.
|
||
|
|
- Required before Shadow: a fresh data snapshot after the 2026-08-08 Spark cutoff, a successful independent cohort, and an Artifex shadow runner that records intended order, observed market evolution, and simulated fill without exchange submission.
|
||
|
|
|
||
|
|
## V0.1 Cohort Policy
|
||
|
|
|
||
|
|
The first Artifex cohort is bounded to 20 pre-existing, fingerprint-deduplicated
|
||
|
|
strategy genomes. It must run the paper-like replay with frozen data/splits and
|
||
|
|
cost stress. The latest Spark report already proves that the current 50-candidate
|
||
|
|
selection did not survive its final partition. Artifex must preserve that failure
|
||
|
|
knowledge and must not promote any member of that family from those results.
|
||
|
|
|
||
|
|
## Shadow Readiness
|
||
|
|
|
||
|
|
**NOT READY.** No shadow command is authorized to start yet. Once a new current
|
||
|
|
market snapshot is registered, has passed quality validation, and an offline
|
||
|
|
cohort produces a holdout-qualified survivor, the future explicit command is:
|
||
|
|
|
||
|
|
```powershell
|
||
|
|
python manage.py trading_shadow --project crypto-hyperscalper --strategy-version <uuid> --dry-run
|
||
|
|
```
|
||
|
|
|
||
|
|
That command is intentionally not implemented in V0.1 because it would create a
|
||
|
|
false impression that shadow qualification is currently satisfied.
|