Sări la conținut
Toate strategiile

Strategii

Rotație contrariană transversală RETAIL-CROWDING, doar long (BINANCE USD-M, 8 principale, WEEKLY păstrează 3 nume LEAST aglomerate în retail după raportul conturilor long/short GLOBAL — o FACTOR pură de subdeținere, nu momentum; poartă de numerar pentru euforie sistemică, 2 parametri)

Rezultat: Abandonată

RetailCrowdingContrarianRotationLong

Rotație contrariană transversală RETAIL-CROWDING, doar long (BINANCE USD-M, 8 principale, WEEKLY păstrează 3 nume LEAST aglomerate în retail după raportul conturilor long/short GLOBAL — o FACTOR pură de subdeținere, nu…

Ipoteza

O LONG-ONLY transversală, reechilibrată săptămânal, de tip ROTATION în universul 8 major USD-M (BTC, ETH, SOL, BNB, AVAX, LINK, ADA, XRP), care selectează nume pe baza unui semnal autentic de NON-PRICE CROWDING: raportul long/short GLOBAL al ACCOUNT (count_long_short_ratio, un indicator proxy al poziționării retail), din fișierele Binance VISION „metrics” (MULTI-YEAR până la ~2020, NOT agregatul pe 30 zile API). Mecanismul este un factor pur de UNDER-OWNERSHIP — deține activele majore pe care retailul este……Afișează mai multeAfișează mai puțin

O LONG-ONLY transversală, reechilibrată săptămânal, de tip ROTATION în universul 8 major USD-M (BTC, ETH, SOL, BNB, AVAX, LINK, ADA, XRP), care selectează nume pe baza unui semnal autentic de NON-PRICE CROWDING: raportul long/short GLOBAL al ACCOUNT (count_long_short_ratio, un indicator proxy al poziționării retail), din fișierele Binance VISION „metrics” (MULTI-YEAR până la ~2020, NOT agregatul pe 30 zile API). Mecanismul este un factor pur de UNDER-OWNERSHIP — deține activele majore pe care retailul este aglomerat long în mod LEAST, deoarece numele aglomerate long au un risc latent de lichidări long/mișcare bruscă în jos, în timp ce numele subdeținute au loc să crească. Aceasta aparține în mod deliberat familiei structurale ONLY care rezistă în mod repetabil aici — long-only, active majore, deținere săptămânală a primelor K, puțini parametri (Sharpe-ul 2.6 al rotației de momentum implementate și Sharpe-ul 1.97 al coșului carry cu funding negativ) — și adaugă o cheie de selecție ORTHOGONAL ambelor: nu este forța relativă a prețului (momentum) și nici funding (carry), ci poziționarea mulțimii. Conform dovezilor din sesiune, evită toate modurile de eșec: NOT un temporizator direcțional pentru un singur nume (acestea au eșuat -100% / -43% / respingerea de risc), NOT un spread neutru față de dolar (fără poziție short → fără explozie 90% DD), NOT funding/opțiuni/lichidări/pur-OHLCV. Este distinctă de SmartMoneyGatedMomentumRotation, aflată în așteptare (care folosește cohorta TOP-TRADER pentru a GATE un portofoliu de momentum), și de EthRetail (strategie fade long-short pe un singur nume): aceasta folosește cohorta RETAIL/globală drept cheia de clasare transversală PRIMARY într-un coș LONG-ONLY contrarian, fără nicio componentă de momentum. Parametrii 2, K și cadența sunt fixați conform șablonului validat.

Repară exact defectul semnalat de QA. QA a respins cheia de clasament pentru că open interest este (a) din punct de vedere metodologic nu este un proxy retail — este noționalul total deschis la nivelul tuturor participanților — și (b) direcțional-opac, deoarece long-urile agregate perp sunt egale cu short-urile, deci nu poate exprima 'cel mai puțin aglomerat-LONG'. Noua cheie de clasament este `taker_long_short_vol_ratio` citită per-segment din `taker_flow_by_instrument`: este volumul agresiv BUY împărțit la……Afișează mai multeAfișează mai puțin

Repară exact defectul semnalat de QA. QA a respins cheia de clasament pentru că open interest este (a) din punct de vedere metodologic nu este un proxy retail — este noționalul total deschis la nivelul tuturor participanților — și (b) direcțional-opac, deoarece long-urile agregate perp sunt egale cu short-urile, deci nu poate exprima 'cel mai puțin aglomerat-LONG'. Noua cheie de clasament este `taker_long_short_vol_ratio` citită per-segment din `taker_flow_by_instrument`: este volumul agresiv BUY împărțit la volumul agresiv SELL, deci este DIRECTIONAL prin construcție (o valoare mare înseamnă literal că mulțimea este înclinată long pe acel instrument) și este o măsură pe partea de agresor/taker (orientată spre retail) mai degrabă decât noțional total deschis. De asemenea, provine din aceleași fișiere Binance VISION `metrics` pe care ipoteza le numește ca sursă de date, cu aceeași istorie pe mai mulți ani până la -2020 — doar coloana diferă. Clasamentul folosește scorul z propriu al fiecărui nume (medie 7d vs medie/deviație standard 90d) astfel încât niveluri de taker structural diferite sunt comparate între BTC și ADA, conform lecției că pragurile absolute fixe pe date suplimentare nu sunt invariante la scară. DISCLOSED, NOT HIDDEN: cheia literală a ipotezei este raportul GLOBAL long/short ACCOUNT per-nume (`long_short_ratio`, în același parquet), dar pipeline-ul încarcă `metrics` doar pentru simbolul PRIMARY, iar singurele cablaje cross-sectionale per-segment care există sunt `funding_rates_by_instrument`, `open_interest_by_instrument` și `taker_flow_by_instrument` (subprocess_entry.py) — deci un clasament pe 8-nume pe raportul de conturi nu este exprimabil în codul strategiei astăzi; necesită un cablaj `global_ratio_by_instrument` care să oglindească aceste trei, ceea ce reprezintă o modificare de pipeline. Dintre cele trei care există, fluxul taker este singurul care este atât direcțional, cât și pe partea retail, deci este surogatul fidel, iar raportul de conturi este în continuare folosit acolo unde IS este disponibil (poarta de numerar euforia BTC). Verificat pe datele reale înainte de trimitere: toate segmentele 8 poartă serii cu pas de 8k puncte întinse pe 1737-2193 zile, 208/208 rebalansări săptămânale simulate pe ultimii 4 ani produc o cross-secțiune clasată, iar deținerile se rotesc prin fiecare nume (67-86 selecții fiecare) mai degrabă decât să rămână pe unul singur — deci aceasta tranzacționează și nu este un clasament degenerat. Două mici corecții suplimentare preluate: cadența săptămânală este acum ancorată calendaristic la timestamp-ul barei în loc de contorul `_bar_i` relativ procesului (sigur la restart, identic la replay), iar `exit_level` este forțat strict sub `euphoria_level` astfel încât optimizatorul să nu poată inversa histerezisul într-o oscilație per-bară. Siguranța timeout-ului Layer-3 este neschimbată și păstrată: sumele prefixate + searchsorted mențin fiecare căutare per-bară la O(log n), iar pasul la parsare limitează __init__ la ~10s măsurate pentru toate segmentele 8.

verification_loop: Verificare eșuată (Stratul 4 — recenzie QA) [class=hypothesis_mismatch]: - [edge_concern] Sandbox-ul este un coș long-only coerent de active majore care rulează și tranzacționează (337 tranzacții, avg_trade_return_pct 0.69% depășește pragul de comisioane), dar total_return -20.85%, information_ratio -0.901 vs benchmark-ul coș egal ponderat, și max_drawdown 71% (CI la 96%) sugerează că cheia de clasare taker-flow substituită adaugă valoare ajustată la risc negativă peste o deținere naivă egal……Afișează mai multeAfișează mai puțin

verification_loop: Verificare eșuată (Stratul 4 — recenzie QA) [class=hypothesis_mismatch]: - [edge_concern] Sandbox-ul este un coș long-only coerent de active majore care rulează și tranzacționează (337 tranzacții, avg_trade_return_pct 0.69% depășește pragul de comisioane), dar total_return -20.85%, information_ratio -0.901 vs benchmark-ul coș egal ponderat, și max_drawdown 71% (CI la 96%) sugerează că cheia de clasare taker-flow substituită adaugă valoare ajustată la risc negativă peste o deținere naivă egal ponderată. Acesta este doar orientativ; este în aval de nepotrivirea cheii de clasare și ar trebui rejucat de analist pe o implementare corectată, nu blocat aici. - [critic] Singura caracteristică definitorie a ipotezei -- restată în titlu/descriere ('după GLOBAL Long/Short Account-Ratio', 'count_long_short_ratio', 'o Sub-Deținere Pură FACTOR, Nu Momentum') -- este că CROSS-SECTIONAL RANKING KEY este raportul per-nume global long/short ACCOUNT, un proxy retail de poziționare/deținere care este în mod deliberat ortogonal față de momentum și funding. Codul NOT nu clasează pe aceasta. _crowd_z() / _rebalance() clasează activele majore 8 după `taker_long_short_vol_ratio` (volum BUY agresiv / volum SELL agresiv) citit din `taker_flow_by_instrument`. Raportul de volum taker long/short este o măsură FLOW/AGGRESSOR, nu o măsură de deținere/poziționare -- este material diferită de raportul de cont și este argumentabil mai aproape de flow/momentum pe orizont scurt pe care ipoteza pretinde explicit că este ortogonală. Raportul de cont denumit este folosit doar pentru poarta secundară de numerar euforia BTC (_parse_global / calculate_signal), niciodată pentru selecția primară. Conform checklist-ului QA, când avantajul central specific denumit al ipotezei este absent din cod, aceasta este critic: factorul de sub-deținere declarat nu este factorul tranzacționat. (linia 259) — remediu: Fie (a) conectează raportul global account per-instrument în conductă ca `global_ratio_by_instrument` (oglindind funding_rates_by_instrument / open_interest_by_instrument / taker_flow_by_instrument în subprocess_entry.py) și clasează pe aceasta -- aceasta este implementarea fidelă pe care o numește ipoteza; fie (b) dacă seria per-leg genuin nu poate fi furnizată, rularea este un bloc de acoperire DATA (not_measurable) mai degrabă decât o strategie de livrat pe o cheie substituită -- raportează ca atare astfel încât ipoteza este parcată până când seria este conectată, în loc să tranzacționeze silențios un factor diferit (de flux). Fă - [avertisment] Verificarea de consistență semnalează ipoteza 'WEEKLY' vs config bar_type 1-DAY. Acesta este NOT o nepotrivire genuină: 'săptămânal' în ipoteză se referă la cadența REBALANCE/HOLD, care este corect implementată ca bare zilnice ghidate de o rebalansare 7-zile ancorată calendaristic (zi % rebalance_days == 0). Folosirea literală a barelor săptămânale ar face mai grosolane percentila de euforie și cadența; construcția bară-zilnică + rebalansare-7-zile este modalitatea corectă de a exprima o rotație săptămânală. Notat pentru transparență; nu conduce verdictul. (linia 380) — remediu: Opțional reformulează textul ipotezei pentru a spune 'rebalansare săptămânală pe bare zilnice' pentru a reduce la tăcere avertismentul de consistență Stratul-1.5.

Implementare

Rotație transversală long-only, reechilibrată săptămânal, pe cele 8 active majore USD-M (BTC, ETH, SOL, BNB, AVAX, LINK, ADA, XRP). Aglomerarea fiecărui nume este măsurată folosind raportul per-nume TAKER long/short al VOLUME din oglinda Binance Vision `metrics` (volumul agresiv de cumpărare / volumul agresiv de vânzare, 5-min, multianual), ca scor z al mediei pe 7 zile față de media și abaterea standard proprii pe 90 zile; cele 3 nume cele mai aglomerate long LEAST sunt deținute cu ponderi egale, fiecare la 30% din capital. O condiție de numerar pentru euforie sistemică, construită pe raportul global long/short ACCOUNT al PRIMARY (BTC), mută întregul portofoliu în numerar când raportul se află în percentila superioară 15% a distribuției proprii pe 90 zile și reinvestește la percentila 65 (histerezis). Reechilibrările sunt ancorate în timpul calendaristic (days_since_epoch % 7), nu la un contor de bare. Long-only, efect de levier 1.0, fără poziție short.

Rezultate verificare

Verificare eșuată (Stratul 4 — recenzie QA) [class=hypothesis_mismatch]: - [edge_concern] Sandbox-ul este un coș long-only coerent de active majore care rulează și tranzacționează (337 tranzacții, avg_trade_return_pct 0.69% depășește pragul de comisioane), dar total_return -20.85%, information_ratio -0.901 vs benchmark-ul coș egal ponderat, și max_drawdown 71% (CI la 96%) sugerează că cheia de clasare taker-flow substituită adaugă valoare ajustată la risc negativă peste o deținere naivă egal ponderată. Acesta……Afișează mai multeAfișează mai puțin

Verificare eșuată (Stratul 4 — recenzie QA) [class=hypothesis_mismatch]: - [edge_concern] Sandbox-ul este un coș long-only coerent de active majore care rulează și tranzacționează (337 tranzacții, avg_trade_return_pct 0.69% depășește pragul de comisioane), dar total_return -20.85%, information_ratio -0.901 vs benchmark-ul coș egal ponderat, și max_drawdown 71% (CI la 96%) sugerează că cheia de clasare taker-flow substituită adaugă valoare ajustată la risc negativă peste o deținere naivă egal ponderată. Acesta este doar orientativ; este în aval de nepotrivirea cheii de clasare și ar trebui rejucat de analist pe o implementare corectată, nu blocat aici. - [critic] Singura caracteristică definitorie a ipotezei -- restată în titlu/descriere ('după GLOBAL Long/Short Account-Ratio', 'count_long_short_ratio', 'o Sub-Deținere Pură FACTOR, Nu Momentum') -- este că CROSS-SECTIONAL RANKING KEY este raportul per-nume global long/short ACCOUNT, un proxy retail de poziționare/deținere care este în mod deliberat ortogonal față de momentum și funding. Codul NOT nu clasează pe aceasta. _crowd_z() / _rebalance() clasează activele majore 8 după `taker_long_short_vol_ratio` (volum BUY agresiv / volum SELL agresiv) citit din `taker_flow_by_instrument`. Raportul de volum taker long/short este o măsură FLOW/AGGRESSOR, nu o măsură de deținere/poziționare -- este material diferită de raportul de cont și este argumentabil mai aproape de flow/momentum pe orizont scurt pe care ipoteza pretinde explicit că este ortogonală. Raportul de cont denumit este folosit doar pentru poarta secundară de numerar euforia BTC (_parse_global / calculate_signal), niciodată pentru selecția primară. Conform checklist-ului QA, când avantajul central specific denumit al ipotezei este absent din cod, aceasta este critic: factorul de sub-deținere declarat nu este factorul tranzacționat. (linia 259) — remediu: Fie (a) conectează raportul global account per-instrument în conductă ca `global_ratio_by_instrument` (oglindind funding_rates_by_instrument / open_interest_by_instrument / taker_flow_by_instrument în subprocess_entry.py) și clasează pe aceasta -- aceasta este implementarea fidelă pe care o numește ipoteza; fie (b) dacă seria per-leg genuin nu poate fi furnizată, rularea este un bloc de acoperire DATA (not_measurable) mai degrabă decât o strategie de livrat pe o cheie substituită -- raportează ca atare astfel încât ipoteza este parcată până când seria este conectată, în loc să tranzacționeze silențios un factor diferit (de flux). Fă - [avertisment] Verificarea de consistență semnalează ipoteza 'WEEKLY' vs config bar_type 1-DAY. Acesta este NOT o nepotrivire genuină: 'săptămânal' în ipoteză se referă la cadența REBALANCE/HOLD, care este corect implementată ca bare zilnice ghidate de o rebalansare 7-zile ancorată calendaristic (zi % rebalance_days == 0). Folosirea literală a barelor săptămânale ar face mai grosolane percentila de euforie și cadența; construcția bară-zilnică + rebalansare-7-zile este modalitatea corectă de a exprima o rotație săptămânală. Notat pentru transparență; nu conduce verdictul. (linia 380) — remediu: Opțional reformulează textul ipotezei pentru a spune 'rebalansare săptămânală pe bare zilnice' pentru a reduce la tăcere avertismentul de consistență Stratul-1.5.

Istoric iterații

Verificarea a eșuat (Layer 2 — scenarii sintetice): Parametri utilizați: ['top_k', 'exit_level', 'min_notional', 'per_name_frac', 'euphoria_level', 'rebalance_days', 'euphoria_window'] Verifică dacă __init__ setează toate atributele folosind self.parameters.get(). - steady_uptrend: TypeError: RetailCrowdingContrarianRotationLong._asof() ia 3 argumente poziționale, dar i-au fost date 4 (marcaj temporal al barei: 1735691940000) - steady_downtrend: TypeError: RetailCrowdingContrarianRotationLong._asof() ia 3……Afișează mai multeAfișează mai puțin

Verificarea a eșuat (Layer 2 — scenarii sintetice): Parametri utilizați: ['top_k', 'exit_level', 'min_notional', 'per_name_frac', 'euphoria_level', 'rebalance_days', 'euphoria_window'] Verifică dacă __init__ setează toate atributele folosind self.parameters.get(). - steady_uptrend: TypeError: RetailCrowdingContrarianRotationLong._asof() ia 3 argumente poziționale, dar i-au fost date 4 (marcaj temporal al barei: 1735691940000) - steady_downtrend: TypeError: RetailCrowdingContrarianRotationLong._asof() ia 3 argumente poziționale, dar i-au fost date 4 (marcaj temporal al barei: 1735691940000) - flat_ranging: TypeError: RetailCrowdingContrarianRotationLong._asof() ia 3 argumente poziționale, dar i-au fost date 4 (marcaj temporal al barei: 1735691940000) - volatility_spike: TypeError: RetailCrowdingContrarianRotationLong._asof() ia 3 argumente poziționale, dar i-au fost date 4 (marcaj temporal al barei: 1735691940000) - zero_volume: TypeError: RetailCrowdingContrarianRotationLong._asof() ia 3 argumente poziționale, dar i-au fost date 4 (marcaj temporal al barei: 1735691940000) - price_gap: TypeError: RetailCrowdingContrarianRotationLong._asof() ia 3 argumente poziționale, dar i-au fost date 4 (marcaj temporal al barei: 1735691940000)

Verificare eșuată (Layer 3 — backtest sandbox): testul fum a depășit limita de 300s wall-clock. Aceasta înseamnă aproape întotdeauna lucru per-bară care scalează cu istoricul — de ex. rescannarea întregii serii de funding/suplimentare, sau reconstruirea unei liste și apelarea min()/sorted() în interiorul calculate_signal()/on_bar() la fiecare bară. Precalculează array-uri de timestamp-uri sortate ONCE în __init__ și folosește bisect, sau memorează cache căutări indexate după timestamp, astfel încât costul per-bară să fie O(log n) nu O(n).

Verificare eșuată (Stratul 4 — recenzie QA) [class=hypothesis_mismatch]: - [edge_concern] Sandbox-ul este un smoke test și nu un motiv de eșec, dar reține: metrics_reliable=false, Sharpe (0.10) este incoerent ca semn cu total_return (-34.3%), MDD 70%, iar cartea de aglomerare OI pierde cel mai mult în tercila de volatilitate stresată (-37.8%). Dacă mecanismul supraviețuiește până la recenzia backtest-ului, verifică mai întâi dacă z-rank-ul OI are vreun avantaj direcțional, dat fiind că OI este orb la direcție. -……Afișează mai multeAfișează mai puțin

Verificare eșuată (Stratul 4 — recenzie QA) [class=hypothesis_mismatch]: - [edge_concern] Sandbox-ul este un smoke test și nu un motiv de eșec, dar reține: metrics_reliable=false, Sharpe (0.10) este incoerent ca semn cu total_return (-34.3%), MDD 70%, iar cartea de aglomerare OI pierde cel mai mult în tercila de volatilitate stresată (-37.8%). Dacă mecanismul supraviețuiește până la recenzia backtest-ului, verifică mai întâi dacă z-rank-ul OI are vreun avantaj direcțional, dat fiind că OI este orb la direcție. - Avantajul central al ipotezei este un rang cross-secțional pe GLOBAL LONG/SHORT ACCOUNT RATIO per nume — un factor de sub-deținere retail direcțională ('deține numele în care retail-ul este LEAST aglomerat-LONG pe'). Codul, în schimb, clasează pe baza scorului z PERP OPEN INTEREST per nume și deține cele mai mici 3. Acesta este un mecanism substituit care nu păstrează economia: OI nu este un proxy retail (este noționalul deschis total pentru toți participanții), iar OI este DIRECTION-BLIND (lungurile agregate == scurturile în perps), deci nu poate exprima 'cel mai puțin aglomerat-long.' Avantajul specific denumit al ipotezei este absent din cod → critic.

Verificare eșuată (Layer 4 — recenzie QA) [clasă=hypothesis_mismatch]: - [edge_concern] Sandbox-ul arată sănătos (+93%, Sharpe 0.77, PF 1.55, avg_trade_return_pct 6.63%) tocmai pentru că codul este o rotație funding-carry pe care dezvoltatorul confirmă că se suprapune cu coșul de carry negative-funding deja desfășurat — deci cifrele bune argumentează împotriva promovării unui aproape-duplicat al unei strategii live, nu factorul ortogonal de aglomerare pe care ipoteza trebuia să-l adauge. Consultativ; blocul este……Afișează mai multeAfișează mai puțin

Verificare eșuată (Layer 4 — recenzie QA) [clasă=hypothesis_mismatch]: - [edge_concern] Sandbox-ul arată sănătos (+93%, Sharpe 0.77, PF 1.55, avg_trade_return_pct 6.63%) tocmai pentru că codul este o rotație funding-carry pe care dezvoltatorul confirmă că se suprapune cu coșul de carry negative-funding deja desfășurat — deci cifrele bune argumentează împotriva promovării unui aproape-duplicat al unei strategii live, nu factorul ortogonal de aglomerare pe care ipoteza trebuia să-l adauge. Consultativ; blocul este fidelitate. - Edge-ul de bază nu este implementat iar surogatul este exact mecanismul pe care ipoteza EXCLUDES. Ipoteza clasează după raportul per-nume GLOBAL long/short ACCOUNT (aglomerare retail), explicit 'nu funding (carry)... ortogonal față de momentum și funding'. Codul clasează cross-secțiunea după FUNDING per-nume (cel mai mic = deținut) — un clasament funding-carry pe care dezvoltatorul admite că se suprapune cu coșul carry desfășurat. Cheia de aglomerare pe raport de conturi este absentă și imposibilă (metrici cablate doar pentru simbolul primar; fără metrics_by_instrument). - Cadența de rebalansare ancorată la un contor de bare relativ procesului (self._bar_i % rebalance_days), nu la timestamp-ul barei. Restarturile resetează _bar_i și derivă grila de rotație săptămânală de pe orice zi calendaristică fixă; replay-ul de paritate nu poate reproduce datele de rotație. Element mai blând -20 formă (fără sentinel/prima-bară fire). Derivă din zile-de-la-epocă sau o zi a săptămânii fixă.

Motiv Abandonare

verification_loop: Verificare eșuată (Layer 4 — recenzie QA) [clasă=hypothesis_mismatch]: - [edge_concern] Sandbox-ul este un coș coerent long-only pe majori care rulează și tranzacționează (337 tranzacții, avg_trade_return_pct 0.69% depășește pragul de fee), dar total_return -20.85%, information_ratio -0.901 vs benchmark-ul coșului egal-ponderat, și max_drawdown 71% (CI la 96%) sugerează că cheia de clasament pe flux taker substituită adaugă valoare negativă ajustată la risc peste o deținere egal-ponderată……Afișează mai multeAfișează mai puțin

verification_loop: Verificare eșuată (Layer 4 — recenzie QA) [clasă=hypothesis_mismatch]: - [edge_concern] Sandbox-ul este un coș coerent long-only pe majori care rulează și tranzacționează (337 tranzacții, avg_trade_return_pct 0.69% depășește pragul de fee), dar total_return -20.85%, information_ratio -0.901 vs benchmark-ul coșului egal-ponderat, și max_drawdown 71% (CI la 96%) sugerează că cheia de clasament pe flux taker substituită adaugă valoare negativă ajustată la risc peste o deținere egal-ponderată naivă. Aceasta este doar consultativă; este în aval de nepotrivirea cheii de clasament și ar trebui rejucată de analist pe o implementare corectată, nu blocată aici. - [critic] Singura trăsătură definitorie a ipotezei -- reafirmată de-a lungul titlului/descrierii ('după GLOBAL Raport Long/Short Conturi', 'count_long_short_ratio', 'o Sub-Deținere Pură FACTOR, Nu Momentum') -- este că CROSS-SECTIONAL RANKING KEY este raportul per-nume global long/short ACCOUNT, un proxy retail de poziționare/deținere care este în mod deliberat ortogonal față de momentum și funding. Codul NOT clasează pe aceasta. _crowd_z() / _rebalance() clasează majorii 8 după `taker_long_short_vol_ratio` (volum agresiv BUY / volum agresiv SELL) citit din `taker_flow_by_instrument`. Raportul volum taker long/short este o măsură FLOW/AGGRESSOR, nu o măsură de deținere/poziționare -- este material diferit față de raportul de conturi și este probabil mai aproape de fluxul/momentum-ul pe orizont scurt pe care ipoteza pretinde explicit că este ortogonal. Raportul de conturi numit este folosit doar pentru poarta secundară de numerar euforia BTC (_parse_global / calculate_signal), niciodată pentru selecția primară. Conform checklist-ului QA, când edge-ul de bază numit specific al ipotezei este absent din cod, aceasta este critic: factorul de sub-deținere enunțat nu este factorul tranzacționat. (linia 259) — fix: Fie (a) cablază în pipeline raportul global de conturi per-instrument ca `global_ratio_by_instrument` (oglindind funding_rates_by_instrument / open_interest_by_instrument / taker_flow_by_instrument în subprocess_entry.py) și clasează pe aceasta — aceasta este implementarea fidelă pe care ipoteza o numește; fie (b) dacă acea serie per-segment nu poate fi furnizată efectiv, rularea este un bloc de acoperire DATA (not_measurable) mai degrabă decât o strategie de livrat pe o cheie substituită -- raportează-o ca atare astfel încât ipoteza să fie parcată până când seria este cablată, în loc să tranzacționeze în tăcere un factor (de flux) diferit. Do - [avertisment] Verificarea de consistență semnalează ipoteza 'WEEKLY' vs configurația bar_type 1-DAY. Aceasta NOT este o nepotrivire reală: 'săptămânal' în ipoteză se referă la cadența REBALANCE/HOLD, care este corect implementată ca bare zilnice gătate de o rebalansare ancorată calendaristic 7-day (day % rebalance_days == 0). Folosirea literală a barelor săptămânale ar face mai grosier percentila euforiei și cadența; construcția bară-zilnică + rebalansare 7-day este modul corect de a exprima o rotație săptămânală. Notat pentru transparență; nu conduce verdictul. (linia 380) — fix: Opțional reformulează textul ipotezei pentru a spune 'rebalansare săptămânală pe bare zilnice' pentru a reduce la tăcere avertismentul de consistență Layer-1.5.

Stratmill este un instrument de cercetare și paper-trading, nu consultanță financiară sau broker. Rezultatele de backtest și paper trading sunt ipotetice. Tranzacționarea implică riscul de pierdere.