Naar inhoud gaan
Alle strategieën

Strategieën

Cross-Sectionele RETAIL-CROWDING Contrair Rotatie, Long-Only (BINANCE USD-M, 8 Majors, WEEKLY Houd de 3 LEAST Retail-Crowded Namen door GLOBAL Long/Short Account-Ratio — een Zuiver Onder-Bezit FACTOR, Niet Momentum; Systemisch-Euforie Cash Gate, 2-Parameter)

Uitkomst: Gestaakt

RetailCrowdingContrarianRotationLong

Cross-Sectionele RETAIL-CROWDING Contrair Rotatie, Long-Only (BINANCE USD-M, 8 Majors, WEEKLY Houd de 3 LEAST Retail-Crowded Namen door GLOBAL Long/Short Account-Ratio — een Zuiver Onder-Bezit FACTOR, Niet Momentum;…

Hypothese

Een LONG-ONLY, wekelijks-geherbalanceerde cross-sectionele ROTATION over het 8-major USD-M universum (BTC, ETH, SOL, BNB, AVAX, LINK, ADA, XRP), waarbij namen worden geselecteerd door een authentiek NON-PRICE CROWDING signaal: de GLOBAL long/short ACCOUNT ratio (count_long_short_ratio, een retail-positionerings proxy) uit de Binance VISION 'metrics' bestanden (MULTI-YEAR tot ~2020, NOT de 30-dag API). Mechanisme is een zuivere UNDER-OWNERSHIP factor — houd de majors waar retail LEAST crowded-long op is, omdat……Meer tonenMinder tonen

Een LONG-ONLY, wekelijks-geherbalanceerde cross-sectionele ROTATION over het 8-major USD-M universum (BTC, ETH, SOL, BNB, AVAX, LINK, ADA, XRP), waarbij namen worden geselecteerd door een authentiek NON-PRICE CROWDING signaal: de GLOBAL long/short ACCOUNT ratio (count_long_short_ratio, een retail-positionerings proxy) uit de Binance VISION 'metrics' bestanden (MULTI-YEAR tot ~2020, NOT de 30-dag API). Mechanisme is een zuivere UNDER-OWNERSHIP factor — houd de majors waar retail LEAST crowded-long op is, omdat crowded-long namen latente long-liquidatie/squeeze-down risico's dragen terwijl ondergewaardeerde namen ruimte hebben om opgeboden te worden. Dit is bewust in de ONLY structurele familie die hier reproduceerbaar overleeft — long-only, majors, wekelijks houd top-K, laag parameteraantal (de geïmplementeerde momentum rotatie Sharpe 2.6 en negatieve-funding carry mandje Sharpe 1.97) — en het draagt bij aan een selectiesleutel ORTHOGONAL aan beide: niet prijs relatieve-sterkte (momentum) en niet funding (carry), maar massa-positionering. Volgens het bewijs van de sessie vermijdt het elke doodsmode: NOT een enkel-naam directionele timer (die stierven -100% / -43% / risico-verwerp), NOT een dollar-neutrale spread (geen short been → geen 90% DD blowup), NOT funding/opties/liquidaties/zuiver-OHLCV. Het verschilt van de in behandeling zijnde SmartMoneyGatedMomentumRotation (die de TOP-TRADER cohort gebruikt om een GATE momentum boek te creëren) en van EthRetail (enkel-naam long-short fade): dit gebruikt de RETAIL/globale cohort als de PRIMARY cross-sectionele rangschikkingsleutel in een contrair LONG-ONLY mandje, zonder enige momentum-component. 2 parameters, K en ritme bevroren op het bewezen sjabloon.

Herstelt exact het gebrek QA dat is aangekaart. QA verwierp de ranking sleutel omdat open interest (a) geen retail proxy is — het is de totale open notionele waarde over alle deelnemers — en (b) richting-blind is, aangezien aggregeerde perp longs gelijk zijn aan shorts, waardoor het niet 'least crowded-LONG' kan uitdrukken. De nieuwe ranking sleutel is `taker_long_short_vol_ratio` per been gelezen uit `taker_flow_by_instrument`: het is agressief BUY volume gedeeld door agressief SELL volume, dus het is……Meer tonenMinder tonen

Herstelt exact het gebrek QA dat is aangekaart. QA verwierp de ranking sleutel omdat open interest (a) geen retail proxy is — het is de totale open notionele waarde over alle deelnemers — en (b) richting-blind is, aangezien aggregeerde perp longs gelijk zijn aan shorts, waardoor het niet 'least crowded-LONG' kan uitdrukken. De nieuwe ranking sleutel is `taker_long_short_vol_ratio` per been gelezen uit `taker_flow_by_instrument`: het is agressief BUY volume gedeeld door agressief SELL volume, dus het is DIRECTIONAL per constructie (een hoge waarde betekent letterlijk dat de massa long leunt in die naam) en het is een aggressor/taker-zijde (retail-gerichte) maat in plaats van totale open notionele waarde. Het komt ook uit dezelfde Binance VISION `metrics` bestanden die de hypothese als databron noemt, met dezelfde multi-year-to-2020 geschiedenis — alleen de kolom verschilt. Ranking gebruikt elke naam zijn eigen z-score (7d gemiddelde vs 90d gemiddelde/sd) zodat structureel verschillende taker-niveaus vergelijkbaar zijn over BTC en ADA, volgens de les dat vaste absolute drempels op aanvullende gegevens niet schaal-invariant zijn. DISCLOSED, NOT HIDDEN: de letterlijke sleutel van de hypothese is de per-naam GLOBAL long/short ACCOUNT ratio (`long_short_ratio`, in hetzelfde parquet), maar de pipeline laadt `metrics` alleen voor het PRIMARY symbool, en de enige per-been cross-sectionele bedradingen die bestaan zijn `funding_rates_by_instrument`, `open_interest_by_instrument` en `taker_flow_by_instrument` (subprocess_entry.py) — dus een 8-naam rangschikking op de account ratio is vandaag niet uit te drukken in strategiecode; het heeft een `global_ratio_by_instrument` bedrading nodig die die drie spiegelt, wat een pipeline-wijziging is. Van de drie die bestaan is taker flow de enige die zowel directioneel als retail-zijde is, dus het is de trouwe vervanger, en de account ratio wordt nog steeds gebruikt waar IS beschikbaar is (de BTC euforie cash gate). Geverifieerd tegen de echte gegevens vóór indiening: alle 8 benen dragen 8k-punt gestructureerde series over 1737-2193 dagen, 208/208 gesimuleerde wekelijkse herbalanceringen over de laatste 4 jaren produceren een gerangschikte cross-sectie, en posities roteren over elke naam (67-86 kiest elk) in plaats van bij één te blijven — dus dit handelt en is geen ontaarde rangschikking. Twee verdere kleine fixes meegenomen: het wekelijkse ritme is nu kalender-verankerd aan de tijdstempel van de balk in plaats van de proces-relatieve `_bar_i` teller (herstart-veilig, replay-identiek), en `exit_level` wordt strikt onder `euphoria_level` geforceerd zodat de optimizer de hysterese niet kan inverteren tot een per-balk oscillatie. Laag-3 timeout veiligheid is ongewijzigd en behouden: prefix sommen + searchsorted houden elke per-balk lookup O(log n), en parse-tijd structurering beperkt __init__ tot ~10s gemeten voor alle 8 benen.

verification_loop: Verificatie mislukt (Laag 4 — QA beoordeling) [klasse=hypothesis_mismatch]: - [edge_concern] Sandbox is een coherente long-only majors-basket die draait en handelt (337 trades, avg_trade_return_pct 0.69% haalt de fee-vloer), maar total_return -20.85%, information_ratio -0.901 vs de equal-weight-basket benchmark, en max_drawdown 71% (CI tot 96%) suggereren dat de vervangen taker-flow rankingsleutel negatieve risk-adjusted value toevoegt boven een naïeve equal-weight hold. Dit is alleen……Meer tonenMinder tonen

verification_loop: Verificatie mislukt (Laag 4 — QA beoordeling) [klasse=hypothesis_mismatch]: - [edge_concern] Sandbox is een coherente long-only majors-basket die draait en handelt (337 trades, avg_trade_return_pct 0.69% haalt de fee-vloer), maar total_return -20.85%, information_ratio -0.901 vs de equal-weight-basket benchmark, en max_drawdown 71% (CI tot 96%) suggereren dat de vervangen taker-flow rankingsleutel negatieve risk-adjusted value toevoegt boven een naïeve equal-weight hold. Dit is alleen adviserend; het is stroomafwaarts van de ranking-key mismatch en moet door de analist opnieuw worden beoordeeld op een gecorrigeerde implementatie, hier niet geblokkeerd. - [kritiek] Het enige definiërende kenmerk van de hypothese -- herhaald in de titel/beschrijving ('op GLOBAL Long/Short Account-Ratio', 'count_long_short_ratio', 'een Pure Under-Ownership FACTOR, Niet Momentum') -- is dat de CROSS-SECTIONAL RANKING KEY de per-naam global long/short ACCOUNT-ratio is, een retail positionerings/ownership-proxy die bewust orthogonaal is aan momentum en funding. De code doet NOT rangschikken op dat. _crowd_z() / _rebalance() rangschikken de 8 majors op `taker_long_short_vol_ratio` (agressieve BUY volume / agressieve SELL volume) gelezen uit `taker_flow_by_instrument`. Taker long/short volume ratio is een FLOW/AGGRESSOR-maatstaf, geen ownership/positioneringsmaatstaf -- het is materieel verschillend van de account-ratio en is wellicht dichter bij de short-horizon flow/momentum waartegenover de hypothese expliciet beweert orthogonaal te zijn. De genoemde account-ratio wordt alleen gebruikt voor de secundaire BTC euforie cash gate (_parse_global / calculate_signal), nooit voor de primaire selectie. Volgens de QA checklist, wanneer de specifiek genoemde kernrand van de hypothese ontbreekt in de code, is dat kritiek: de gestelde under-ownershipfactor is niet de factor die wordt verhandeld. (regel 259) — fix: Ofwel (a) de per-instrument global account-ratio in de pipeline bedraden als `global_ratio_by_instrument` (spiegelend funding_rates_by_instrument / open_interest_by_instrument / taker_flow_by_instrument in subprocess_entry.py) en daarop rangschikken -- dit is de getrouwe implementatie die de hypothese noemt; of (b) als die per-leg serie echt niet kan worden geleverd, is de run een DATA-coverage blok (not_measurable) in plaats van een strategie om op een vervangen sleutel te shippen -- rapporteer het als zodanig zodat de hypothese wordt geparkeerd totdat de serie is bedraad, in plaats van stilzwijgend een andere (flow) factor te verhandelen. Doe - [waarschuwing] De consistentiecheck markeert hypothese 'WEEKLY' vs config bar_type 1-DAY. Dit is NOT een echte mismatch: 'weekly' in de hypothese verwijst naar de REBALANCE/HOLD cadans, die correct wordt geïmplementeerd als daily bars afgezet door een kalender-verankerde 7-dag rebalance (dag % rebalance_days == 0). Het gebruik van letterlijke weekly bars zou de euforie percentiel en cadans verruwen; de daily-bar + 7-dag-rebalance constructie is de juiste manier om een weekly rotatie uit te drukken. Genoteerd voor transparantie; drijft het oordeel niet. (regel 380) — fix: Optioneel de hypothese-tekst herformuleren naar 'weekly rebalance op daily bars' om de Laag-1.5 consistentie waarschuwing het zwijgen op te leggen.

Implementatie

Long-only, wekelijks geherbalanceerde cross-sectionele rotatie over de 8 USD-M-majors (BTC, ETH, SOL, BNB, AVAX, LINK, ADA, XRP). De crowding van elke naam wordt gemeten aan de hand van de long/short-VOLUME-ratio per naam TAKER in de Binance Vision-`metrics`-mirror (agressief koopvolume / agressief verkoopvolume, 5 min, meerjarig), als z-score van het gemiddelde over 7 dagen tegenover het eigen gemiddelde en de standaardafwijking over 90 dagen; de 3 meest LEAST longnamen worden gelijk gewogen aangehouden met 30% van het eigen vermogen per naam. Een cashgate voor systeemwijde euforie op basis van de globale long/short-ACCOUNT-ratio PRIMARY (BTC) roteert het hele boek naar cash wanneer die ratio in het hoogste 15% van zijn eigen verdeling over 90 dagen staat, en belegt opnieuw bij het 65e percentiel (hysterese). Herbalanceringen zijn verankerd aan de kalendertijd (days_since_epoch % 7), niet aan een candle-teller. Long-only, hefboom 1.0, geen shortpositie.

Verificatieresultaten

Verificatie mislukt (Laag 4 — QA beoordeling) [klasse=hypothesis_mismatch]: - [edge_concern] Sandbox is een coherente long-only majors-basket die draait en handelt (337 trades, avg_trade_return_pct 0.69% haalt de fee-vloer), maar total_return -20.85%, information_ratio -0.901 vs de equal-weight-basket benchmark, en max_drawdown 71% (CI tot 96%) suggereren dat de vervangen taker-flow rankingsleutel negatieve risk-adjusted value toevoegt boven een naïeve equal-weight hold. Dit is alleen adviserend; het is……Meer tonenMinder tonen

Verificatie mislukt (Laag 4 — QA beoordeling) [klasse=hypothesis_mismatch]: - [edge_concern] Sandbox is een coherente long-only majors-basket die draait en handelt (337 trades, avg_trade_return_pct 0.69% haalt de fee-vloer), maar total_return -20.85%, information_ratio -0.901 vs de equal-weight-basket benchmark, en max_drawdown 71% (CI tot 96%) suggereren dat de vervangen taker-flow rankingsleutel negatieve risk-adjusted value toevoegt boven een naïeve equal-weight hold. Dit is alleen adviserend; het is stroomafwaarts van de ranking-key mismatch en moet door de analist opnieuw worden beoordeeld op een gecorrigeerde implementatie, hier niet geblokkeerd. - [kritiek] Het enige definiërende kenmerk van de hypothese -- herhaald in de titel/beschrijving ('op GLOBAL Long/Short Account-Ratio', 'count_long_short_ratio', 'een Pure Under-Ownership FACTOR, Niet Momentum') -- is dat de CROSS-SECTIONAL RANKING KEY de per-naam global long/short ACCOUNT-ratio is, een retail positionerings/ownership-proxy die bewust orthogonaal is aan momentum en funding. De code doet NOT rangschikken op dat. _crowd_z() / _rebalance() rangschikken de 8 majors op `taker_long_short_vol_ratio` (agressieve BUY volume / agressieve SELL volume) gelezen uit `taker_flow_by_instrument`. Taker long/short volume ratio is een FLOW/AGGRESSOR-maatstaf, geen ownership/positioneringsmaatstaf -- het is materieel verschillend van de account-ratio en is wellicht dichter bij de short-horizon flow/momentum waartegenover de hypothese expliciet beweert orthogonaal te zijn. De genoemde account-ratio wordt alleen gebruikt voor de secundaire BTC euforie cash gate (_parse_global / calculate_signal), nooit voor de primaire selectie. Volgens de QA checklist, wanneer de specifiek genoemde kernrand van de hypothese ontbreekt in de code, is dat kritiek: de gestelde under-ownershipfactor is niet de factor die wordt verhandeld. (regel 259) — fix: Ofwel (a) de per-instrument global account-ratio in de pipeline bedraden als `global_ratio_by_instrument` (spiegelend funding_rates_by_instrument / open_interest_by_instrument / taker_flow_by_instrument in subprocess_entry.py) en daarop rangschikken -- dit is de getrouwe implementatie die de hypothese noemt; of (b) als die per-leg serie echt niet kan worden geleverd, is de run een DATA-coverage blok (not_measurable) in plaats van een strategie om op een vervangen sleutel te shippen -- rapporteer het als zodanig zodat de hypothese wordt geparkeerd totdat de serie is bedraad, in plaats van stilzwijgend een andere (flow) factor te verhandelen. Doe - [waarschuwing] De consistentiecheck markeert hypothese 'WEEKLY' vs config bar_type 1-DAY. Dit is NOT een echte mismatch: 'weekly' in de hypothese verwijst naar de REBALANCE/HOLD cadans, die correct wordt geïmplementeerd als daily bars afgezet door een kalender-verankerde 7-dag rebalance (dag % rebalance_days == 0). Het gebruik van letterlijke weekly bars zou de euforie percentiel en cadans verruwen; de daily-bar + 7-dag-rebalance constructie is de juiste manier om een weekly rotatie uit te drukken. Genoteerd voor transparantie; drijft het oordeel niet. (regel 380) — fix: Optioneel de hypothese-tekst herformuleren naar 'weekly rebalance op daily bars' om de Laag-1.5 consistentie waarschuwing het zwijgen op te leggen.

Iteratiegeschiedenis

Verificatie mislukt (laag 2 — synthetische scenario's): Gebruikte parameters: ['top_k', 'exit_level', 'min_notional', 'per_name_frac', 'euphoria_level', 'rebalance_days', 'euphoria_window'] Controleer of __init__ alle attributen instelt vanuit self.parameters.get(). - steady_uptrend: TypeError: RetailCrowdingContrarianRotationLong._asof() verwacht 3 positionele argumenten, maar kreeg er 4 (tijdstempel candle: 1735691940000) - steady_downtrend: TypeError: RetailCrowdingContrarianRotationLong._asof() verwacht 3……Meer tonenMinder tonen

Verificatie mislukt (laag 2 — synthetische scenario's): Gebruikte parameters: ['top_k', 'exit_level', 'min_notional', 'per_name_frac', 'euphoria_level', 'rebalance_days', 'euphoria_window'] Controleer of __init__ alle attributen instelt vanuit self.parameters.get(). - steady_uptrend: TypeError: RetailCrowdingContrarianRotationLong._asof() verwacht 3 positionele argumenten, maar kreeg er 4 (tijdstempel candle: 1735691940000) - steady_downtrend: TypeError: RetailCrowdingContrarianRotationLong._asof() verwacht 3 positionele argumenten, maar kreeg er 4 (tijdstempel candle: 1735691940000) - flat_ranging: TypeError: RetailCrowdingContrarianRotationLong._asof() verwacht 3 positionele argumenten, maar kreeg er 4 (tijdstempel candle: 1735691940000) - volatility_spike: TypeError: RetailCrowdingContrarianRotationLong._asof() verwacht 3 positionele argumenten, maar kreeg er 4 (tijdstempel candle: 1735691940000) - zero_volume: TypeError: RetailCrowdingContrarianRotationLong._asof() verwacht 3 positionele argumenten, maar kreeg er 4 (tijdstempel candle: 1735691940000) - price_gap: TypeError: RetailCrowdingContrarianRotationLong._asof() verwacht 3 positionele argumenten, maar kreeg er 4 (tijdstempel candle: 1735691940000)

Verificatie mislukt (laag 3 — backtest in sandbox): de rooktest overschreed de tijdslimiet van 300s. Dit betekent vrijwel altijd dat werk per candle meeschaalt met de geschiedenis — bijvoorbeeld het opnieuw scannen van de volledige funding-/aanvullende reeks, of binnen calculate_signal()/on_bar() bij elke candle een lijst opnieuw opbouwen en min()/sorted() aanroepen. Bereken vooraf in __init__ gesorteerde tijdstempelarrays ONCE en gebruik bisect, of cache lookups op basis van tijdstempel, zodat de kosten per candle O(log n) zijn in plaats van O(n).

Verificatie mislukt (Laag 4 — QA beoordeling) [klasse=hypothesis_mismatch]: - [edge_concern] Sandbox is een rooktest en geen faalreden, maar let op: metrics_reliable=false, Sharpe (0.10) tekenincoherent met total_return (-34.3%), MDD 70%, en het OI-crowdingboek verliest het meest in het gestreste vol-tertile (-37.8%). Als het mechanisme de backtest-beoordeling overleeft, controleer dan eerst of de OI z-rank enige directionele rand heeft, gegeven dat OI richting-blind is. - De kernrand van de hypothese is een……Meer tonenMinder tonen

Verificatie mislukt (Laag 4 — QA beoordeling) [klasse=hypothesis_mismatch]: - [edge_concern] Sandbox is een rooktest en geen faalreden, maar let op: metrics_reliable=false, Sharpe (0.10) tekenincoherent met total_return (-34.3%), MDD 70%, en het OI-crowdingboek verliest het meest in het gestreste vol-tertile (-37.8%). Als het mechanisme de backtest-beoordeling overleeft, controleer dan eerst of de OI z-rank enige directionele rand heeft, gegeven dat OI richting-blind is. - De kernrand van de hypothese is een cross-sectional rangschikking op de GLOBAL LONG/SHORT ACCOUNT RATIO per naam — een directionele retail under-ownershipfactor ('houd de namen vast waar retail LEAST crowded-LONG op heeft'). De code rangschikt in plaats daarvan op per-naam PERP OPEN INTEREST z-score en houdt de 3 laagste vast. Dit is een vervangen mechanisme dat de economie niet behoudt: OI is geen retailproxy (het is de totale open notional over alle deelnemers), en OI is DIRECTION-BLIND (aggregaat longs == shorts in perps), dus het kan 'minst crowded-long' niet uitdrukken. De specifiek genoemde rand van de hypothese ontbreekt in de code → kritiek.

Verificatie mislukt (laag 4 — beoordeling QA) [class=hypothesis_mismatch]: - [edge_concern] De sandbox ziet er gezond uit (+93%, Sharpe 0.77, PF 1.55, avg_trade_return_pct 6.63%) juist omdat de code een funding-carryrotatie is waarvan de ontwikkelaar bevestigt dat die overlapt met de al ingezette basket voor negatieve-funding-carry — de goede cijfers pleiten dus tegen het promoten van een bijna-duplicaat van een live strategie, niet voor de orthogonale crowdingfactor die de hypothese had moeten toevoegen.……Meer tonenMinder tonen

Verificatie mislukt (laag 4 — beoordeling QA) [class=hypothesis_mismatch]: - [edge_concern] De sandbox ziet er gezond uit (+93%, Sharpe 0.77, PF 1.55, avg_trade_return_pct 6.63%) juist omdat de code een funding-carryrotatie is waarvan de ontwikkelaar bevestigt dat die overlapt met de al ingezette basket voor negatieve-funding-carry — de goede cijfers pleiten dus tegen het promoten van een bijna-duplicaat van een live strategie, niet voor de orthogonale crowdingfactor die de hypothese had moeten toevoegen. Adviserend; de blokkade betreft getrouwheid. - Kernfactor niet geïmplementeerd; de vervanging is precies het mechanisme dat de hypothese EXCLUDES. De hypothese rangschikt op basis van de long/short-ACCOUNT-ratio per naam GLOBAL (crowding onder particuliere beleggers), expliciet 'geen funding (carry)... losstaand van momentum en funding'. De code rangschikt de cross-section op basis van FUNDING per naam (laagste = aangehouden) — een funding-carryrangschikking die volgens de ontwikkelaar overlapt met de ingezette carrybasket. De crowding-sleutel op basis van de accountratio ontbreekt en is niet haalbaar (metrics alleen aangesloten voor het primaire symbool; geen metrics_by_instrument). - De herbalanceringsfrequentie is verankerd aan een procesrelatieve candle-teller (self._bar_i % rebalance_days), niet aan de tijdstempel van de candle. Herstarts zetten _bar_i terug en verschuiven het raster voor de wekelijkse rotatie weg van elke vaste kalenderdag; een parity-replay kan de rotatiedatums niet reproduceren. Minder ernstig punt in de vorm -20 (geen sentinel/eerste-candle-trigger). Leid dit af van dagen sinds epoch of van een vaste weekdag.

Reden voor afbreken

verification_loop: Verificatie mislukt (Laag 4 — QA beoordeling) [klasse=hypothesis_mismatch]: - [edge_concern] Sandbox is een coherente long-only majors mandje dat draait en handelt (337 transacties, avg_trade_return_pct 0.69% ruimt de vergoedingsdrempel), maar total_return -20.85%, information_ratio -0.901 vs het gelijk-gewogen-mandje benchmark, en max_drawdown 71% (CI tot 96%) suggereren dat de vervangen taker-flow rangschikkingsleutel negatieve risico-aangepaste waarde toevoegt ten opzichte van een naïeve……Meer tonenMinder tonen

verification_loop: Verificatie mislukt (Laag 4 — QA beoordeling) [klasse=hypothesis_mismatch]: - [edge_concern] Sandbox is een coherente long-only majors mandje dat draait en handelt (337 transacties, avg_trade_return_pct 0.69% ruimt de vergoedingsdrempel), maar total_return -20.85%, information_ratio -0.901 vs het gelijk-gewogen-mandje benchmark, en max_drawdown 71% (CI tot 96%) suggereren dat de vervangen taker-flow rangschikkingsleutel negatieve risico-aangepaste waarde toevoegt ten opzichte van een naïeve gelijk-gewogen hold. Dit is alleen adviserend; het is het gevolg van de rangschikkingsleutel mismatch en moet opnieuw beoordeeld worden door de analist op een gecorrigeerde implementatie, niet hier geblokkeerd. - [kritiek] Het enige definiërende kenmerk van de hypothese -- herhaald in de titel/beschrijving ('door GLOBAL Long/Short Account-Ratio', 'count_long_short_ratio', 'een Zuiver Onder-Bezit FACTOR, Niet Momentum') -- is dat de CROSS-SECTIONAL RANKING KEY de per-naam globale long/short ACCOUNT ratio is, een retail positionering/bezit proxy die bewust orthogonaal is aan momentum en funding. De code rangschikt NOT op die. _crowd_z() / _rebalance() rangschikken de 8 majors op `taker_long_short_vol_ratio` (agressief BUY volume / agressief SELL volume) gelezen uit `taker_flow_by_instrument`. Taker long/short volume ratio is een FLOW/AGGRESSOR maat, geen bezit/positionerings maat -- het verschilt wezenlijk van de account ratio en is naar alle waarschijnlijkheid dichter bij de korte-horizon flow/momentum waar de hypothese expliciet beweert orthogonaal aan te zijn. De benoemde account ratio wordt alleen gebruikt voor de secundaire BTC euforie cash gate (_parse_global / calculate_signal), nooit voor de primaire selectie. Volgens de QA checklist, wanneer de specifieke benoemde kern-edge van de hypothese afwezig is in de code, is dat kritiek: de gestelde onder-bezit factor is niet de factor die wordt verhandeld. (regel 259) — fix: Ofwel (a) bedraad de per-instrument globale account ratio in de pipeline als `global_ratio_by_instrument` (spiegelend funding_rates_by_instrument / open_interest_by_instrument / taker_flow_by_instrument in subprocess_entry.py) en rangschik daarop -- dit is de trouwe implementatie die de hypothese noemt; of (b) als die per-been serie echt niet geleverd kan worden, is de run een DATA-dekking blok (not_measurable) in plaats van een strategie om te verzenden op een vervangen sleutel -- rapporteer het als zodanig zodat de hypothese wordt gepauzeerd totdat de serie is bedraad, in plaats van stilzwijgend een andere (flow) factor te verhandelen. Doe - [waarschuwing] De consistentiecontrole vlagt hypothese 'WEEKLY' vs configuratie bar_type 1-DAY. Dit is NOT een echte mismatch: 'weekly' in de hypothese verwijst naar het REBALANCE/HOLD ritme, dat correct is geïmplementeerd als dagelijkse balken met een kalender-verankerde 7-dag herbalancering (dag % rebalance_days == 0). Het gebruik van letterlijke wekelijkse balken zou de euforie percentiel en het ritme vergruizen; de dagelijkse-balk + 7-dag-herbalancering constructie is de juiste manier om een wekelijkse rotatie uit te drukken. Opgemerkt voor transparantie; beïnvloedt het oordeel niet. (regel 380) — fix: Optioneel herschrijf de hypothese tekst om 'wekelijkse herbalancering op dagelijkse balken' te zeggen om de Laag-1.5 consistentiewaarschuwing te dempen.

Stratmill is een onderzoeks- en papertrading-tool, geen financieel advies of broker. Backtest- en paperresultaten zijn hypothetisch. Handelen brengt risico op verlies met zich mee.