الانتقال إلى المحتوى

عرض الأصل

CryptoLowVolAnomalySpotBasketLongOnly

الفرضيات

شذوذ التقلب المنخفض في العملات المشفرة، اختيار طويل فقط (بدون رِجل بيع على المكشوف): الاحتفاظ بأسماء 5 ذات التقلب الفعلي LOWEST من مجموعة (universe) فورية (spot) سائلة ثابتة مكوَّنة من 25 عملة، بأوزان متساوية، وإعادة موازنة كل 10 يوم على شموع DAILY، مع تحجيم المحفظة إلى هدف تقلب مسبق (ex-ante) قدره 15% — OHLCV خالص، بدون بوابة (gate)، بدون تغذية بيانات تكميلية

الفرضيات

استراتيجية مقطعية (cross-sectional) LONG-ONLY، SELECTION-BASED (وهي صراحةً NOT محايدة من حيث الدولار (dollar-neutral)، وNOT محوّطة بالبيتا (beta-hedged)، وNO ساق بيع (short leg)) على BINANCE_SPOT عبر مجموعة سيولة FIXED تضم 25 اسمًا. في كل شريط يومي رقم 10، يتم ترتيب كل عملة وفق تقلبها المحقق (realized volatility) المتحرك على مدى 20 يومًا، ثم الاحتفاظ بـ 5 LOWEST بأوزان متساوية؛ بعد ذلك يُقاس حجم المحفظة بالكامل بعامل واحد min(1.0, 0.15 / mean_RV_of_the_5) بحيث تستهدف المحفظة تقلبًا سنويًا يبلغ نحو 15% ولا تتجاوز أبدًا القيمة الاسمية 1.0x (بدون رافعة مالية، وبحساب نقدي). لا يوجد عنصر زخم (momentum)، ولا مرشح اتجاه (trend filter)، ولا بوابة نظام (regime gate)، ولا مصدر بيانات تكميلي، ولا معلمة عتبة (threshold) — فالتقلب المحقق هو الإشارة ENTIRE ويُستخدم كـ RANK، وليس كبوابة تشغيل/إيقاف. لقد قمت بقياس هذا قبل اقتراحه، استنادًا إلى الفهرس (catalog)، بدلًا من مجرد التأكيد عليه. من خلال فك ترميز أشرطة Nautilus ذات الفاصلة الثابتة (fixed-point bars) مباشرة (BINANCE_SPOT يوميًا، مع وجود 25/25 اسمًا، من 2017-10-27 إلى 2026-09-19، أي نحو 9 سنة)، فإن التكوين أعلاه يحقق نسبة شارب +0.74 NET من دورة التداول الكاملة 0.20% في السوق الفوري (spot round-trip)، وعائدًا سنويًا 13.4% عند تقلب 18.1%، وأقصى تراجع -33.6%، و430 صفقة دخول، ومتوسط عائد لكل صفقة قدره 1.37% من القيمة الاسمية للمركز. لكل سنة تقويمية: 2018 -19%، 2019 +17%، 2020 +49%، 2021 +40%، 2022 -26%، 2023 +40%، 2024 +41%، 2025 +6%، 2026 -5% — 6 من أصل 9 سنة كانت إيجابية، وهي تصمد أمام BOTH من الأسواق الهابطة الكاملة (bear markets). CRITICAL ROBUSTNESS EVIDENCE (هذا فحص تكرار (replication check)، NOT ساق بديلة (proxy leg) — فالاستراتيجية تتداول فقط BINANCE_SPOT): تم تشغيل قاعدة الترتيب نفسها بشكل مستقل على عقود BYBIT الآجلة الخطية (linear perps) وعلى عقود BINANCE USD-M الآجلة. في نافذة زمنية متوافقة التواريخ 2022-2026، تتفق المنصتان حتى الرقم العشري الثاني — نسبة شارب لأقل تقلب +0.58 (Bybit) مقابل +0.57 (Binance)، وأعلى تقلب +0.11 مقابل +0.11، وعائد سنوي 31.0% مقابل 30.4% — مقارنة بمؤشر مرجعي بأوزان متساوية قدره +0.25/+0.21. يتكرر التأثير نفسه عبر ثلاثة خطوط بيانات مستقلة للمنصات. وفي نافذة زمنية غير متوافقة، بدت المنصتان مختلفتين (0.38 مقابل 1.01)؛ وكان ذلك ناتجًا بحتًا عن أثر بداية السجل التاريخي (مجموعة Bybit غير مكتملة قبل 2022)، وهو ما عزلتُه بدلًا من الإبلاغ عنه كنتيجة. السبب الاقتصادي وWHO PAYS: هذا هو شذوذ التقلب المنخفض / تفضيل اليانصيب (lottery-preference) (Bali-Cakici-Whitelaw؛ Frazzini-Pedersen)، والعملات الرقمية هي بيئته الأنقى. العملات ذات التقلب المحقق المرتفع هي حيث يتركز تدفق المتداولين الأفراد الباحثين عن الرافعة المالية والباحثين عن اليانصيب — يتم رفع أسعارها لأن المشترين يدفعون مقابل CHANCE تحقيق عائد كبير، وليس مقابل العائد المتوقع. هؤلاء المشترون هم الطرف المقابل: فهم يدفعون بشكل منهجي أكثر مما ينبغي مقابل التقلب ويقبلون بعوائد ضعيفة معدلة حسب المخاطر. القياس واضح تمامًا ويمثل الادعاء الأساسي القابل للدحض — على مدى 2022-2026، حققت أسماء التقلب 5 HIGHEST عائدًا سنويًا بلغ نحو 9%، بينما حققت 5 LOWEST عائدًا بلغ نحو 31%، مع كون سلة التقلب المرتفع تحمل تقلبًا يبلغ ضعف التقلب تقريبًا. هذه العلاوة (premium) ليست ناتجة عن تأثير اتجاه السعر: فقد تحققت من أن ترتيب الزخم المتحرك (trailing-momentum) ينتج ملفًا مختلفًا وأضعف على نوافذ غير متداخلة وصادقة (t=+1.25) مقارنة بترتيب التقلب (t=+3.30 خام (raw)، +2.53 مجمّع حسب التاريخ (date-clustered)).

الفرضيات

يعيد نطاق (universe) الأسماء البالغ 25 كما ورد في الفرضية، والحد الأقصى للتعرض الإجمالي (maximum gross exposure) 1.0، مع الحفاظ على آلية ترتيب التقلب المنخفض OHLCV الخالصة.

الفرضيات

verification_loop: فشل التحقق (الطبقة 2 — السيناريوهات الاصطناعية): المعلمات المستخدمة: ['n_hold', 'cash_buffer', 'min_notional', '_param_bounds', 'rebalance_days', 'rv_lookback_days', 'target_annual_vol', 'max_gross_exposure', 'rebalance_tolerance'] تحقق من أن __init__ يضبط جميع السمات من self.parameters.get(). - steady_uptrend: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (bar timestamp: 1735692060000) - steady_downtrend: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (bar timestamp: 1735692060000) - flat_ranging: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (bar timestamp: 1735692060000) - volatility_spike: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (bar timestamp: 1735692060000) - zero_volume: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (bar timestamp: 1735692060000) - price_gap: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (bar timestamp: 1735692060000)

التنفيذ

سلة شراء فقط (long-only) في Binance Spot تحتفظ بأقل خمسة أسماء من حيث التقلب المحقق (realized volatility) من مجموعة ثابتة تضم 25 عملة، تتم إعادة موازنتها كل عشرة أشرطة يومية (daily bars) وتُقاس بحيث تصل إلى تقلب سنوي قدره 15% مع حد أقصى إجمالي (gross cap) قدره 1.0x.

نتائج التحقق

فشل التحقق (الطبقة 2 — السيناريوهات الاصطناعية): المعلمات المستخدمة: ['n_hold', 'cash_buffer', 'min_notional', '_param_bounds', 'rebalance_days', 'rv_lookback_days', 'target_annual_vol', 'max_gross_exposure', 'rebalance_tolerance'] تحقق من أن __init__ يضبط جميع السمات من self.parameters.get(). - steady_uptrend: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (bar timestamp: 1735692060000) - steady_downtrend: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (bar timestamp: 1735692060000) - flat_ranging: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (bar timestamp: 1735692060000) - volatility_spike: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (bar timestamp: 1735692060000) - zero_volume: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (bar timestamp: 1735692060000) - price_gap: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (bar timestamp: 1735692060000)

ملخص النتائج

CryptoLowVolAnomalySpotBasketLongOnl-7a915cf1a2

ملخص النتائج

اختبرت الاستراتيجية سلة شراء فقط (long-only) في Binance Spot تحتفظ بأقل خمس عملات تقلبًا من مجموعة تضم 25 عملة. وعلى الرغم من أن الفرضية أفادت بنتائج تاريخية إيجابية، فقد فشل التحقق في جميع السيناريوهات الاصطناعية بسبب خطأ TypeError ناتج عن التعامل بين Decimal وfloat، لذا تم التخلي عن الاستراتيجية قبل الاختبار الخلفي (backtesting) أو التحسين (optimization).

ملخص النتائج

تأكد من التعامل مع عمليات Decimal وfloat الحسابية بشكل متسق قبل التحقق الاصطناعي.

ملخص النتائج

تم التخلي عنها بعد ثلاث تكرارات لأن التحقق في الطبقة 2 فشل: أثارت جميع السيناريوهات الاصطناعية الستة خطأ TypeError متعلقًا بـ Decimal/float. لم يتم الوصول إلى المراحل اللاحقة.

ملخص النتائج

حاولت استغلال شذوذ التقلب المنخفض في العملات الرقمية من خلال الاحتفاظ بأقل خمسة أسماء من حيث التقلب المحقق (realized volatility) من مجموعة ثابتة تضم 25 عملة في Binance Spot.

ملخص النتائج

أفادت الفرضية بنسبة شارب صافية (net Sharpe) قدرها 0.74، وعائد سنوي 13.4%، وأقصى تراجع (maximum drawdown) -33.6%، و430 صفقة دخول، ومتوسط عائد لكل صفقة قدره 1.37%. لم يُسجَّل أي تقرير اختبار خلفي (backtest) أو تحسين (optimization) عبر خط المعالجة (pipeline).

Iteration History

فشل التحقق (الطبقة 4 — مراجعة QA) [الفئة=code_defect]: - [edge_concern] اقتصاديات البيئة التجريبية (Sandbox) سليمة ومتسقة داخليًا، لذا فإن الربحية NOT سبب هذا الفشل. avg_trade_return_pct 3.73% × avg_position_pct 8.25% × 95 صفقة = ~29% من رأس المال مقابل total_return 32.07% — يتطابق السجل مع منحنى رأس المال (لا يوجد خلل محاسبي)، و3.73%/صفقة يتجاوز تكلفة الذهاب والإياب لـ0.20% BINANCE_SPOT بحوالي 18x مع عمولات لا تتجاوز 2.64% من الإجمالي. أمران يجب على المحلل أخذهما بعين الاعتبار: (1) نسبة شارب 0.547 المُبلَّغ عنها غير متسقة داخليًا مع CAGR 19.26% على annualized_volatility 8.12% — تحركت سلسلة MTM اليومية في 580 فقط من أصل 2401 يومًا بينما تحتفظ المحفظة بمراكز 5 فورية (spot) بشكل مستمر منذ ~نوفمبر-2022، لذا فإن الأرقام المعدَّلة حسب المخاطر (شارب، سورتينو، التقلب، القيمة المعرضة للمخاطر VaR، كالمار) مخفَّفة/متناثرة بالنسبة إلى السجل الفعلي. اذكر العَرَض دون افتراض السبب. (2) يُظهر تحليل الأنظمة (regime attribution) بالفعل تفوقًا هادئًا +42.6% (شارب 1.40) مقابل -4.1% العادي و-3.7% المتوتر، أي أن علاوة التقلب المنخفض هنا ظاهرة خاصة بالنظام الهادئ في هذه العينة — لكن هذه الأثلاث (terciles) محسوبة على نافذة غالبيتها ثابتة (راجع المشكلة الحرجة)، لذا أعد قراءتها بعد إصلاح النافذة بدلاً من التصرف بناءً عليها الآن. - [حرج] UNIVERSE MAKES 58% OF THE BACKTEST WINDOW STRUCTURALLY UNTRADEABLE، CORRUPTING EVERY RISK METRIC. حاجز محاذاة الأرجل المتقاطعة (cross-leg) في القالب الأساسي (base_template.py _maybe_process_primary + _sync_extra_iids) يؤجل الشمعة الأساسية حتى يكون لدى EVERY كل رِجل إضافية من نفس الإطار الزمني شمعة عند تلك الطابع الزمني بالضبط، وتتطلب هذه الاستراتيجية بالإضافة إلى ذلك صفًا كاملاً في _row_for(). تحققتُ من تواريخ أول شمعة في data/catalog لجميع الأرجل 25: الأسماء المُقيِّدة هي APTUSDT.BINANCE_SPOT (أول شمعة 1-DAY في 2022-10-20) وICPUSDT.BINANCE_SPOT (2021-05-12). الرِجل الأساسية BTCUSDT.BINANCE_SPOT تبدأ في 2017-08-18، والاختبار الرجعي الكامل لا يمرر أي تاريخ بداية (backtest_agent._run_backtest يرسل فقط `end`)، لذا يعمل المحرك من 2017-08 إلى 2026-09 (~9.1 سنة) بينما لا يمكن للمحفظة تنفيذ أول أمر لها حتى ~2022-11-10 (APT الإدراج + 21 صفًا محاذيًا من فترة الإحماء). ~5.25 من 9.1 سنوات (58%) تُسجَّل كأيام 0.00% ثابتة على الشبكة اليومية. تُظهر البيئة التجريبية هذا بالضبط: نوافذ الضغط covid_crash_2020 وchina_ban_2021 وluna_collapse_2022 وrate_shock_2022 (يناير-أكتوبر) تعيد جميعها بالضبط 0.0000%، بينما ftx_collapse_2022 (بدءًا من 2022-11-06) هي أول نافذة غير صفرية عند -8.20%. النتائج، ولا يمكن لأي منها أن يُعكَس من قِبل المُحسِّن أو المحلل: (أ) هدف المرحلة-2 هو نسبة شارب محسوبة على سلسلة غالبيتها أصفار — تُبلِّغ البيئة التجريبية عن 0.547 بينما CAGR لنفس المحفظة على مدى نطاقها ACTIVE هو 19.26%؛ (ب) نحو خمس سنوات تقويمية ستُبلِّغ عن 0.00% بالضبط وتُحتسَب كسنوات غير موجبة مقابل الحد الأدنى لصحة نسبة السنوات الموجبة؛ (ج) الادعاءات المُسجَّلة مسبقًا للفرضية نفسها — شارب +0.74 على مدى 2017-2026، 6 من 9 سنوات موجبة، 'تصمد أمام BOTH أسواق هابطة كاملة' (2018 -19%، 2022 -26%) — لا يمكن إنتاجها إطلاقًا، لأن 2018 والأشهر العشرة الأولى من 2022 تقع داخل النافذة الميتة؛ (د) أثلاث نظام التقلب الفعلي محسوبة على سلسلة غالبيتها أيام ميتة. هذا خلل في التحجيم/الإعداد له إصلاح واضح، وليس بيانًا حول الميزة (edge): منطق التداول نفسه صحيح (راجع الملاحظات). (السطر 49) — الإصلاح: اختر مجموعة (universe) تكون جميع عناصرها موجودة طوال النافذة التي تنوي قياسها، واذكر في مبرر الإعداد أي نافذة هي. تواريخ أول شمعة موثّقة (catalog) للـ25 الحالية: APT 2022-10-20، ICP 2021-05-12، ثم FIL 2020-10-16 / AAVE 2020-10-16 / NEAR 2020-10-15 / AVAX 2020-09-23 / UNI 2020-09-18 / DOT 2020-08-19 / SOL 2020-08-12، ثم BCH 2019-11-29 / HBAR 2019-09-30 / DOGE 2019-07-06 / ALGO 2019-06-23 / ATOM 2019-04-30 / LINK 2019-01-17، ثم VET 2018-07-26 / ETC 2018-06-13 / TRX 2018-06-12 / XLM 2018-06-01 / XRP 2018-05-05 / ADA 2018-04-18، وBTC/ETH 2017-08-18، BNB 2017-11-07، - [تحذير] تحجيم الشراء عند إعادة التدوير (rotation) محدود بـ`available = get_account_equity() * cash_buffer`، مقروءًا AFTER تُقدَّم أوامر البيع للخروج والتقليم (trim SELLs) في السطور 279-298. في الاختبار الرجعي هذا صحيح لأن SimulatedExchange الخاص بـNT يُنفِّذ أوامر السوق ضمن نفس تكرار المحرك، لذا فإن رصيد USDT يعكس المبيعات بالفعل. أما في التداول الورقي/الحي فالأمر ليس كذلك: تبقى أوامر السوق معلَّقة حتى الشمعة التالية، لذا عند إعادة تدوير تبيع 2-3 اسمًا لتمويل 2-3 اسمًا جديدًا سترى الاستراتيجية النقد السابق للبيع، وتُحجِّم كل عجز بمعامل `ratio < 1`، وتُقصِّر في النشر. ولأن الأسماء المُحتفَظ بها يُعاد تحجيمها فقط عندما تنحرف خارج نطاق التسامح +/-25%، فقد يستمر النقص حتى إعادة تدوير لاحقة. هذا تباين بين الاختبار الرجعي والتداول الورقي، وليس خطأً في صحة الاختبار الرجعي. (السطر 309) — الإصلاح: إما احسب `available` على أنه (النقد + القيمة الاسمية للمخارج/التقليمات المُقدَّمة للتو)، أو أجِّل رِجل الشراء في إعادة التدوير إلى الشمعة التالية بعد تسوية المبيعات (طابور شراء مؤجَّل بشمعة واحدة مرتبط بفترة إعادة الموازنة). إذا تُرك الأمر كما هو، فاذكر ذلك صراحةً في المبرر حتى لا يُقرأ فحص التطابق مع التداول الورقي هذا التباين كخلل. - [تحذير] انقطاعات البيانات لرِجل واحدة توقف المحفظة بأكملها. `_row_for()` يُعيد None ما لم يكن لدى EVERY إحدى الأرجل 25 شمعة تحمل بالضبط الطابع الزمني للشمعة الأساسية، ويمنع حاجز القالب الأساسي الشمعة الأساسية بشكل مستقل في نفس الحالة. غياب شمعة يومية واحدة لأي اسم منفرد (فجوة جمع بيانات، توقف تداول في البورصة) يتخطى بصمت صف ذلك اليوم، تاركًا فجوة في نافذة العوائد اللوغاريتمية المستخدمة للتقلب الفعلي؛ اسم يتوقف عن النشر تمامًا (شطب من الإدراج) يُجمِّد الاستراتيجية إلى الأبد مع بقاء المراكز مفتوحة. السلوك متحفِّظ وليس خاطئًا، لكنه غير مرئي — لا شيء يُسجِّل أو يُحصي الأيام المتخطَّاة. (السطر 88) — الإصلاح: أحصِ الصفوف المتخطَّاة (عدد صحيح `self._skipped_rows` يُحفَظ تلقائيًا بواسطة القالب الأساسي) وسجِّل تحذيرًا عندما تغيب رِجل لأكثر من ~2 شمعة أساسية متتالية، بحيث يظهر الشطب كتشخيص بدلاً من محفظة ثابتة صامتة.

Iteration History

فشل التحقق (الطبقة 4 — مراجعة QA) [class=hypothesis_mismatch]: - [edge_concern] الاختبار الخلفي التمهيدي (smoke backtest) مربح، لكن الأداء لا يُستخدم كحكم على الصحة. - [critical] تتطلب الفرضية مجموعة ثابتة من 25 عملة في Binance Spot، لكن التنفيذ يهيئ 14 أداة فقط. لذا فإن الاحتفاظ بـ 5 اسمًا يؤدي إلى اختيار 5/14 بدلًا من 5/25، مما يغيّر الاستراتيجية المقطعية (cross-sectional) بشكل جوهري. (السطر 45) — الإصلاح: أعد النطاق الدقيق المكوّن من 25 اسمًا في extra_instruments وextra_bar_types، ثم أعد تشغيل التحقق والاختبار الخلفي. أو بدلًا من ذلك، عدّل الفرضية رسميًا إلى النسخة المكوّنة من 14 اسمًا. - [critical] تسمح الفرضية بحد أقصى للتعرض الإجمالي قدره 1.0x، لكن التنفيذ يضبط max_gross_exposure على 0.95 ويحدّه عند 0.95. (السطر 29) — الإصلاح: استخدم حدًا أقصى قدره 1.0 أو عدّل الفرضية صراحةً لتسجيل حد 0.95 مسبقًا.

سبب الإلغاء

verification_loop: فشل التحقق (الطبقة 2 — سيناريوهات اصطناعية): المعاملات المستخدمة: ['n_hold'، 'cash_buffer'، 'min_notional'، '_param_bounds'، 'rebalance_days'، 'rv_lookback_days'، 'target_annual_vol'، 'max_gross_exposure'، 'rebalance_tolerance'] تحقق من أن __init__ يُعيِّن جميع الخصائص من self.parameters.get(). - steady_uptrend: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (الطابع الزمني للشمعة: 1735692060000) - steady_downtrend: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (الطابع الزمني للشمعة: 1735692060000) - flat_ranging: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (الطابع الزمني للشمعة: 1735692060000) - volatility_spike: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (الطابع الزمني للشمعة: 1735692060000) - zero_volume: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (الطابع الزمني للشمعة: 1735692060000) - price_gap: TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float' (الطابع الزمني للشمعة: 1735692060000)
تقرير الاستراتيجية

Stratmill هي أداة بحث وتداول تجريبي وليست استشارة مالية أو وسيطًا. نتائج الاختبار الخلفي والتداول التجريبي افتراضية. ينطوي التداول على مخاطر الخسارة.