Phase 10 Session 3A — Form 4 insider transaction signal (null result, systematic negative IC documented)#11
Merged
Conversation
…ve IC, rejected Migration 0013: insider_transactions table (190,020 rows, 1,577 P txns, 140/140 tickers, 2018-01-02 to 2026-05-19, ON CONFLICT idempotent). EDGARClient.get_form4_xml + Form 4 XML parser (non-derivative transactions only, point-in-time on filed_at). Disk cache at data/cache/form4/ for idempotent re-runs. Cohen-Malloy-Pomorski opportunistic classifier in nexus/signals/factors/insider.py: ROUTINE iff same calendar-month P in each of 3 prior years; default OPPORTUNISTIC when history < 3 years. Signal normalised by adj_close x float_shares_M. IC results (primary insider_opportunistic_63d): 21d t=-1.983 / 63d t=-2.223 / 126d t=-2.658 -- uniform negative, HLZ FAIL. CALM regime 63d t=-2.773; late-third 21d t=-2.870 (worsening, not decaying). NON-CALM positive flip t=+0.67 statistically insufficient (N=8). Registered insider_opportunistic_63d as status='rejected' with full IC evidence in regime_profile. Not wired into aggregator. Paper trader unchanged. 9 TDD tests green (tests/test_insider_factors.py).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
insider_transactionstable — 190,020 rows, 1,577 open-marketpurchases, 140/140 tickers, 2018–2026, idempotent via
ON CONFLICT uq_insider_tx DO NOTHINGEDGARClient.get_form4_xml+ Form 4 XML parser (nexus/data/edgar/forms/form_4.py,non-derivative transactions only, point-in-time on
filed_at)nexus/signals/factors/insider.py:ROUTINE iff same calendar-month P in each of 3 prior years; OPPORTUNISTIC by default
_InsiderPanelwired opt-in intonexus/signals/backtest.py(3 lookback variants)tests/test_insider_factors.py)IC result
insider_opportunistic_63dICs are uniformly negative across every diagnostic:Signal direction is systematically inverted vs hypothesis. NON-CALM positive flip
(t≈+0.67, N=8) is statistically insufficient — same trap as Session 1 regime gate.
Registry
insider_opportunistic_63dwritten tosignal_registrywithstatus='rejected'and full IC evidence in
regime_profile. Not wired into aggregator.Paper trader unchanged from Phase 9 Session 1.