رفتن به محتوا

مشاهده نسخه اصلی

BtcTakerFlowExhaustionReversalLS1H

فرضیه‌ها

BTC برگشت ناشی از فرسودگی جریان تیکر، لانگ-شورت (قرارداد دائمی تک‌ابزاری BINANCE USD-M، کندل‌های 1ساعته، معامله خلاف عدم‌تعادل شدید سفارش‌های تهاجمی — شورت در برابر خرید FOMO در مراحل پایانی / خرید در برابر فروش وحشت‌زده — مشروط به رژیم بازار رنج، سیگنال نوآورانهٔ نسبت تیکر، با 3 پارامتر)

فرضیه‌ها

یک استراتژی LONG-SHORT بازگشت به میانگینِ تک‌ابزاری روی BTCUSDT.BINANCE (قرارداد دائمی USD-M، کندل‌های 1ساعته) که محرک آن ORDER FLOW است، نه قیمت — ورودی سیگنالی که هیچ استراتژی مستقرشده‌ای از آن استفاده نمی‌کند. در هر کندل، عدم‌تعادل خرید/فروش تهاجمی تیکر (سهم حجم خرید تیکر) را از داده‌های تکمیلی نسبت تیکر معاملات آتی بایننس محاسبه می‌کند (گزینهٔ جایگزین: trade_ticks طبقه‌بندی‌شده بر اساس سمت تهاجمی معامله) و آن را روی یک پنجرهٔ کوتاه هموار می‌کند. فرضیه: وقتی خرید تهاجمی شدید و پایدار می‌شود (مثلاً سهم خرید تیکر در پنجرهٔ هموارسازی ≥ 0.68 باشد)، خریدار نهایی با سفارش بازار، FOMO در مراحل پایانی / پوشش اجباری موقعیت است که تقاضای تازه‌ای از جنس سفارش محدود پشت آن نیست — فرسودگی سفارش‌های تهاجمی که به‌طور قابل‌اتکا پیش از یک عقب‌نشینی کوتاه‌مدت رخ می‌دهد؛ بنابراین آن را FADE SHORT. به‌طور متقارن، تهاجم شدید و پایدار تیکر-SELL (سهم ≤ 0.32) فروش با سفارش بازار از سر وحشت/تسلیم در برابر سفارش‌های فروشِ رو به کاهش است — موقعیت LONG بگیرید. این عمداً خانواده‌ای DIFFERENT نسبت به تمام مواردی است که در این کارخانه از بین می‌روند: این استراتژی NOT پیروی از روند است (گورستان تک‌رژیمی با 209 مرگ — این استراتژی خلاف‌جهت و توزیع‌شده میان رژیم‌هاست و در هر جهتی که جریان بیش‌ازحد امتداد یابد بازده می‌دهد)، NOT کریِ فاندینگ است (خانوادهٔ اشباع‌شدهٔ سبدها که بر اثر کارمزد از بین می‌روند — مزیت آن یک حرکت برگشتی 0.4–0.6% است، نه جریان نقدیِ کمتر از یک واحد پایه)، NOT یک سبد N‌پایه‌ای است (تک‌ابزاری است و در هر رفت‌وبرگشت 2 اجرای سفارش دارد، بنابراین از سد کارمزد 2N×10bps مربوط به L12 عبور می‌کند)، و NOT اختیار معامله است (مانعی از نظر تعداد معاملات ندارد — رویدادهای جریان شدید ده‌ها بار در سال فعال می‌شوند و صدها معامله برای سنجش قابل‌اتکای مزیت فراهم می‌کنند). این استراتژی به رژیم‌های NON-TRENDING محدود است (معامله خلاف حرکت فقط زمانی انجام می‌شود که فیلتر کندِ روند، وضعیت خنثی/رنج را نشان دهد) تا از تنها حالت شکست واقعی جلوگیری شود — جریان شدیدی که به‌جای فرسودگی، ادامهٔ INFORMED است. تعداد کمِ پارامترها، 3 (پنجرهٔ هموارسازی جریان، آستانهٔ عدم‌تعادل، خروج)، آن را در برابر بیش‌برازش مقاوم نگه می‌دارد.

فرضیه‌ها

تکرار 3 تنها شکست QA در Layer-4 را برطرف می‌کند: کمبود معاملات (6 معامله در 363 روز) ناشی از یک شرط ترکیبی بیش‌ازحد سخت‌گیرانه. هیچ تغییری در سازوکار، ایمپورت یا منطق سیگنال ایجاد نشده است (آن‌ها لایه‌های 1-3 را گذرانده‌اند)؛ فقط سه محدودکنندهٔ ورود/خروج تسهیل شده‌اند تا استراتژی از حداقلِ حدود 100 معامله برای سنجش‌پذیری عبور کند. entry_z 1.2->0.8 در موارد بیشتری از جریان‌های شدید فعال می‌شود، درحالی‌که همچنان فراتر از نویز و بالاتر از هزینهٔ رفت‌وبرگشت تیکرِ 0.10% باقی می‌ماند (برگشتِ مورد انتظار در فرضیه 0.4-0.6% است). regime_threshold 0.55->0.65 کندل‌های رنج بیشتری را می‌پذیرد تا هم‌زمانی شروط رنج-AND-z شدید دیگر کمیابی را تشدید نکند، درحالی‌که همچنان روندهای قوی را حذف می‌کند (حالت شکستِ تداوم حرکت ناشی از جریان آگاهانه). exit_z 0.3->0.25 و max_hold_bars 24->10 گردش معاملات را سریع‌تر می‌کنند، استراتژی را زودتر به حالت بدون موقعیت بازمی‌گردانند و تعداد پنجره‌های ورود در سال را چندبرابر می‌کنند. سیگنال z غلتانِ ناوردا نسبت به مقیاس (L5) و طراحی خلاف‌جهت، توزیع‌شده میان رژیم‌ها و تک‌ابزاری که این استراتژی را از گورستان روند/کری/سبد/اختیار معامله متمایز می‌کنند، بدون تغییر باقی مانده‌اند.

فرضیه‌ها

fade فرسودگی taker-flow در تک-perp با امید ریاضی منفی، بدون edge و دارای یک دیوار داده تکمیلی (L73/L55). profit_factor 0.62، total_return -5.29%، Sharpe -0.71 (CI [-1.35، 0.02])، expectancy برابر -$62.6/معامله، avg_trade_return_pct 0.0146% (تقریباً صفر، بازنده خالص)؛ avg_loss > avg_win با win_rate 0.447، بنابراین fade در سمت نادرست جریان قرار دارد. نکته مهم اینکه با وجود 58,512 نوار طی 2019-2026، ALL 85 معامله و 100% بازده‌ها در یک پنجره ~6-ماهه 2026 قرار دارند، زیرا feed تکمیلی taker_ratio فقط بخش اخیر را پوشش می‌دهد — annual_returns={2026:-5.32}، ماهانه 2026-03..08 — بنابراین walk-forward با پنجره 3 به‌علاوه 20% holdout قابل ساخت نیست. این همان امضای تک-perp order-flow-gated است که پیش‌تر سه بار در این batch رها شده است (BtcTakerAggressionPersistence، AvaxTakerAggressorDominance، EthTakerFlowBreakout). هیچ تنظیم پارامتری edge منفی هر معامله را مثبت نمی‌کند و optimizer نمی‌تواند پوشش تقویمیِ فاقد feed را ایجاد کند. ارزش 2 ساعت بهینه‌سازی را ندارد. الگوی شکست: fee_edge/no_edge fade تک-perp order-flow-gated با پنجره تکمیلی فقط اخیر.

پیاده‌سازی

mean-reversion جریان سفارش لانگ-شورت روی BTCUSDT.BINANCE USD-M perp (کندل‌های 1ساعته). z-score غلتانِ کسر هموارشده aggressor خرید taker را از داده تکمیلی taker_ratio Binance محاسبه می‌کند؛ خرید شدید و پایدار aggressor SHORT (فرسودگی FOMO در مراحل پایانی) و فروش شدید aggressor LONG (تسلیم هراس‌زده) را fade می‌کند، فقط در رژیم ranging (نسبت کارایی Kaufman پایین). بر اساس نرمال‌شدن جریان، یک 1% hard stop یا سقف زمانی خارج می‌شود. تک‌ابزار، اهرم 1.0، 3 پارامتر قابل‌تنظیم اصلی.

نتایج تأیید

CLEAN RESTART 2026-09-04 — تاریخچهٔ احکام و سوابق یادگیری این اجرا حذف شدند و اجرا از مرحلهٔ راستی‌آزمایی دوباره آغاز شد. کنار گذاشته شدن قبلی آن ناشی از خط لوله بود، نه بازار: چارچوب آزمون Layer-2 توابع کمکی @staticmethod را به‌اشتباه متصل می‌کرد (اصلاح شد)، QA بر اساس یک آزمون اولیهٔ بهینه‌سازی‌نشده، احکام نهایی عملکرد صادر می‌کرد (حذف شد — QA اکنون فقط صحت را ارزیابی می‌کند)، و پایان مهلت‌های سندباکس ناشی از عدم دسترسی به اسلات اجرای بک‌تست بود (اصلاح شد). فرضیه و کد استراتژی تغییری نکرده‌اند. کد را بر اساس شایستگی‌های خودش راستی‌آزمایی کنید؛ عملکرد بعداً با بک‌تست کامل و بهینه‌ساز تعیین می‌شود.

نتایج تأیید

پیش‌فرض taker_lag_seconds را به حدود 7200-14400s کاهش دهید تا feedهای قدیمی ورودها را سرکوب کنند.

نتایج تأیید

taker_lag_seconds به‌طور پیش‌فرض 90000 (25 ساعت) است، بنابراین _current_fraction یک مشاهده taker_ratio را تا حدود 25h کهنه می‌پذیرد و سپس None برمی‌گرداند. این look-ahead نیست (کران bisect در bar ts_event <= ts_init یک‌طرفه است)، اما در شکاف‌های feed استراتژی بر اساس خوانش جریان مربوط به یک روز قبل معامله می‌کند.

نتایج تأیید

فقط وقتی self._tk_ts[idx] جلو می‌رود به _frac_buf اضافه کن.

نتایج تأیید

_current_fraction جدیدبودن را نادیده می‌گیرد و جدیدترین مشاهده را برمی‌گرداند، بنابراین تا زمانی که feed پیش برود، همان fraction در هر bar دوباره به _frac_buf افزوده می‌شود و std پایه rolling-z را اندکی فشرده می‌کند. در cadence برابر 1h مشکل درستی نیست.

بررسی بک‌تست

پیاده‌سازی تمیز تک‌ابزار (2 fill در هر round-trip، بدون دیوار کارمزد basket)، دارای گیت رژیم، فقط با 3 پارامتر قابل‌تنظیم اصلی — ذاتاً مقاوم در برابر overfit

بررسی بک‌تست

ورودی سیگنال order-flow واقعاً از گورستان trend/carry/basket متمایز است

بررسی بک‌تست

بازنده خالص بدون edge: profit_factor 0.62، total_return -5.29%، Sharpe -0.71 (CI [-1.35، 0.02])، expectancy برابر -$62.6/معامله، avg_trade_return_pct 0.0146% (تقریباً صفر و با علامت منفی)

بررسی بک‌تست

avg_loss ($301) از avg_win ($232) بیشتر است، با win_rate 0.447 — exhaustion-fade به‌طور نظام‌مند در سمت نادرست حرکت جریان قرار دارد

بررسی بک‌تست

دیوار داده تکمیلی (L73): همه 85 معامله و 100% بازده‌ها در یک پنجره ~6-ماهه 2026 قرار دارند (annual_returns={2026:-5.32}، ماهانه 2026-03..08) زیرا feed taker_ratio فقط بخش اخیر تاریخچه 2019-2026 OHLCV را پوشش می‌دهد — نمونه مؤثر نمی‌تواند از walk-forward با پنجره 3 + 20% holdout پشتیبانی کند

بررسی بک‌تست

commission_pct_of_gross 47% — کارمزدها به‌علاوه impact پیش از در نظر گرفتن edge با علامت منفی، نیمی از gross را مصرف می‌کنند

بررسی بک‌تست

با ردهٔ تک‌قرارداد دائمیِ مشروط به جریان سفارش با صفر بازمانده مطابقت دارد (BtcTakerAggressionPersistence، AvaxTakerAggressorDominance و EthTakerFlowBreakout همگی کنار گذاشته شدند) و نیز با ردهٔ L55 معاملات خلاف حرکت روی یک نماد با سطح زیرِ -1.15-PF

بررسی بک‌تست

6ماه (2026 فقط)

بررسی بک‌تست

چندساله

Iteration History

راستی‌آزمایی ناموفق بود (لایه 3 — backtest در sandbox): هیچ معامله‌ای تولید نشد نوع bar استفاده‌شده: BTCUSDT.BINANCE-1-HOUR-LAST-EXTERNAL، barهای پردازش‌شده: 8729 تشخیص‌ها: should_enter() در 8679 bar ارزیابی‌شده، 0 بار یک side برگرداند -> ENTRY CONDITION شما هرگز فعال نشد. منطق / آستانه‌های ورود را سهل‌گیرانه‌تر کنید. مطمئن شوید استراتژی با داده و پارامترهای داده‌شده معامله تولید می‌کند.

Iteration History

راستی‌آزمایی ناموفق بود (لایه 4 — بازبینی QA): - gate ورود برای تولید نتیجه قابل‌اندازه‌گیری بسیار به‌ندرت فعال می‌شود. sandbox تنها 6 معامله طی 363 روز (~6 معامله/سال) ایجاد کرد. gate مرکب هم‌زمان به این موارد نیاز دارد: (a) یک رژیم RANGING (نسبت کارایی Kaufman < regime_threshold)، (b) z rolling شدیدِ کسر taker-buy (|z| >= entry_z=1.2)، و (c) استراتژی FLAT باشد، سپس تا 24 bar نگه می‌دارد — بنابراین ورودهای واقعی نادرند، حتی اگر z اغلب از باند عبور کند. این دقیقاً همان حالت شکست L16 است («BTC 4H عدم‌تعادل aggressor 16 معامله»، «BTC taker-ratio 16 معامله») و در اینجا WORSE است (6 معامله). حتی backtest چندساله با این نرخ بسیار پایین‌تر از کف قابلیت اندازه‌گیری ~100 معامله باقی می‌ماند. توجیه خود فرضیه («ده‌ها بار در سال، صدها معامله برای اندازه‌گیری قابل‌اعتماد edge») مستقیماً با نتیجه 6-معامله‌ای در تضاد است. - چون نتیجه بر پایه 6 معامله است، همه معیارهای اصلی غیرتشخیصی‌اند: Sharpe 0.84 اما sharpe_ci_low -1.08 (CI صفر را دربرمی‌گیرد)، profit_factor 10.26 و win_rate 0.667 روی 6 نمونه، return_skew 7.23 / kurtosis 94.8، و avg_win $300 در برابر avg_loss $58 -- یک largest_win $662 تمام بازده مثبت را به دوش می‌کشد (+1.08%). هیچ‌یک از این‌ها را نمی‌توان به‌عنوان شواهد edge معتبر دانست. این پیامد مستقیم مسئله تعداد معاملات بالاست، نه نقصی مستقل.

Iteration History

راستی‌آزمایی ناموفق بود (لایه 4 — بازبینی QA): - مزیت اصلی منفی و پایین‌تر از کارمزدهاست و ادعای مرکزی فرضیه را رد می‌کند. فرضیه می‌گوید fade، «0.4-0.6% reversal move» را شکار می‌کند؛ sandbox مقدار avg_trade_return_pct -0.025% را اندازه‌گیری می‌کند -- منفی و یک مرتبه بزرگی پایین‌تر از هم ادعا و کف کارمزد 0.15% futures است. شواهد تأییدکننده یک no-edge واقعی (نه صرفاً نویز): profit_factor 0.518، Sharpe -1.53 (CI [-2.73، +0.07])، win_rate 0.50 با reward/risk برابر INVERTED (avg_loss $338 ~= 2x avg_win $175)، omega_ratio 0.35. نکته مهم اینکه این نتیجه BECAUSE loosening تکرار iter-3 ظاهر شد (entry_z 1.2->0.8، regime_threshold 0.55->0.65) و معاملات بیشتری افزود: ورودهای اضافی در افراط‌های ضعیف‌تر جریان فعال شدند که NOT revert نشدند و میانگین مزیت را منفی کردند. این شواهد مستقیم نشان می‌دهد سیگنال taker-flow-exhaustion هیچ reversal alphaای ندارد که از هزینه‌ها عبور کند -- نوارهای دارای عدم‌تعادل شدید aggressor در این آستانه‌ها به‌طور نظام‌مند mean-revert نمی‌کنند. - تعداد معاملات هنوز پایین‌تر از کف قابلیت اندازه‌گیری است. iter-3 معاملات را از 6 به 26 طی 363 روز (~26/سال) افزایش داد، اما این مقدار همچنان بسیار پایین‌تر از کف ~100 معامله لازم برای تفکیک مزیت از نویز است (L16؛ تلاش‌های هم‌خانواده BTC aggressor-imbalance/taker-ratio در 16 معامله متوقف شدند). با 26 معامله و skew برابر -4.83 / kurtosis برابر 43 (که یک زیان -$945 غالب است)، معیارها همچنان تحت سلطه نویزند -- بازه Sharpe CI از -2.73 تا +0.07 را دربرمی‌گیرد. توسعه‌دهنده بین دو رژیم ناموفق گیر افتاده است: gate سخت‌گیرانه‌تر -> غیرقابل‌اندازه‌گیری (6 معامله)، gate سهل‌گیرانه‌تر -> مزیت تقریباً قابل‌اندازه‌گیری اما منفی (26 معامله، -0.025%/معامله). هر دو شکست می‌خورند.
گزارش استراتژی

Stratmill ابزاری برای پژوهش و معامله آزمایشی است، نه مشاوره مالی یا کارگزار. نتایج بک‌تست و معامله آزمایشی فرضی هستند. معامله‌گری با ریسک زیان همراه است.