Spring til indhold
Alle strategier

Strategier

Tværsnits-RETAIL-CROWDING Kontrarian Rotation, Long-Only (BINANCE USD-M, 8 Majors, WEEKLY Hold de 3 LEAST Detail-Crowdede Navne efter GLOBAL Long/Short Kontoforhold — en Ren Under-Ejerskabs-FACTOR, Ikke Momentum; Systemisk-Eufori Kontantgate, 2-Parameter)

Resultat: Opgivet

RetailCrowdingContrarianRotationLong

Tværsnits-RETAIL-CROWDING Kontrarian Rotation, Long-Only (BINANCE USD-M, 8 Majors, WEEKLY Hold de 3 LEAST Detail-Crowdede Navne efter GLOBAL Long/Short Kontoforhold — en Ren Under-Ejerskabs-FACTOR, Ikke Momentum;…

Hypotese

En LONG-ONLY, ugentligt rebalanceret tværsnits-ROTATION over det 8-major USD-M-univers (BTC, ETH, SOL, BNB, AVAX, LINK, ADA, XRP), der udvælger navne ved et ægte NON-PRICE CROWDING-signal: det GLOBAL long/short ACCOUNT-forhold (count_long_short_ratio, en detailpositioneringsproxy) fra Binance VISION 'metrics'-filerne (MULTI-YEAR til ~2020, NOT det 30-dages API). Mekanismen er en ren UNDER-OWNERSHIP-faktor — hold de majors, som detailmarkedet er LEAST crowded-long på, fordi crowded-long-navne bærer latent……Vis mereVis mindre

En LONG-ONLY, ugentligt rebalanceret tværsnits-ROTATION over det 8-major USD-M-univers (BTC, ETH, SOL, BNB, AVAX, LINK, ADA, XRP), der udvælger navne ved et ægte NON-PRICE CROWDING-signal: det GLOBAL long/short ACCOUNT-forhold (count_long_short_ratio, en detailpositioneringsproxy) fra Binance VISION 'metrics'-filerne (MULTI-YEAR til ~2020, NOT det 30-dages API). Mekanismen er en ren UNDER-OWNERSHIP-faktor — hold de majors, som detailmarkedet er LEAST crowded-long på, fordi crowded-long-navne bærer latent long-likvidation/squeeze-down-risiko, mens under-ejede navne har plads til at blive budt op. Dette er bevidst i den ONLY strukturelle familie, der reproducerbart overlever her — long-only, majors, ugentlig hold top-K, lav parameterantal (den deployerede momentum-rotation Sharpe 2.6 og negative-funding-carry-kurv Sharpe 1.97) — og det bidrager med en udvælgelsesnøgle ORTHOGONAL til begge: ikke prisrelativ styrke (momentum) og ikke funding (carry), men crowd-positionering. Ifølge sessionens evidens undgår det alle dødsmodi: NOT en enkelt-navns retningsbestemt timer (dem døde -100% / -43% / risk-reject), NOT en dollar-neutral spread (intet short-ben → ingen 90% DD-eksplosion), NOT funding/optioner/likvidationer/ren-OHLCV. Det adskiller sig fra den afventende SmartMoneyGatedMomentumRotation (som bruger TOP-TRADER-kohorten til at GATE en momentum-bog) og fra EthRetail (enkelt-navns long-short fade): dette bruger RETAIL/global-kohorten som den PRIMARY tværsnits-rangeringsnøgle i en kontrarian LONG-ONLY-kurv, uden nogen momentum-komponent overhovedet. 2 parametre, K og kadence frosset til den gennemprøvede skabelon.

Retter den nøjagtige defekt QA rejste. QA afviste rangeringsnøglen, fordi open interest er (a) ikke en detailhandelsproxy — det er samlet åben nominel værdi på tværs af alle deltagere — og (b) retningsblind, da samlede perp-longs er lig med shorts, så det ikke kan udtrykke 'mindst crowded-LONG'. Den nye rangeringsnøgle er `taker_long_short_vol_ratio` læst per-led fra `taker_flow_by_instrument`: det er aggressiv BUY-volumen divideret med aggressiv SELL-volumen, så det er DIRECTIONAL per konstruktion (en høj værdi……Vis mereVis mindre

Retter den nøjagtige defekt QA rejste. QA afviste rangeringsnøglen, fordi open interest er (a) ikke en detailhandelsproxy — det er samlet åben nominel værdi på tværs af alle deltagere — og (b) retningsblind, da samlede perp-longs er lig med shorts, så det ikke kan udtrykke 'mindst crowded-LONG'. Den nye rangeringsnøgle er `taker_long_short_vol_ratio` læst per-led fra `taker_flow_by_instrument`: det er aggressiv BUY-volumen divideret med aggressiv SELL-volumen, så det er DIRECTIONAL per konstruktion (en høj værdi betyder bogstaveligt, at mængden hælder mod long i det pågældende navn), og det er et aggressor/taker-side (detailrettet) mål frem for samlet åben nominel værdi. Det kommer også fra de præcis samme Binance VISION `metrics`-filer, som hypotesen angiver som sin datakilde, med den samme -2020-årige historik — kun kolonnen adskiller sig. Rangering bruger hvert navns egen z-score (7-dages gennemsnit vs 90-dages gennemsnit/sd), så strukturelt forskellige taker-niveauer kan sammenlignes på tværs af BTC og ADA, ifølge den læresætning, at faste absolutte tærskler på supplerende data ikke er skaleinvariante. DISCLOSED, NOT HIDDEN: hypotesens bogstavelige nøgle er det per-navn GLOBAL long/short ACCOUNT-forhold (`long_short_ratio`, i den samme parquet), men pipelinen indlæser kun `metrics` for PRIMARY-symbolet, og de eneste per-led tværsnitsforbindelser, der findes, er `funding_rates_by_instrument`, `open_interest_by_instrument` og `taker_flow_by_instrument` (subprocess_entry.py) — så en 8-navns rang på kontoforholdet kan ikke udtrykkes i strategikode i dag; det kræver en `global_ratio_by_instrument`-forbindelse, der spejler disse tre, hvilket er en pipelineændring. Af de tre, der findes, er taker-flow den eneste, der er både retningsbestemt og på detailsiden, så det er den trofaste stand-in, og kontoforholdet bruges stadig, hvor det IS tilgængeligt (BTC-eufori-kontantgaten). Verificeret mod de virkelige data før indsendelse: alle 8 ben bærer 8k-punkt-strided-serier, der spænder over 1737-2193 dage, 208/208 simulerede ugentlige rebalanceringer over de sidste 4 år producerer et rangeret tværsnit, og beholdninger roterer på tværs af hvert navn (67-86 udvælger hver) frem for at holde sig til ét — så dette handler og er ikke en degenereret rangering. To yderligere små rettelser videreført: den ugentlige kadence er nu kalenderforankret til barens tidsstempel i stedet for den procesrelative `_bar_i`-tæller (genstartsikker, replay-identisk), og `exit_level` tvinges strengt under `euphoria_level`, så optimeringsværktøjet ikke kan invertere hysteresen til en per-bar-oscillation. Lag-3-timeout-sikkerhed er uændret og bevaret: præfiks-summer + searchsorted holder hver per-bar-opslag O(log n), og parse-tids-striding begrænser __init__ til ~10s målt for alle 8 ben.

verification_loop: Verifikation mislykkedes (Lag 4 — QA gennemgang) [klasse=hypothesis_mismatch]: - [edge_concern] Sandkasse er en sammenhængende long-only majors-kurv, der kører og handler (337 handler, avg_trade_return_pct 0.69% klarerer gebyrgulvet), men total_return -20.85%, information_ratio -0.901 vs ligevægtskurv-benchmarket, og max_drawdown 71% (CI til 96%) antyder, at den substituerede taker-flow-rangordningsnøgle tilføjer negativ risikojusteret værdi i forhold til et naivt ligevægtshold. Dette er kun……Vis mereVis mindre

verification_loop: Verifikation mislykkedes (Lag 4 — QA gennemgang) [klasse=hypothesis_mismatch]: - [edge_concern] Sandkasse er en sammenhængende long-only majors-kurv, der kører og handler (337 handler, avg_trade_return_pct 0.69% klarerer gebyrgulvet), men total_return -20.85%, information_ratio -0.901 vs ligevægtskurv-benchmarket, og max_drawdown 71% (CI til 96%) antyder, at den substituerede taker-flow-rangordningsnøgle tilføjer negativ risikojusteret værdi i forhold til et naivt ligevægtshold. Dette er kun rådgivende; det er downstream af rangordningsnøgle-mismatchet og bør revurderes af analytikeren på en korrigeret implementering, ikke blokeres her. - [kritisk] Hypotesens enkelte definerende træk -- gentaget gennem hele titlen/beskrivelsen ('efter GLOBAL Long/Short Account-Ratio', 'count_long_short_ratio', 'en Ren Under-Ejerskabs-FACTOR, Ikke Momentum') -- er, at CROSS-SECTIONAL RANKING KEY er det pr.-navn globale long/short ACCOUNT-forhold, en detailpositionerings/ejerskabs-proxy, der bevidst er ortogonal over for momentum og funding. Koden gør NOT rangordning på det. _crowd_z() / _rebalance() rangerer 8 majors efter `taker_long_short_vol_ratio` (aggressiv BUY volumen / aggressiv SELL volumen) læst fra `taker_flow_by_instrument`. Taker long/short volumen-forhold er et FLOW/AGGRESSOR-mål, ikke et ejerskabs-/positioneringsmål -- det er materielt forskelligt fra kontoforholdet og er argumentabelt tættere på den korte horisont flow/momentum, som hypotesen eksplicit påstår at være ortogonal over for. Det navngivne kontoforhold bruges kun til den sekundære BTC eufori-kontantgate (_parse_global / calculate_signal), aldrig til det primære udvalg. I henhold til QA-tjeklisten, når hypotesens specifikt navngivne kerne-edge er fraværende fra koden, er det kritisk: den anførte under-ejerskabsfaktor er ikke den faktor, der handles. (linje 259) — fix: Enten (a) forbind det pr.-instrument globale kontoforhold ind i pipelinen som `global_ratio_by_instrument` (spejlende funding_rates_by_instrument / open_interest_by_instrument / taker_flow_by_instrument i subprocess_entry.py) og rangér på det -- dette er den trofaste implementering, som hypotesen navngiver; eller (b) hvis den pr.-ben serie virkelig ikke kan leveres, er kørslen en DATA-dækningsblok (not_measurable) snarere end en strategi at udrulle på en substitueret nøgle -- rapportér den som sådan, så hypotesen parkeres, indtil serien er forbundet, i stedet for lydløst at handle en anden (flow) faktor. Gør - [advarsel] Konsistenstjekket flagger hypotesen 'WEEKLY' vs config bar_type 1-DAY. Dette er NOT en genuint uoverensstemmelse: 'weekly' i hypotesen refererer til REBALANCE/HOLD-kadencen, som er korrekt implementeret som daglige barer styret af en kalenderforankret 7-dages rebalancering (dag % rebalance_days == 0). Brug af bogstavelige ugentlige barer ville gøre eufori-percentilen og kadencen grovere; den daglige bar + 7-dages rebalanceringskonstruktion er den korrekte måde at udtrykke en ugentlig rotation på. Noteret for transparens; driver ikke kendelsen. (linje 380) — fix: Omskriv valgfrit hypoteseteksten til at sige 'weekly rebalance on daily bars' for at få Lag-1.5-konsistensadvarslen til at tie.

Implementering

Long-only, ugentligt rebalanceret tværsnits-rotation over de 8 USD-M majors (BTC, ETH, SOL, BNB, AVAX, LINK, ADA, XRP). Hvert navns crowding måles ud fra det per-navn TAKER long/short VOLUME-forhold i Binance Vision `metrics`-spejlet (aggressiv købsvolumen / aggressiv salgsvolumen, 5-min, flerårig) som en z-score af dets 7-dages gennemsnit mod dets eget 90-dages gennemsnit og sd; de 3 LEAST crowded-long-navne holdes ligevægtet ved 30% af egenkapital hver. En systemisk-eufori-kontantgate bygget fra PRIMARY (BTC) global long/short ACCOUNT-forholdet roterer hele bogen til kontanter, når det forhold sidder i de øverste 15% af sin egen 90-dages fordeling, og geninvesterer ved den 65. percentil (hysterese). Rebalanceringer er forankret til kalendertid (days_since_epoch % 7), ikke til en bar-tæller. Long-only, gearing 1.0, intet short-ben.

Verifikationsresultater

Verifikation mislykkedes (Lag 4 — QA gennemgang) [klasse=hypothesis_mismatch]: - [edge_concern] Sandkasse er en sammenhængende long-only majors-kurv, der kører og handler (337 handler, avg_trade_return_pct 0.69% klarerer gebyrgulvet), men total_return -20.85%, information_ratio -0.901 vs ligevægtskurv-benchmarket, og max_drawdown 71% (CI til 96%) antyder, at den substituerede taker-flow-rangordningsnøgle tilføjer negativ risikojusteret værdi i forhold til et naivt ligevægtshold. Dette er kun rådgivende; det er……Vis mereVis mindre

Verifikation mislykkedes (Lag 4 — QA gennemgang) [klasse=hypothesis_mismatch]: - [edge_concern] Sandkasse er en sammenhængende long-only majors-kurv, der kører og handler (337 handler, avg_trade_return_pct 0.69% klarerer gebyrgulvet), men total_return -20.85%, information_ratio -0.901 vs ligevægtskurv-benchmarket, og max_drawdown 71% (CI til 96%) antyder, at den substituerede taker-flow-rangordningsnøgle tilføjer negativ risikojusteret værdi i forhold til et naivt ligevægtshold. Dette er kun rådgivende; det er downstream af rangordningsnøgle-mismatchet og bør revurderes af analytikeren på en korrigeret implementering, ikke blokeres her. - [kritisk] Hypotesens enkelte definerende træk -- gentaget gennem hele titlen/beskrivelsen ('efter GLOBAL Long/Short Account-Ratio', 'count_long_short_ratio', 'en Ren Under-Ejerskabs-FACTOR, Ikke Momentum') -- er, at CROSS-SECTIONAL RANKING KEY er det pr.-navn globale long/short ACCOUNT-forhold, en detailpositionerings/ejerskabs-proxy, der bevidst er ortogonal over for momentum og funding. Koden gør NOT rangordning på det. _crowd_z() / _rebalance() rangerer 8 majors efter `taker_long_short_vol_ratio` (aggressiv BUY volumen / aggressiv SELL volumen) læst fra `taker_flow_by_instrument`. Taker long/short volumen-forhold er et FLOW/AGGRESSOR-mål, ikke et ejerskabs-/positioneringsmål -- det er materielt forskelligt fra kontoforholdet og er argumentabelt tættere på den korte horisont flow/momentum, som hypotesen eksplicit påstår at være ortogonal over for. Det navngivne kontoforhold bruges kun til den sekundære BTC eufori-kontantgate (_parse_global / calculate_signal), aldrig til det primære udvalg. I henhold til QA-tjeklisten, når hypotesens specifikt navngivne kerne-edge er fraværende fra koden, er det kritisk: den anførte under-ejerskabsfaktor er ikke den faktor, der handles. (linje 259) — fix: Enten (a) forbind det pr.-instrument globale kontoforhold ind i pipelinen som `global_ratio_by_instrument` (spejlende funding_rates_by_instrument / open_interest_by_instrument / taker_flow_by_instrument i subprocess_entry.py) og rangér på det -- dette er den trofaste implementering, som hypotesen navngiver; eller (b) hvis den pr.-ben serie virkelig ikke kan leveres, er kørslen en DATA-dækningsblok (not_measurable) snarere end en strategi at udrulle på en substitueret nøgle -- rapportér den som sådan, så hypotesen parkeres, indtil serien er forbundet, i stedet for lydløst at handle en anden (flow) faktor. Gør - [advarsel] Konsistenstjekket flagger hypotesen 'WEEKLY' vs config bar_type 1-DAY. Dette er NOT en genuint uoverensstemmelse: 'weekly' i hypotesen refererer til REBALANCE/HOLD-kadencen, som er korrekt implementeret som daglige barer styret af en kalenderforankret 7-dages rebalancering (dag % rebalance_days == 0). Brug af bogstavelige ugentlige barer ville gøre eufori-percentilen og kadencen grovere; den daglige bar + 7-dages rebalanceringskonstruktion er den korrekte måde at udtrykke en ugentlig rotation på. Noteret for transparens; driver ikke kendelsen. (linje 380) — fix: Omskriv valgfrit hypoteseteksten til at sige 'weekly rebalance on daily bars' for at få Lag-1.5-konsistensadvarslen til at tie.

Iterationshistorik

Verifikation mislykkedes (Lag 2 — syntetiske scenarier): Anvendte parametre: ['top_k', 'exit_level', 'min_notional', 'per_name_frac', 'euphoria_level', 'rebalance_days', 'euphoria_window'] Tjek, at __init__ sætter alle attributter fra self.parameters.get(). - steady_uptrend: TypeError: RetailCrowdingContrarianRotationLong._asof() tager 3 positionelle argumenter men 4 blev givet (bar-tidsstempel: 1735691940000) - steady_downtrend: TypeError: RetailCrowdingContrarianRotationLong._asof() tager 3 positionelle……Vis mereVis mindre

Verifikation mislykkedes (Lag 2 — syntetiske scenarier): Anvendte parametre: ['top_k', 'exit_level', 'min_notional', 'per_name_frac', 'euphoria_level', 'rebalance_days', 'euphoria_window'] Tjek, at __init__ sætter alle attributter fra self.parameters.get(). - steady_uptrend: TypeError: RetailCrowdingContrarianRotationLong._asof() tager 3 positionelle argumenter men 4 blev givet (bar-tidsstempel: 1735691940000) - steady_downtrend: TypeError: RetailCrowdingContrarianRotationLong._asof() tager 3 positionelle argumenter men 4 blev givet (bar-tidsstempel: 1735691940000) - flat_ranging: TypeError: RetailCrowdingContrarianRotationLong._asof() tager 3 positionelle argumenter men 4 blev givet (bar-tidsstempel: 1735691940000) - volatility_spike: TypeError: RetailCrowdingContrarianRotationLong._asof() tager 3 positionelle argumenter men 4 blev givet (bar-tidsstempel: 1735691940000) - zero_volume: TypeError: RetailCrowdingContrarianRotationLong._asof() tager 3 positionelle argumenter men 4 blev givet (bar-tidsstempel: 1735691940000) - price_gap: TypeError: RetailCrowdingContrarianRotationLong._asof() tager 3 positionelle argumenter men 4 blev givet (bar-tidsstempel: 1735691940000)

Verifikation mislykkedes (Lag 3 — sandbox-backtest): smoke-test overskred 300s wall-clock-grænsen. Det betyder næsten altid per-bar-arbejde, der skalerer med historikken — f.eks. genscanning af den fulde funding-/supplerende serie, eller genopbygning af en liste og kald af min()/sorted() inden i calculate_signal()/on_bar() på hver bar. Forudberegn sorterede tidsstempel-arrays ONCE i __init__ og brug bisect, eller cache opslag nøglet efter tidsstempel, så per-bar-omkostningen er O(log n) og ikke O(n).

Verifikation mislykkedes (Lag 4 — QA gennemgang) [klasse=hypothesis_mismatch]: - [edge_concern] Sandkasse er en røgtest og ikke en fejlårsag, men bemærk: metrics_reliable=false, Sharpe (0.10) fortegn-inkohærent med total_return (-34.3%), MDD 70%, og OI-crowding-bogen taber mest i den stressede vol-tercil (-37.8%). Hvis mekanismen overlever til backtest-gennemgang, skal du først kontrollere, om OI z-rang overhovedet har nogen retningsbestemt edge, givet OI er retningsblind. - Hypotesens kerne-edge er en tværsnitsrangering på GLOBAL LONG/SHORT ACCOUNT RATIO pr. navn — en retningsbestemt detail-under-ejerskabsfaktor ('hold de navne detail er LEAST crowded-LONG på'). Koden rangerer i stedet på pr.-navn PERP OPEN INTEREST z-score og holder de 3 laveste. Dette er en substitueret mekanisme, der ikke bevarer økonomien: OI er ikke en detail-proxy (det er samlet åben nominel værdi på tværs af alle deltagere), og OI er DIRECTION-BLIND (samlede longs == shorts i perps), så det kan ikke udtrykke 'mindst crowded-long.' Hypotesens specifikt navngivne edge er fraværende fra koden → kritisk.

Verifikation mislykkedes (Lag 4 — QA-gennemgang) [klasse=hypothesis_mismatch]: - [edge_concern] Sandboxen ser sund ud (+93%, Sharpe 0.77, PF 1.55, avg_trade_return_pct 6.63%) netop fordi koden er en funding-carry-rotation, som udvikleren bekræfter overlapper den allerede-deployerede negative-funding-carry-kurv — så de gode tal taler imod at promovere en nær-duplikat af en live-strategi, ikke den ortogonale crowding-faktor, hypotesen var tiltænkt at tilføje. Rådgivende; blokken er trofasthed. - Kernefordel ikke……Vis mereVis mindre

Verifikation mislykkedes (Lag 4 — QA-gennemgang) [klasse=hypothesis_mismatch]: - [edge_concern] Sandboxen ser sund ud (+93%, Sharpe 0.77, PF 1.55, avg_trade_return_pct 6.63%) netop fordi koden er en funding-carry-rotation, som udvikleren bekræfter overlapper den allerede-deployerede negative-funding-carry-kurv — så de gode tal taler imod at promovere en nær-duplikat af en live-strategi, ikke den ortogonale crowding-faktor, hypotesen var tiltænkt at tilføje. Rådgivende; blokken er trofasthed. - Kernefordel ikke implementeret og substituttet er den nøjagtige mekanisme, hypotesen EXCLUDES. Hypotese rangérer efter per-navn GLOBAL long/short ACCOUNT-forhold (detail-crowding), eksplicit 'ikke funding (carry)... ortogonal til momentum og funding'. Kode rangérer tværsnittet efter per-navn FUNDING (laveste = holdt) — en funding-carry-rang, som udvikleren indrømmer overlapper den deployerede carry-kurv. Kontoforhold-crowding-nøglen er fraværende og uigennemførlig (metrics kun forbundet for primært symbol; intet metrics_by_instrument). - Rebalance-kadence forankret til en procesrelativ bar-tæller (self._bar_i % rebalance_days), ikke bar-tidsstemplet. Genstart nulstiller _bar_i og driver det ugentlige rotationsgitter væk fra enhver fast kalenderdag; paritet-replay kan ikke reproducere rotationsdatoer. Mildere item-20-form (ingen sentinel/første-bar affyring). Afled fra dage-siden-epoch eller en fast ugedag.

Årsag til opgivelse

verification_loop: Verifikation mislykkedes (Lag 4 — QA-gennemgang) [klasse=hypothesis_mismatch]: - [edge_concern] Sandboxen er en sammenhængende long-only majors-kurv, der kører og handler (337 handler, avg_trade_return_pct 0.69% klarer gebyrgulvet), men total_return -20.85%, information_ratio -0.901 vs ligevægtskurv-benchmarket, og max_drawdown 71% (CI til 96%) antyder, at den substituerede taker-flow-rangeringsnøgle tilføjer negativ risikojusteret værdi over et naivt ligevægtshold. Dette er kun rådgivende; det……Vis mereVis mindre

verification_loop: Verifikation mislykkedes (Lag 4 — QA-gennemgang) [klasse=hypothesis_mismatch]: - [edge_concern] Sandboxen er en sammenhængende long-only majors-kurv, der kører og handler (337 handler, avg_trade_return_pct 0.69% klarer gebyrgulvet), men total_return -20.85%, information_ratio -0.901 vs ligevægtskurv-benchmarket, og max_drawdown 71% (CI til 96%) antyder, at den substituerede taker-flow-rangeringsnøgle tilføjer negativ risikojusteret værdi over et naivt ligevægtshold. Dette er kun rådgivende; det er downstream af rangeringsnøgle-uoverensstemmelsen og bør revurderes af analytikeren på en korrigeret implementering, ikke blokeres her. - [kritisk] Hypotesens enkelte definerende træk -- gentaget gennem hele titlen/beskrivelsen ('efter GLOBAL Long/Short Kontoforhold', 'count_long_short_ratio', 'en Ren Under-Ejerskabs-FACTOR, Ikke Momentum') -- er, at CROSS-SECTIONAL RANKING KEY er det per-navn globale long/short ACCOUNT-forhold, en detailpositionerings/ejerskabsproxy, der bevidst er ortogonal til momentum og funding. Koden rangérer NOT på det. _crowd_z() / _rebalance() rangérer de 8 majors efter `taker_long_short_vol_ratio` (aggressiv BUY-volumen / aggressiv SELL-volumen) læst fra `taker_flow_by_instrument`. Taker long/short volumenforhold er et FLOW/AGGRESSOR-mål, ikke et ejerskabs/positioneringsmål -- det er materielt forskelligt fra kontoforholdet og er argumenterbart tættere på den kort-horisont flow/momentum, som hypotesen eksplicit påstår at være ortogonal til. Det navngivne kontoforhold bruges kun til den sekundære BTC-eufori-kontantgate (_parse_global / calculate_signal), aldrig til den primære udvælgelse. Ifølge QA-tjeklisten, når hypotesens specifikt navngivne kernefordel er fraværende fra koden, er det kritisk: den angivne under-ejerskabsfaktor er ikke den faktor, der handles. (linje 259) — fix: Enten (a) tråd det per-instrument globale kontoforhold ind i pipelinen som `global_ratio_by_instrument` (spejlende funding_rates_by_instrument / open_interest_by_instrument / taker_flow_by_instrument i subprocess_entry.py) og rangér på det -- dette er den trofaste implementering, hypotesen navngiver; eller (b) hvis den per-led-serie virkelig ikke kan leveres, er kørslen en DATA-dækningsblok (not_measurable) frem for en strategi at udrulle på en substitueret nøgle -- rapportér det som sådan, så hypotesen parkeres, indtil serien er forbundet, i stedet for stille at handle en anden (flow-)faktor. Gør - [advarsel] Konsistenstjekket flagger hypotese 'WEEKLY' vs config bar_type 1-DAY. Dette er NOT en virkelig uoverensstemmelse: 'weekly' i hypotesen refererer til REBALANCE/HOLD-kadencen, som er korrekt implementeret som daglige bars styret af en kalenderforankret 7-dages rebalance (dag % rebalance_days == 0). Brug af bogstavelige ugentlige bars ville gøre eufori-percentilen og kadencen grovere; den daglige-bar + 7-dages-rebalance-konstruktion er den korrekte måde at udtrykke en ugentlig rotation. Noteret for transparens; driver ikke dommen. (linje 380) — fix: Omskriv valgfrit hypoteseteksten til at sige 'ugentlig rebalance på daglige bars' for at dæmpe Lag-1.5-konsistensadvarslen.

Stratmill er et research- og papirhandelsværktøj, ikke finansiel rådgivning eller en mægler. Backtest- og papirresultater er hypotetiske. Handel indebærer risiko for tab.