सामग्री पर जाएं
सभी रणनीतियाँ

रणनीतियाँ

BTC नकद-और-कैरी तिमाही आधार कन्वर्जेन्स, मार्केट-न्यूट्रल (BTCUSDT.BINANCE_SPOT लॉन्ग + निकटतम-समाप्ति BTC USD-M DATED QUARTERLY फ़्यूचर शॉर्ट, DETERMINISTICALLY-CONVERGENT कॉन्टैंगो आधार लेने के लिए सेटलमेंट तक होल्ड — NOT perp funding, समाप्ति पर रोल, 2-पैरामीटर)

परिणाम: परित्यक्त

BtcQuarterlyBasisConvergenceCarryNeutral

परिणाम सारांश

इस रणनीति ने फ़ैक्टरी की मृत perp-funding कैरी से सचमुच अलग बढ़त प्रस्तावित की थी—डेल्टा-न्यूट्रल BTC कैश-एंड-कैरी, जो दिनांकित तिमाही भविष्य-अनुबंधों के नियतात्मक रूप से अभिसरित होने वाले आधार-अंतर से लाभ लेती, सेटलमेंट तक रखी जाती और हर तिमाही केवल दो समायोज्य पैरामीटर के साथ रोल होती। इसका बैकटेस्ट कभी नहीं हुआ: 3 प्रयासों में रन विफल रहा, क्योंकि इंजन तिमाही लेग 'BTCUSDT_230929.BINANCE' के लिए funding इतिहास प्राप्त नहीं कर सका। उसने दिनांकित अनुबंध को perp मान लिया और सटीकता के लिए निष्पादन रोक दिया। बैकटेस्ट, बैकटेस्ट समीक्षा, अनुकूलन या विश्लेषक चरण तक पहुँचे बिना, रणनीति आर्थिक औचित्य के बजाय डेटा/बुनियादी ढाँचे की निर्भरता के कारण छोड़ दी गई। परिकल्पना में साफ़ चेतावनी थी कि तिमाही-अनुबंध डेटा की उपलब्धता निर्णायक निर्भरता है, और पाइपलाइन ठीक उसी जगह रुकी।

परिकल्पना

MARKET-NEUTRAL कैश-एंड-कैरी BTC पर QUARTERLY-FUTURE बेसिस से लाभ लेती है, जो इस फ़ैक्टरी में विफल हो चुकी हर फंडिंग/परपेचुअल कैरी से मूलतः अलग है। विफल कैरी (BTC/AVAX/BNB/ETH स्पॉट-परपेचुअल, सभी fee_edge) PERP फंडिंग पर निर्भर थीं—एक पतला (~1bp/8h माध्यिका), गैर-कन्वर्जेंट नकदी प्रवाह, जो कभी राउंड-ट्रिप लागत से अधिक नहीं होता। DATED तिमाही फ़्यूचर प्रकृति में अलग है: उसे स्पॉट AT SETTLEMENT तक कन्वर्ज होना ही है (नियतात्मक, संविदात्मक), और BTC तिमाही कॉन्ट्रैक्ट आम तौर पर 5-15% ANNUALIZED के स्थायी CONTANGO में……और दिखाएँकम दिखाएँ

MARKET-NEUTRAL कैश-एंड-कैरी BTC पर QUARTERLY-FUTURE बेसिस से लाभ लेती है, जो इस फ़ैक्टरी में विफल हो चुकी हर फंडिंग/परपेचुअल कैरी से मूलतः अलग है। विफल कैरी (BTC/AVAX/BNB/ETH स्पॉट-परपेचुअल, सभी fee_edge) PERP फंडिंग पर निर्भर थीं—एक पतला (~1bp/8h माध्यिका), गैर-कन्वर्जेंट नकदी प्रवाह, जो कभी राउंड-ट्रिप लागत से अधिक नहीं होता। DATED तिमाही फ़्यूचर प्रकृति में अलग है: उसे स्पॉट AT SETTLEMENT तक कन्वर्ज होना ही है (नियतात्मक, संविदात्मक), और BTC तिमाही कॉन्ट्रैक्ट आम तौर पर 5-15% ANNUALIZED के स्थायी CONTANGO में ट्रेड करते हैं (~90-दिन की होल्ड पर 125-375 बीपीएस)—यह ~0.30% दो-लेग राउंड-ट्रिप से परिमाण के एक क्रम अधिक है, और यह L1 की >20bps/चक्र सीमा को बड़े अंतर से पार करता है, क्योंकि बेसिस टर्म प्रीमियम है, फंडिंग टिक नहीं। संरचना: LONG BTC स्पॉट + समान नॉशनल पर निकटतम सूचीबद्ध BTC USD-M तिमाही कॉन्ट्रैक्ट SHORT (डेल्टा-न्यूट्रल), सेटलमेंट तक (या उसके निकट) होल्ड करें ताकि कन्वर्जेंस लगभग ONE एंट्री राउंड-ट्रिप लागत और बिना एग्ज़िट चर्न के हासिल हो (लेग अपने आप कन्वर्ज होते हैं), फिर अगली तिमाही में रोल करें। यह बार-बार आने वाले ALL घातकों से बचता है: FEE_EDGE — बेसिस शुल्क से बहुत बड़ा है, और सेटलमेंट तक होल्ड करने का अर्थ है हर तिमाही लगभग 2 फ़िल, लगभग शून्य टर्नओवर; MULTI-REGIME — बुल AND बेयर, दोनों में बेसिस मौजूद है और कन्वर्ज होता है (लॉन्ग-ओनली टाइमर की तरह किसी एक बाज़ार-व्यवस्था का बीटा प्रभाव नहीं); OVERFIT — 2 पैरामीटर (एंट्री-बेसिस सीमा, रोल का समय), कोई चयन सतह नहीं; और यह छोड़ी गई रिवर्शन श्रेणी का हिस्सा नहीं है। यह कम प्रतिनिधित्व वाले क्रॉस-वेन्यू (7.3%) और मार्केट-न्यूट्रल दिशा समूहों को पूरा करता है। CRITICAL DATA DEPENDENCY (ताकि लूप करने के बजाय तुरंत विफल हो): इसके लिए कैटलॉग में मौजूद DATED BTC USD-M तिमाही कॉन्ट्रैक्ट का ऐतिहासिक कलाइन डेटा आवश्यक है—डेवलपर को कोडिंग BEFORE बैकटेस्ट विंडो के लिए तिमाही फ़्यूचर का इतिहास उपलब्ध होने की पुष्टि करनी चाहिए; यदि केवल परपेचुअल/स्पॉट बार उपलब्ध हों, तो तुरंत छोड़ दें (परपेचुअल को विकल्प न बनाएं, इससे यह फिर मृत फंडिंग कैरी बन जाएगी)।

इटरेशन 3 लेयर-3 की एकमात्र बाधा ठीक करता है: सैंडबॉक्स स्मोक टेस्ट 300 सेकंड से अधिक चला। प्रति-बार मेरा काम पहले से O(1) है (तिमाही श्रृंखला पर स्थिर आकार का लूप—इतिहास को फिर से स्कैन नहीं करता, डेटा पर प्रति बार min()/sorted() नहीं चलाता), इसलिए सामान्य ‘इतिहास के साथ प्रति-बार काम बढ़ने’ वाला निदान लागू नहीं था। असली लागत DATA VOLUME थी: स्पॉट 1-DAY की अवधि 2017→2026 (~9 वर्ष, कैटलॉग फ़ाइल-सीमा से सत्यापित) है और 11 तिमाही अनुबंधों ने 4-HOUR पर ~12हज़ार अतिरिक्त बार इवेंट जोड़े; इसलिए संयुक्त बहु-इंस्ट्रूमेंट……और दिखाएँकम दिखाएँ

इटरेशन 3 लेयर-3 की एकमात्र बाधा ठीक करता है: सैंडबॉक्स स्मोक टेस्ट 300 सेकंड से अधिक चला। प्रति-बार मेरा काम पहले से O(1) है (तिमाही श्रृंखला पर स्थिर आकार का लूप—इतिहास को फिर से स्कैन नहीं करता, डेटा पर प्रति बार min()/sorted() नहीं चलाता), इसलिए सामान्य ‘इतिहास के साथ प्रति-बार काम बढ़ने’ वाला निदान लागू नहीं था। असली लागत DATA VOLUME थी: स्पॉट 1-DAY की अवधि 2017→2026 (~9 वर्ष, कैटलॉग फ़ाइल-सीमा से सत्यापित) है और 11 तिमाही अनुबंधों ने 4-HOUR पर ~12हज़ार अतिरिक्त बार इवेंट जोड़े; इसलिए संयुक्त बहु-इंस्ट्रूमेंट स्ट्रीम (~15हज़ार इवेंट, 12 इंस्ट्रूमेंट लेग, हर एक के साथ शुल्क/विश्लेषण/बेसलाइन हिसाब) ने बजट पार कर दिया। सबसे छोटा कारगर सुधार पूरी (क्रेडिट सही, रोल सत्यापित) रणनीति का कोड जस का तस रखता है और केवल कॉन्फ़िगरेशन से डेटा का दायरा घटाता है: (1) श्रृंखला को 11 से घटाकर लगातार 8 अनुबंध करें (फिर भी लगभग 2 वर्ष, 2023H2–2025H1, 2023 बेयर-बाज़ार से उबरने की अवधि और 2024 बुल को समेटता है—बहु-रीजीम, ~8 कन्वर्जेंस, इटरेशन-2 के n=1 वाले विफल परिणाम से स्पष्ट रूप से अधिक निदानक्षम), और (2) तिमाही अतिरिक्त डेटा का अंतराल 4-HOUR से बढ़ाकर 12-HOUR करें (2 बार/दिन से ~360 प्रति अनुबंध बनाम ~1090)। इससे इवेंट बजट ~15हज़ार से घटकर ~6.1हज़ार (~2.4×) होगा और इंस्ट्रूमेंट 12 से घटकर 9 होंगे; इससे रन 300 सेकंड से काफी कम होना चाहिए, जबकि 12-HOUR रिज़ॉल्यूशन ~90-दिन के आधार कैरी के लिए ज़रूरत से कहीं महीन है और 1-DAY प्राथमिक समय-सीमा से अब भी DIFFERENT समय-सीमा है (इसलिए उसी समय-सीमा संरेखण बाधा से मुक्त रहता है, जिसमें समाप्त अनुबंध अन्यथा डेडलॉक कर देते)। मैंने सत्यापित किया कि सभी 8 अनुबंधों में 12-HOUR बार मौजूद हैं (कोई तिमाही चुपचाप नहीं छूटी) और वे बिना अंतराल वाली लगातार Sep23→Jun25 श्रृंखला बनाते हैं, इसलिए रोल निरंतर रहता है। कोड लॉजिक, इम्पोर्ट या दो समायोज्य पैरामीटर नहीं बदले—लेयर 1–2 और सत्यापित रोल व्यवहार कायम हैं; प्रदर्शन बजट में फिट करने के लिए केवल अतिरिक्त डेटा सूची और उसकी समय-सीमा बदली गई।

backtest_failed: RuntimeError: परपेचुअल लेग 'BTCUSDT_230929.BINANCE' के लिए Funding डेटा उपलब्ध नहीं — ऑन-डिमांड संग्रह विफल हुआ या वेन्यू में funding इतिहास नहीं है (सटीकता के लिए बैकटेस्ट अवरुद्ध; बायपास करने हेतु SF_DISABLE_ONDEMAND_FUNDING=1 सेट करें) Traceback (most recent call last): File "/opt/strategy-factory/src/agents/backtest_agent.py", line 190, in _run_backtest await self._ensure_funding_for_perp_legs(instrument_id, extra_instrs) File "/opt/strategy-factory/src/agents/backtest_agent.py", line 406, in _ensure_funding_for_perp_legs raise RuntimeError( RuntimeError: परपेचुअल लेग 'BTCUSDT_230929.BINANCE' के लिए Funding डेटा उपलब्ध नहीं — ऑन-डिमांड संग्रह विफल हुआ या वेन्यू में funding इतिहास नहीं है (सटीकता के लिए बैकटेस्ट अवरुद्ध; बायपास करने हेतु SF_DISABLE_ONDEMAND_FUNDING=1 सेट करें)

कार्यान्वयन

मार्केट-न्यूट्रल BTC कैश-एंड-कैरी, जो DATED तिमाही-फ़्यूचर आधार से लाभ लेता है और लगातार तिमाहियों की शृंखला में ROLLS। प्राथमिक = BTCUSDT.BINANCE_SPOT (1-DAY, सतत, समय-चक्र चलाता है); अतिरिक्त = लगातार आठ BTC USD-M दिनांकित तिमाही कॉन्ट्रैक्ट्स (BTCUSDT_230929 … 250627), 12-HOUR बार पर (प्राथमिक से अधिक मोटी, अलग समय-सीमा, ताकि एक्सपायर हो चुके/अभी सूचीबद्ध न हुए कॉन्ट्रैक्ट उसी समय-सीमा के अलाइनमेंट अवरोध को न रोकें और बहु-इंस्ट्रूमेंट इवेंट स्ट्रीम छोटी रहे)। प्रत्येक स्पॉट बार पर यह अभिसरण के लिए पर्याप्त समय……और दिखाएँकम दिखाएँ

मार्केट-न्यूट्रल BTC कैश-एंड-कैरी, जो DATED तिमाही-फ़्यूचर आधार से लाभ लेता है और लगातार तिमाहियों की शृंखला में ROLLS। प्राथमिक = BTCUSDT.BINANCE_SPOT (1-DAY, सतत, समय-चक्र चलाता है); अतिरिक्त = लगातार आठ BTC USD-M दिनांकित तिमाही कॉन्ट्रैक्ट्स (BTCUSDT_230929 … 250627), 12-HOUR बार पर (प्राथमिक से अधिक मोटी, अलग समय-सीमा, ताकि एक्सपायर हो चुके/अभी सूचीबद्ध न हुए कॉन्ट्रैक्ट उसी समय-सीमा के अलाइनमेंट अवरोध को न रोकें और बहु-इंस्ट्रूमेंट इवेंट स्ट्रीम छोटी रहे)। प्रत्येक स्पॉट बार पर यह अभिसरण के लिए पर्याप्त समय वाले LIVE निकटतम एक्सपायरी तिमाही की पहचान करता है (≥ min_entry_days), वार्षिकीकृत आधार की गणना करता है ((फ़्यूचर − स्पॉट)/स्पॉट × 365/एक्सपायरी तक दिन), और स्थिति खाली होने पर आधार ≥ entry_basis_annual होने पर कैरी खोलता है: समान-नॉशनल स्पॉट (CASH-सुरक्षित BUY) के LONG + तिमाही में SHORT (BINANCE MARGIN), डेल्टा-न्यूट्रल। यह सेटलमेंट से पहले roll_buffer_days तक HOLDS, दोनों लेग CLOSES, फिर अगले सक्रिय फ्रंट-क्वार्टर में रोल करता है—सालाना लगभग 4 अभिसरण। अनहेज्ड-लेग सुरक्षा, यदि कोई एक लेग अकेला मौजूद हो, तो दोनों लेग बंद कर देती है। हर कॉन्ट्रैक्ट की एक्सपायरी सिंबल से पार्स की जाती है; साइज़िंग लीनियर (नॉशनल/कीमत) और सीमित, पाथ-इंडिपेंडेंट है। ट्यून करने योग्य दो पैरामीटर: entry_basis_annual, roll_buffer_days।

सत्यापन परिणाम

सत्यापन विफल (लेयर 3 — सैंडबॉक्स बैकटेस्ट): स्मोक टेस्ट में 300 सेकंड की वॉल-क्लॉक सीमा पार हो गई। इसका लगभग हमेशा अर्थ है कि प्रति-बार काम इतिहास के साथ बढ़ता है—जैसे हर बार फंडिंग/पूरक श्रृंखला को फिर से स्कैन करना, या हर बार calculate_signal()/on_bar() के भीतर सूची बनाकर min()/sorted() चलाना। __init__ में क्रमबद्ध टाइमस्टैम्प सरणियाँ ONCE पहले से तैयार करें और द्विभाजन खोज का उपयोग करें, या टाइमस्टैम्प के आधार पर लुकअप कैश करें, ताकि प्रति-बार लागत O(log n) हो, O(n) नहीं।

extra_instruments को FULL BTC तिमाही श्रृंखला (~2020 से 16-20 कॉन्ट्रैक्ट) तक बढ़ाएँ। सैंडबॉक्स सीमा में रहने के लिए मोटे 12H/1D तिमाही बार इस्तेमाल करें, ताकि metrics_reliable=true हो और वॉक-फ़ॉरवर्ड विंडो में हर एक में कई कन्वर्जेन्स हों। केवल कॉन्फ़िगरेशन विस्तार — रोल लॉजिक मनमानी लंबाई की श्रृंखलाएँ पहले से संभालता है।

अभिसरण की संख्या सीमांत है (8) और metrics_reliable=false — iter-1 में लक्षित लगभग 16-20 से कम। डेवलपर ने Layer-3 बजट के लिए श्रृंखला को 8 कॉन्ट्रैक्ट्स तक सीमित किया। विफल मैक्रो ट्रेंड-फ़ॉलोअर्स के UNLIKE, यह विन्यास में सुधार योग्य है, कोई अंतर्निहित सीमा नहीं: BTC के ऐतिहासिक दिनांकित तिमाही कॉन्ट्रैक्ट्स (लगभग 2020 तक) सूचीबद्ध करके अधिक अभिसरण आसानी से हासिल किए जा सकते हैं। अहम बात यह है कि n=8 पर भी एज को निदानात्मक समर्थन मिलता है: शार्प CI [1.14, 46.66] की निचली सीमा POSITIVE है (शून्य को शामिल नहीं करती) और वितरण संतुलित है (स्क्यू -0.56, कर्टोसिस 2.37)—यह उन ट्रेंड-फ़ॉलोअर्स से स्पष्ट भिन्न है जिनके CI में बहुत नकारात्मक मान शामिल थे। नियतात्मक-अभिसरण एज के कारण 8 लगभग स्वतंत्र घटनाएँ वास्तविक साक्ष्य हैं, महज़ संयोग नहीं।

मुख्य मूल्यांकन वॉक-फ़ॉरवर्ड कन्वर्जेन्स (विस्तारित श्रृंखला) पर करें, 15-दिन के होल्डआउट पर नहीं; यदि होल्डआउट गेट वैध तिमाही-होल्ड कैरी को रोकता है, तो ऑपरेटर को सूचित करें।

होराइज़न संबंधी सावधानी (मैक्रो रणनीतियों की तरह): ~90-दिन की होल्ड के कारण 15-दिन के होल्डआउट में लगभग 0 बंद कन्वर्जेन्स होंगे, इसलिए होल्डआउट गेट का मूल्यांकन करना संरचनात्मक रूप से कठिन है। ट्रेंड फ़ॉलोअर की तुलना में बाधा कम है, क्योंकि विस्तारित श्रृंखला में निदान के लिए पर्याप्त कन्वर्जेन्स और वॉक-फ़ॉरवर्ड विंडो हैं; फिर भी ऑपरेटर को ध्यान रखना चाहिए कि तिमाही-होल्ड कैरी के लिए होल्डआउट को होराइज़न के अनुसार संभालना होगा।

विस्तारित श्रृंखला के पूर्ण बैकटेस्ट में डेल्टा-न्यूट्रैलिटी और हर तिमाही के आधार-अंतर के योगदान की पुष्टि करें।

विश्लेषकों की दो विवेक-जाँचें (दोनों कोड दोष नहीं): (1) exposure_pct 227% — capital_frac 0.45/लेग पर डेल्टा-न्यूट्रल स्पॉट+शॉर्ट-फ़्यूचर जोड़ी के लिए अपेक्षित सकल लगभग 0.90x है; 227% संभवतः सकल-notional/मूल्यांकित-मार्क प्रभाव है (बीटा 0.0105, max_dd 3.24%, लगभग सममित largest_win/हानि से पुष्टि होती है कि पोर्टफ़ोलियो IS न्यूट्रल है), लेकिन विस्तारित श्रृंखला में आकार का विचलन न होने की पुष्टि करें। (2) avg_loss ($13,905) avg_win ($12,384) से win_rate 0.5625 पर थोड़ा अधिक है — शुद्ध लाभ है, लेकिन कुछ तिमाहियों में प्रतिकूल कन्वर्जेन्स होता है (बैकवर्डेशन/रोल से पहले आधार का बढ़ना); पुष्टि करें कि लाभ केवल एक या दो उच्च कॉन्टैंगो तिमाहियों से नहीं आया।

कोड में कोई समस्या नहीं — रोल सही है और मनमानी लंबाई की श्रृंखला पर दोबारा इस्तेमाल किया जा सकता है।

CREDIT (कोई दोष नहीं): ROLL मेरे iter-1 अनुरोध के अनुसार सही ढंग से लागू है — _candidate रनवे के साथ लाइव निकटतम-समाप्ति तिमाही चुनता है (3-दिन की पुरानापन _live जाँच + प्रति-कॉन्ट्रैक्ट _dte), सेटलमेंट से पहले roll_buffer_days तक होल्ड करता है, फिर अगली फ्रंट तिमाही में रोल करता है; समाप्ति प्रति कॉन्ट्रैक्ट निकाली जाती है, अनहेज्ड लेग से बचाव, डेल्टा-न्यूट्रल समान-notional लेग (लीनियर USDT-मार्जिन वाला), केवल स्पॉट BUY (CASH-सुरक्षित), पथ-स्वतंत्र आकार पर सीमा, प्रति-बार O(1) काम। 12-HOUR तिमाही टाइमफ़्रेम (1-DAY प्राथमिक से अलग) समाप्त/असूचीबद्ध कॉन्ट्रैक्ट के लिए समान-टाइमफ़्रेम संरेखण अवरोध से सही ढंग से बचता है। तंत्र सत्यापित: 8 साफ़ 90-दिन कन्वर्जेन्स, सालाना लगभग 4, शुल्क के बाद भी संभव (1.06% कमीशन)।

पुनरावृत्ति इतिहास

सत्यापन विफल (स्तर 4 — QA समीक्षा): - परिकल्पना में बताई गई ‘एक्सपायरी पर रोल’ ROLLING MULTI-QUARTER डिज़ाइन NOT लागू है। शीर्षक (‘एक्सपायरी पर रोल’) और विवरण (‘फिर अगली तिमाही में रोल करें’) एक रोलिंग सीरीज़ बताते हैं, लेकिन कोड SINGLE निकटतम कॉन्ट्रैक्ट (BTCUSDT_241227) में ट्रेड करता है और एक कन्वर्जेंस के बाद रुक जाता है—इसमें कोई रोल नहीं है। इसी वजह से बैकटेस्ट में ठीक एक ट्रेड आता है। प्रति-कॉन्ट्रैक्ट कैरी लॉजिक सही है, लेकिन इसे दोहराने योग्य, मापने योग्य रणनीति बनाने वाला रोलिंग तंत्र मौजूद नहीं है। -……और दिखाएँकम दिखाएँ

सत्यापन विफल (स्तर 4 — QA समीक्षा): - परिकल्पना में बताई गई ‘एक्सपायरी पर रोल’ ROLLING MULTI-QUARTER डिज़ाइन NOT लागू है। शीर्षक (‘एक्सपायरी पर रोल’) और विवरण (‘फिर अगली तिमाही में रोल करें’) एक रोलिंग सीरीज़ बताते हैं, लेकिन कोड SINGLE निकटतम कॉन्ट्रैक्ट (BTCUSDT_241227) में ट्रेड करता है और एक कन्वर्जेंस के बाद रुक जाता है—इसमें कोई रोल नहीं है। इसी वजह से बैकटेस्ट में ठीक एक ट्रेड आता है। प्रति-कॉन्ट्रैक्ट कैरी लॉजिक सही है, लेकिन इसे दोहराने योग्य, मापने योग्य रणनीति बनाने वाला रोलिंग तंत्र मौजूद नहीं है। - UNMEASURABLE — सैंडबॉक्स ने केवल 1 कन्वर्जेंस (total_trades 2 = एक लेग जोड़ी) उत्पन्न किया, metrics_reliable=false (‘केवल 1 दैनिक रिटर्न’), data_days 1, Sharpe/PSR/CI सभी null। एक ट्रेड से निदान नहीं किया जा सकता (L16/L26): 2024-H2 बुल में एक अनुकूल बेसिस कैप्चर से निरंतरता प्रमाणित नहीं होती, और n=1 पर 3-चरणीय ऑप्टिमाइज़ेशन (संवेदनशीलता, वॉक-फ़ॉरवर्ड 3 विंडो, होल्डआउट) नहीं चल सकता। यह रोल की कमी का संरचनात्मक परिणाम है—सेटलमेंट तक रखे गए कैरी में सालाना लगभग 4 ट्रेड होते हैं, इसलिए एक कॉन्ट्रैक्ट से केवल 1 मिलता है। - CREDIT (कोई दोष नहीं) + रोलिंग संस्करण के लिए डेटा सावधानी: एकल-कॉन्ट्रैक्ट कार्यान्वयन CORRECT है और तंत्र वास्तव में नया और आशाजनक है—वास्तविक DATED तिमाही पढ़ता है (परपेचुअल नहीं, इसलिए NOT मृत फंडिंग कैरी), वार्षिकीकृत बेसिस की सही गणना करता है, डेल्टा-न्यूट्रल समान-नॉशनल लेग (लीनियर USDT-मार्जिन वाला, जिससे COIN-M जाल से बचता है), केवल स्पॉट लेग BUY (CASH-सुरक्षित), सिंबल से एक्सपायरी पार्स की गई, अनहेज्ड-लेग गार्ड, कैप्ड पाथ-इंडिपेंडेंट साइज़िंग; एक कन्वर्जेंस शुल्क के बाद सकारात्मक था (+1.80%), और कमीशन सकल का 0.64% था—शुल्क चुकाने की निर्णायक क्षमता के साथ, मृत रिवर्शन की श्रृंखला के बाद पहला वास्तव में अलग बाज़ार-न्यूट्रल तंत्र। रोल बनाते समय प्रति-तिमाही कलाइन कवरेज सत्यापित करें, ताकि कोई कॉन्ट्रैक्ट अनुपलब्ध होने पर तिमाहियाँ चुपचाप छूट न जाएँ।

RuntimeError: परपेचुअल लेग 'BTCUSDT_230929.BINANCE' के लिए Funding डेटा उपलब्ध नहीं — ऑन-डिमांड संग्रह विफल हुआ या वेन्यू में funding इतिहास नहीं है (सटीकता के लिए बैकटेस्ट अवरुद्ध; बायपास करने हेतु SF_DISABLE_ONDEMAND_FUNDING=1 सेट करें) Traceback (most recent call last): File "/opt/strategy-factory/src/agents/backtest_agent.py", line 190, in _run_backtest await self._ensure_funding_for_perp_legs(instrument_id, extra_instrs) File "/opt/strategy-factory/src/agents/backtest_agent.py", line 406, in _ensure_funding_for_perp_legs raise RuntimeError( RuntimeError: परपेचुअल लेग 'BTCUSDT_230929.BINANCE' के लिए Funding डेटा उपलब्ध नहीं — ऑन-डिमांड संग्रह विफल हुआ या वेन्यू में funding इतिहास नहीं है (सटीकता के लिए बैकटेस्ट अवरुद्ध; बायपास करने हेतु SF_DISABLE_ONDEMAND_FUNDING=1 सेट करें)

परिणाम सारांश

परिकल्पना ने पुराने-तिमाही kline/डेटा उपलब्धता को तुरंत विफल होने वाली निर्भरता बताया था, और यह निर्णायक साबित हुआ: तिमाही-आधार कैरी का मूल्यांकन करने से पहले फ्यूचर्स लेग के लिए बैकटेस्ट हार्नेस की funding-डेटा आवश्यकता पूरी करनी होगी (या SF_DISABLE_ONDEMAND_FUNDING के ज़रिए बायपास करना होगा)।

इसे 3 पुनरावृत्तियों के बाद छोड़ दिया गया, जब बैकटेस्ट RuntimeError के साथ विफल हुआ: 'BTCUSDT_230929.BINANCE' लेग के लिए funding डेटा उपलब्ध नहीं था — इंजन ने दिनांकित तिमाही को funding इतिहास की आवश्यकता वाले perp की तरह माना, जिससे सटीकता के लिए बैकटेस्ट अवरुद्ध हुआ।

बाज़ार-तटस्थ BTC कैश-एंड-कैरी, जो BTCUSDT स्पॉट में लॉन्ग और निकटतम समाप्ति वाले दिनांकित USD-M तिमाही भविष्य-अनुबंध में शॉर्ट पोज़िशन लेती है। पतले perp funding के बजाय नियतात्मक रूप से अभिसरित होने वाले कंटैंगो आधार-अंतर (~5-15% वार्षिकीकृत) से लाभ लेने के लिए पोज़िशन सेटलमेंट तक रखी जाती है।

प्रदर्शन के कोई मेट्रिक्स मौजूद नहीं — बैकटेस्ट पूरा ही नहीं हुआ, इसलिए कोई रिटर्न, Sharpe या ट्रेड संख्या नहीं है; अनुकूलन चरण तक पहुँचा ही नहीं गया।

छोड़ने का कारण

backtest_failed: RuntimeError: परपेचुअल लेग 'BTCUSDT_230929.BINANCE' के लिए Funding डेटा उपलब्ध नहीं — ऑन-डिमांड संग्रह विफल हुआ या वेन्यू में funding इतिहास नहीं है (सटीकता के लिए बैकटेस्ट अवरुद्ध; बायपास करने हेतु SF_DISABLE_ONDEMAND_FUNDING=1 सेट करें) Traceback (most recent call last): File "/opt/strategy-factory/src/agents/backtest_agent.py", line 190, in _run_backtest await self._ensure_funding_for_perp_legs(instrument_id, extra_instrs) File "/opt/strategy-factory/src/agents/backtest_agent.py", line 406, in _ensure_funding_for_perp_legs raise RuntimeError( RuntimeError: परपेचुअल लेग 'BTCUSDT_230929.BINANCE' के लिए Funding डेटा उपलब्ध नहीं — ऑन-डिमांड संग्रह विफल हुआ या वेन्यू में funding इतिहास नहीं है (सटीकता के लिए बैकटेस्ट अवरुद्ध; बायपास करने हेतु SF_DISABLE_ONDEMAND_FUNDING=1 सेट करें)

Stratmill एक रिसर्च और पेपर-ट्रेडिंग टूल है, वित्तीय सलाह या ब्रोकर नहीं। बैकटेस्ट और पेपर परिणाम काल्पनिक हैं। ट्रेडिंग में नुकसान का जोखिम होता है।