HyperliquidSolFundingExtremeContrarian
হাইপোথিসিস
Hyperliquid SOL পার্পেচুয়াল ফান্ডিংয়ের চরম মাত্রাভিত্তিক বিপরীতমুখী কৌশল — লং-শর্ট, একক ইনস্ট্রুমেন্ট: রোলিং ফান্ডিং Z-স্কোর চরম মাত্রায় পৌঁছালে FADE অতিরিক্ত ভিড়যুক্ত পজিশনিং (অত্যন্ত ইতিবাচক ফান্ডিং = অতিরিক্ত লিভারেজযুক্ত লং পজিশন → SHORT; অত্যন্ত নেতিবাচক = আত্মসমর্পণ করা শর্ট পজিশন → LONG), মূল্য সেই সংকেতকে সমর্থন না করার মাধ্যমে নিশ্চিতকরণ, ফান্ডিং স্বাভাবিক মাত্রায় ফিরলে / ATR স্টপ / সময়ভিত্তিক স্টপে প্রস্থান (SOLUSDT.HYPERLIQUID, 4 ঘণ্টা, 3-প্যারামিটার)
হাইপোথিসিস
একটি LONG-SHORT, single-instrument, POSITIONING-driven contrarian strategy Hyperliquid SOL perpetual-এ, একটি NON-OHLCV mechanical signal — perpetual FUNDING — ঘিরে নির্মিত, factory-র dead cash-and-carry family-কে OPPOSITE way-এ ব্যবহার করেছে। এটি NOT delta-neutral carry (যা মারা গিয়েছিল কারণ funding P&L basis noise-এর তুলনায় খুব ছোট ছিল) এবং NOT price momentum ( HL momentum baskets 0/84 )। পরিবর্তে, funding ব্যবহার করা হয়েছে crowding/positioning gauge হিসেবে, যাতে DIRECTIONAL fade-এর সময় নির্ধারণ করা যায়: সুপ্রতিষ্ঠিত ফল হলো, perp funding অত্যন্ত positive হলে longs অতিরিক্ত leverage নিয়ে hold করার জন্য অর্থ দেয় — এমন একটি অবস্থা যা ঐতিহাসিকভাবে LOWER forward perp returns-এর (squeeze/washout risk) আগে ঘটে; এবং একইভাবে extreme-negative funding capitulated shorts চিহ্নিত করে, যার আগে bounce ঘটে। একসঙ্গে তিনটি under-represented bucket পূরণ করার জন্য বেছে নেওয়া: HYPERLIQUID (6.8% বনাম 20% target), long_short (14.2%), এবং একটি data-safe non-OHLCV edge যা OHLCV overfit graveyard-এ নেই। Single-name এবং 3-parameter deliberately, যাতে implementable থাকে (multi-instrument HL baskets coding timeout-এ মারা গিয়েছিল) এবং overfitting প্রতিরোধ করা যায়। IMPLEMENTATION NOTE: funding baseline-কে rolling deque হিসেবে বজায় রাখুন এবং incrementally update করুন (প্রতি update-এ O(1)) — NEVER on_bar-এর ভিতরে সম্পূর্ণ funding series rescan করবেন না (এই pattern-ই বারবার 300s sandbox timeout ঘটিয়েছিল)।
হাইপোথিসিস
Iteration 2 একমাত্র Layer-2 failure (`FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given`, সব ছয়টি scenario) সংশোধন করে। Layer-2 `_StrategyProxy` `types.MethodType`-এর মাধ্যমে strategy-র প্রতিটি callable attribute-কে একটি plain wrapper-এ পুনরায় bind করে, যা base class-এর one-argument `_bar_ts` staticmethod-কে bound method-এ রূপান্তর করে — ফলে `self._bar_ts(bar)` দুইটি argument নিয়ে আসে। ন্যূনতম fix হিসেবে ওই একমাত্র call-টি module-level `_bar_timestamp_ns(bar)` helper দিয়ে প্রতিস্থাপন করা হয়েছে, যা সরাসরি `bar.ts_event` পড়ে (`ts_init`-এ fallback সহ) — আচরণগতভাবে অভিন্ন এবং proxy-র rebinding থেকে সুরক্ষিত। আর কিছু পরিবর্তন হয়নি: imports, class structure, funding parsing, signal logic, entries, exits এবং sizing সবই Layer 1 পাস করা previous_code-এর সঙ্গে byte-identical, তাই আগের কোনো check regress করতে পারে না। মনে রাখুন, `_bar_interval_ns` এখনও `__init__` থেকে call হয়, যা proxy কিছু rebind করার আগে real instance-এ চলে, তাই এটি প্রভাবিত নয়। Leverage 2.0 `position_size`-এ `self.config.leverage`-এর মাধ্যমে gross-notional cap-এ ব্যবহৃত হয়।
হাইপোথিসিস
Negative-expectancy single-name funding-extreme contrarian fade — optimize করার মতো কোনো edge নেই। PF 0.60, total_return -33.7%, Sharpe -0.42, প্রত্যাশিত ফল -$156/trade, এবং avg_trade_return_pct -0.37% (negative, 0.15% Hyperliquid fee floor-এর নিচে, L22)। প্রতি বছরই ক্ষতি (2024 -14.8%, 2025 -13.8%, 2026 -6.5%) এবং long ও short উভয় leg-ই sub-43% win rate ও avg_loss > avg_win — contrarian fade নিয়মিতভাবে move-এর ভুল পাশে রয়েছে, আর একমাত্র positive month হলো একটি মাত্র +10.77% outlier day (kurtosis 9.8)। Mechanism সঠিকভাবে implement করা হয়েছে (কোনো timeout নেই, funding credited), কিন্তু এটি দুইটি zero-survivor family-তে পড়ে: single-name mean-reversion/fade (L55) এবং single-perp supplementary(funding)-gated directional (L73)। Price-non-confirmation gate কোনো বাস্তব edge যোগ করেনি। Per-trade edge-এর sign negative, যা কোনো parameter tuning উল্টাতে পারে না। Optimization-এ 2 ঘণ্টা ব্যয় করা মূল্যবান নয়। Failure pattern: fee_edge/no_edge single-perp funding-gated contrarian fade।
구현
Hyperliquid SOL perp-এ (4H bars) long-short single-name contrarian। Funding crowding gauge হিসেবে ব্যবহৃত: hl_funding_rates print-এর নিজস্ব trailing distribution-এর বিপরীতে rolling z-score প্রতি bar-এ continuous signal হিসেবে ফেরত দেওয়া হয়। Extreme positive z (crowded, অতিরিক্ত অর্থ প্রদানকারী longs) একটি SHORT দিয়ে fade করা হয়; extreme negative z (capitulated shorts) একটি LONG দিয়ে fade করা হয়, তবে কেবল তখনই যখন price crowd নিশ্চিত করতে ব্যর্থ হয় (close নতুন confirm_bars-bar high/low তৈরি না করলে)। Funding reversion (|z| <= exit_z), entry-তে snapshot করা ATR stop, অথবা position.ts_opened থেকে পরিমাপ করা calendar time stop-এ exit হয়। Sizing risk-first: ATR stop equity-র প্রায় risk_frac খরচ করে, সঙ্গে independent gross-notional cap।
검증 결과
CLEAN RESTART 2026-09-04 — এই রানটির রায়ের ইতিহাস এবং শেখার রেকর্ড মুছে ফেলা হয়েছে এবং যাচাই থেকে এটি পুনরায় শুরু করা হয়েছে। এর আগের পরিত্যাগের কারণ ছিল পাইপলাইন, বাজার নয়: Layer-2 harness @staticmethod সহায়কগুলোর ভুল binding করেছিল (সংশোধিত), QA একটি unoptimized smoke test-এর ওপর terminal performance verdict দিয়েছিল (অপসারিত — QA এখন শুধু correctness বিচার করে), এবং sandbox timeout হয়েছিল backtest-slot starvation-এর কারণে (সংশোধিত)। Hypothesis এবং strategy code অপরিবর্তিত। কোডটি তার নিজস্ব merit অনুযায়ী যাচাই করুন; performance পরে full backtest এবং optimizer নির্ধারণ করবে।
검증 결과
_param_bounds-কে 3 headline tunables-এ (entry_z, exit_z, funding_lookback_prints) সীমাবদ্ধ করুন; risk/plumbing params-গুলো constant হিসেবে lock করুন।
검증 결과
Hypothesis একটি '3-parameter deliberately, to resist overfitting' design প্রস্তাব করে, কিন্তু _param_bounds 11 optimizable params প্রকাশ করে। Mechanism সঠিক, কিন্তু 11-dim walk-forward search ঘোষিত anti-overfit rationale-এর বিরোধী এবং PBO risk বাড়ায়। Blocking নয়।
검증 결과
কিছু প্রয়োজন নেই; analyst-এর জন্য নথিভুক্ত।
검증 결과
Layer-2 synthetic signals সব 0.0-এ frozen (কোনো funding inject করা হয়নি), তাই trading path কেবল sandbox-এ exercise করা হয়েছিল (যেখানে real funding-এ 65 বার trade হয়েছিল)। Non-fatal।
ব্যাকটেস্ট রিভিউ
Mechanism পরিষ্কারভাবে কাজ করে এবং পর্যাপ্ত sample তৈরি করে (953 দিনের মধ্যে 201 trades), কোনো timeout ছাড়াই — O(log n) funding implementation উদ্দেশ্য অনুযায়ী কাজ করে
ব্যাকটেস্ট রিভিউ
Single-instrument, single supplementary feed (hl_funding_rates), কোনো data/verification pathology নেই; funding PnL-এ credited
ব্যাকটেস্ট রিভিউ
Negative expectancy: profit_factor 0.60, total_return -33.7%, expectancy -$156/trade
ব্যাকটেস্ট রিভিউ
avg_trade_return_pct -0.37% — negative এবং 0.15% Hyperliquid fee floor-এর ( L22 ) অনেক নিচে
ব্যাকটেস্ট রিভিউ
তিনটি বছরেই ক্ষতি (2024 -14.8%, 2025 -13.8%, 2026 -6.5%) — এটি persistent no-edge, decayed edge নয়
ব্যাকটেস্ট রিভিউ
উভয় leg-ই ক্ষতিগ্রস্ত (long win 42%, short win 42%), যেখানে avg_loss > avg_win — funding-extreme fade move-এর ভুল পাশে রয়েছে
ব্যাকটেস্ট রিভিউ
একমাত্র positive month হলো একটি মাত্র +10.77% outlier day (kurtosis 9.8); underlying tape সর্বত্র negative
ব্যাকটেস্ট রিভিউ
Single-name funding-gated directional fade — mean-reversion (0/174) এবং single-perp supplementary-gated directional (L73) zero-survivor classes
Iteration History
Verification ব্যর্থ (Layer 2 — synthetic scenarios):
ব্যবহৃত Parameters: ['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__ self.parameters.get() থেকে সব attributes সেট করে কি না পরীক্ষা করুন।
- steady_uptrend: TypeError: FactoryStrategy._bar_ts() 1 positional argument নেয়, কিন্তু 2 দেওয়া হয়েছে (bar timestamp: 1735690500000)
- steady_downtrend: TypeError: FactoryStrategy._bar_ts() 1 positional argument নেয়, কিন্তু 2 দেওয়া হয়েছে (bar timestamp: 1735690500000)
- flat_ranging: TypeError: FactoryStrategy._bar_ts() 1 positional argument নেয়, কিন্তু 2 দেওয়া হয়েছে (bar timestamp: 1735690500000)
- volatility_spike: TypeError: FactoryStrategy._bar_ts() 1 positional argument নেয়, কিন্তু 2 দেওয়া হয়েছে (bar timestamp: 1735690500000)
- zero_volume: TypeError: FactoryStrategy._bar_ts() 1 positional argument নেয়, কিন্তু 2 দেওয়া হয়েছে (bar timestamp: 1735690500000)
- price_gap: TypeError: FactoryStrategy._bar_ts() 1 positional argument নেয়, কিন্তু 2 দেওয়া হয়েছে (bar timestamp: 1735690500000)
Stratmill একটি রিসার্চ ও পেপার-ট্রেডিং টুল, আর্থিক পরামর্শ বা ব্রোকার নয়। ব্যাকটেস্ট ও পেপার ফলাফল কাল্পনিক। ট্রেডিংয়ে ক্ষতির ঝুঁকি রয়েছে।