HyperliquidSolFundingExtremeContrarian
فرضیهها
Hyperliquid SOL Perp Funding-Extreme Contrarian — Long-Short، Single-Name: FADE Crowded Positioning When Rolling Funding Z-Score Hits an Extreme (Very Positive Funding = Over-Leveraged Longs → SHORT; Very Negative = Capitulated Shorts → LONG)، تأییدشده با Price Non-Confirmation، خروج در Funding Reversion / ATR Stop / Time Stop (SOLUSDT.HYPERLIQUID، 4H، 3-Parameter)
فرضیهها
یک استراتژی خلافروندِ LONG-SHORT، تکابزاری و مبتنی بر POSITIONING روی قرارداد دائمی SOL در Hyperliquid، ساختهشده حول یک سیگنال مکانیکیِ NON-OHLCV — FUNDING قرارداد دائمی — که به شیوهٔ OPPOSITE نسبت به خانوادهٔ ازکارافتادهٔ نقدیوآتیِ کارخانه به کار گرفته شده است. این استراتژی NOT یک استراتژی کریِ دلتاخنثی است (که بهدلیل ناچیز بودن سود و زیان تأمین مالی در مقایسه با نویز مبنا از کار افتاد) و NOT مومنتوم قیمت است (سبدهای مومنتومِ HL، 0/84 هستند). در عوض، نرخ تأمین مالی بهعنوان شاخص تراکم معاملات/موقعیتگیری استفاده میشود تا زمان ورود به معاملهٔ خلافجهتِ DIRECTIONAL تعیین شود: این نتیجهٔ مستند که وقتی نرخ تأمین مالی قرارداد دائمی بهشدت مثبت است، دارندگان موقعیتهای خرید بیشازحد اهرم گرفتهاند و برای نگهداری موقعیت هزینه میپردازند — وضعیتی که از نظر تاریخی پیش از بازدههای آتیِ LOWER قرارداد دائمی رخ میدهد (ریسک فشار بر موقعیتها/تخلیهٔ شدید بازار)، و بهطور متقارن، نرخ تأمین مالی بهشدت منفی نشاندهندهٔ تسلیم دارندگان موقعیتهای فروش است که پیش از جهشهای بازگشتی رخ میدهد. این استراتژی برای پوشش همزمان سه دسته با حضور کمتر از حد مطلوب انتخاب شده است: HYPERLIQUID (6.8% در برابر هدفِ 20%)، long_short (14.2%)، و یک مزیت معاملاتیِ غیرِ OHLCV با استفادهٔ ایمن از دادهها که در گورستان بیشبرازشِ OHLCV نیست. عمداً تکنماد و 3 پارامتری است تا قابل پیادهسازی بماند (سبدهای چندابزاریِ HL بهدلیل پایان مهلت کدنویسی از کار افتادند) و در برابر بیشبرازش مقاومت کند. IMPLEMENTATION NOTE: خط مبنای نرخ تأمین مالی را بهصورت یک صف دوطرفهٔ غلتان نگه دارید که بهطور افزایشی بهروزرسانی میشود (O(1) بهازای هر بهروزرسانی) — NEVER بازپویش کل سری نرخ تأمین مالی درون on_bar (آن الگو باعث پایان مکرر مهلتهای 300 ثانیهای محیط سندباکس شد).
فرضیهها
تکرار 2 تنها مورد شکست لایهٔ -2 را برطرف میکند (`FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given`، هر شش سناریو). `_StrategyProxy` در لایهٔ -2، تمام ویژگیهای قابل فراخوانی استراتژی را از طریق `types.MethodType` به یک پوشانندهٔ ساده دوباره متصل میکند؛ این کار متد ایستای تکآرگومانیِ `_bar_ts` در کلاس پایه را به یک متد مقید تبدیل میکند — در نتیجه `self._bar_ts(bar)` با دو آرگومان فراخوانی میشود. اصلاح حداقلی، همان یک فراخوانی را با تابع کمکیِ `_bar_timestamp_ns(bar)` در سطح ماژول جایگزین میکند که `bar.ts_event` را مستقیماً میخواند (و در صورت نیاز به `ts_init` رجوع میکند) — از نظر رفتاری یکسان و مصون از اتصال مجدد توسط پراکسی. هیچ چیز دیگری تغییر نکرده است: واردسازیها، ساختار کلاس، تجزیهٔ دادههای تأمین مالی، منطق سیگنال، ورودها، خروجها و تعیین اندازهٔ موقعیت، بایتبهبایت با previous_code که لایهٔ 1 را با موفقیت گذراند یکساناند؛ بنابراین هیچ بررسی پیشین نمیتواند دچار پسرفت شود. توجه کنید که `_bar_interval_ns` همچنان از `__init__` فراخوانی میشود؛ این بخش پیش از آنکه پراکسی چیزی را دوباره متصل کند، روی نمونهٔ واقعی اجرا میشود، پس تحت تأثیر قرار نمیگیرد. اهرم 2.0 در `position_size` از طریق `self.config.leverage` در سقف ارزش اسمی ناخالص به کار میرود.
فرضیهها
استراتژی contrarian fade تکنمادیِ funding-extreme با امیدریاضی منفی — هیچ edgeای برای بهینهسازی وجود ندارد. PF 0.60، total_return -33.7%، Sharpe -0.42، امیدریاضی -$156/trade، و avg_trade_return_pct -0.37% (منفی، پایینتر از کف کارمزد 0.15% Hyperliquid، L22). در هر سال زیانده است (2024 -14.8%، 2025 -13.8%، 2026 -6.5%)؛ هر دو پای long و short دارای win rate زیر -43% و avg_loss > avg_win هستند — این contrarian fade بهطور نظاممند در سمت اشتباه حرکت قرار دارد، و تنها ماه مثبت، یک روز پرتِ منفرد +10.77% (kurtosis 9.8) است. سازوکار بهخوبی پیادهسازی شده است (بدون timeout، funding منظور شده)، اما در دو خانوادهٔ zero-survivor قرار میگیرد: mean-reversion/fade تکنمادی (L55) و directional تک-perp با supplementary(funding)-gated (L73). دروازهٔ price-non-confirmation edge واقعیای اضافه نکرد. علامت edge هر معامله منفی است و هیچ تنظیم پارامتری نمیتواند آن را برگرداند. ارزش 2 ساعت بهینهسازی را ندارد. الگوی شکست: fee_edge/no_edge single-perp funding-gated contrarian fade.
پیادهسازی
استراتژی contrarian تکنمادیِ long-short روی perpِ SOL در Hyperliquid (4H bar). از funding بهعنوان سنجهٔ crowding استفاده میشود: z-score لغزانِ print مربوط به hl_funding_rates در برابر توزیع trailing خودش، در هر bar بهعنوان سیگنال پیوسته برگردانده میشود. z شدیداً مثبت (longهای crowded که بیشازحد پرداخت میکنند) با یک SHORT fade میشود؛ z شدیداً منفی (shortهای capitulated) با یک LONG fade میشود، اما فقط وقتی قیمت crowd را تأیید نکند (close در حال ثبت high/low جدیدِ confirm_bars-bar نباشد). خروج در بازگشت funding (|z| <= exit_z)، یک stop از نوع ATR که هنگام ورود snapshot شده، یا time stop تقویمی که از position.ts_opened اندازهگیری میشود. sizing بر مبنای ریسک است: stopِ ATR حدود risk_frac از equity هزینه دارد، با یک سقف مستقل gross-notional.
نتایج تأیید
CLEAN RESTART 2026-09-04 — تاریخچهٔ verdict و سوابق یادگیری این اجرا حذف و از مرحلهٔ راستیآزمایی دوباره آغاز شد. رهاشدن قبلی آن ناشی از pipeline بود، نه بازار: harness مربوط به Layer-2 دستیارهای @staticmethod را بهاشتباه متصل کرده بود (رفع شد)، QA روی یک smoke test بهینهنشده verdictهای نهایی عملکرد صادر میکرد (حذف شد — QA اکنون فقط صحت را ارزیابی میکند)، و timeoutهای sandbox ناشی از کمبود backtest-slot بودند (رفع شد). فرضیه و کد strategy تغییری نکردهاند. کد را بر اساس شایستگی خودش راستیآزمایی کنید؛ عملکرد بعداً با backtest کامل و optimizer تعیین میشود.
نتایج تأیید
_param_bounds را به 3 پارامتر قابل تنظیم اصلی (entry_z، exit_z، funding_lookback_prints) محدود کنید؛ پارامترهای ریسک/زیرساخت اجرایی را بهصورت ثابت قفل کنید.
نتایج تأیید
فرضیه، طرح را با این ادعا عرضه میکند که «عمداً 3 پارامتری است تا در برابر بیشبرازش مقاومت کند»، اما _param_bounds تعداد 11 پارامتر قابل بهینهسازی را در دسترس قرار میدهد. سازوکار درست است، اما جستوجوی پیشرونده در 11 بُعد با توجیه اعلامشده برای مقابله با بیشبرازش تناقض دارد و ریسک PBO را افزایش میدهد. مانع ادامه نیست.
نتایج تأیید
هیچ اقدامی لازم نیست؛ برای تحلیلگر یادداشت شد.
نتایج تأیید
سیگنالهای مصنوعی لایهٔ -2 همگی روی 0.0 ثابت ماندهاند (هیچ دادهٔ تأمین مالی تزریق نشده است)، بنابراین مسیر اجرای معاملات فقط در محیط سندباکس آزموده شد (که با دادههای واقعی تأمین مالی، 65 بار معامله کرد). این مشکل باعث توقف نمیشود.
بررسی بکتست
سازوکار بهدرستی فعال میشود و نمونهای کافی تولید میکند (201 معامله طی 953 روز) بدون timeout — پیادهسازی funding از نوع O(log n) مطابق انتظار کار میکند
بررسی بکتست
تکابزاری، با یک feed تکمیلی منفرد (hl_funding_rates)، بدون ناهنجاری داده/راستیآزمایی؛ funding در PnL منظور شده است
بررسی بکتست
امیدریاضی منفی: profit_factor 0.60، total_return -33.7%، امیدریاضی -$156/trade
بررسی بکتست
avg_trade_return_pct -0.37% — منفی و بسیار پایینتر از کف کارمزد 0.15% Hyperliquid (L22)
بررسی بکتست
در هر سه سال زیانده است (2024 -14.8%، 2025 -13.8%، 2026 -6.5%) — نبود edgeای پایدار، نه edgeای که فرسوده شده باشد
بررسی بکتست
هر دو پا زیاندهاند (win long برابر 42%، win short برابر 42%) و avg_loss > avg_win — fade مربوط به funding-extreme در سمت اشتباه حرکت قرار دارد
بررسی بکتست
تنها ماه مثبت، حاصل یک روز پرتِ +10.77% است (کشیدگی 9.8)؛ روند زیربنایی معاملات یکسره منفی است
بررسی بکتست
fade جهتدار تکنمادیِ funding-gated — mean-reversion (0/174) و کلاسهای zero-survivorِ directional تک-perp با supplementary-gated (L73)
Iteration History
راستیآزمایی شکست خورد (Layer 2 — سناریوهای synthetic):
پارامترهای استفادهشده: ['exit_z', 'entry_z', 'atr_bars', 'risk_frac', 'min_prints', 'confirm_bars', '_param_bounds', 'atr_stop_mult', 'max_hold_bars', 'max_lag_seconds', 'max_notional_frac', 'funding_lookback_prints']
بررسی کنید که __init__ همهٔ attributeها را از self.parameters.get() تنظیم میکند.
- steady_uptrend: TypeError: FactoryStrategy._bar_ts() تعداد 1 آرگومان positional میپذیرد، اما 2 آرگومان دریافت شد (bar timestamp: 1735690500000)
- steady_downtrend: TypeError: FactoryStrategy._bar_ts() تعداد 1 آرگومان positional میپذیرد، اما 2 آرگومان دریافت شد (bar timestamp: 1735690500000)
- flat_ranging: TypeError: FactoryStrategy._bar_ts() تعداد 1 آرگومان positional میپذیرد، اما 2 آرگومان دریافت شد (bar timestamp: 1735690500000)
- volatility_spike: TypeError: FactoryStrategy._bar_ts() تعداد 1 آرگومان positional میپذیرد، اما 2 آرگومان دریافت شد (bar timestamp: 1735690500000)
- zero_volume: TypeError: FactoryStrategy._bar_ts() تعداد 1 آرگومان positional میپذیرد، اما 2 آرگومان دریافت شد (bar timestamp: 1735690500000)
- price_gap: TypeError: FactoryStrategy._bar_ts() تعداد 1 آرگومان positional میپذیرد، اما 2 آرگومان دریافت شد (bar timestamp: 1735690500000)
Stratmill ابزاری برای پژوهش و معامله آزمایشی است، نه مشاوره مالی یا کارگزار. نتایج بکتست و معامله آزمایشی فرضی هستند. معاملهگری با ریسک زیان همراه است.