जब कॉन्फ़िगरेशन फ़ील्ड निष्क्रिय हों: बैकटेस्ट लागत | Stratmill
सारांश
यह कॉन्फ़िगरेशन नोट उन सेटिंग्स में अंतर करता है जो बैकटेस्ट की पहचान में दिखाई देती हैं और उन सेटिंग्स में जो वास्तव में सिम्युलेटेड ट्रेडिंग लागत को प्रभावित करती हैं। वर्णित केस स्टडी में सभी पंजीकृत रन वेक्टराइज़्ड, रिटर्न-टू-एक्सपायरी पथ का उपयोग करते हैं। कॉन्फ़िगर किए गए निष्पादन-मूल्य, कमीशन-दर और स्लिपेज-दर फ़ील्ड उस पथ को नहीं दिए जाते, और कोट-साइड फ़िल उस इवेंट-ड्रिवन ब्रोकर से जुड़े हैं जिसे वेक्टराइज़्ड रन बनाते ही नहीं। ये सेटिंग्स कॉन्फ़िगरेशन में बनी रहती हैं, क्योंकि इन्हें हटाने से मौजूदा रन की हैश की गई पहचान बदल जाएगी।
मॉडल में शामिल लागतें सेटअप फ़ाइल से अलग पढ़ी जाती हैं: ऑप्शन के प्रवेश और निकास स्प्रेड, हर रीबैलेंस पर अनुमानित हेज स्प्रेड, और प्रति कॉन्ट्रैक्ट या प्रति शेयर कमीशन। नोट के अनुसार, बताई गई आबादी में दर्ज कुल-स्लिपेज फ़ील्ड null है, जबकि लागतें लागू हैं, क्योंकि वह पथ लागत का कुल योग दर्ज नहीं करता। ऑडिट के लिए यह उपयोगी सीख है: केवल कॉन्फ़िगरेशन मान या अनुपस्थित लागत मेट्रिक से यह तय नहीं होता कि बैकटेस्ट में कितनी लागत लगी। निष्कर्ष निर्दिष्ट कार्यान्वयन पर लागू होते हैं; रनर या लागत-संबंधी व्यवस्था बदलने पर इनकी फिर जाँच करनी चाहिए।
मुख्य विचार
- कॉन्फ़िगरेशन फ़ील्ड रन की हैश की गई पहचान को प्रभावित कर सकते हैं, भले ही निष्पादन पथ उनका उपयोग न करे।
- यहाँ वर्णित वेक्टराइज़्ड रिटर्न-टू-एक्सपायरी पथ कॉन्फ़िगर की गई दर-आधारित कमीशन और स्लिपेज फ़ील्ड का उपयोग नहीं करता।
- अलग-अलग ऑप्शन, हेज और परिसमापन लागत घटकों से सिमुलेशन की मॉडलित लागतें मिलती हैं।
- समेकित स्लिपेज फ़ील्ड का null होना यह साबित नहीं करता कि कोई लागत नहीं वसूली गई।
- लागत की व्याख्या विशिष्ट रनर और उसके डेटा प्रवाह का पता लगाने पर निर्भर करती है।
टैग
पूरा पाठ
# base.yaml ```yaml # Three fields below are inert on the path this case study runs: `execution.execution_price`, # `commission.rate` and `slippage.rate`. Every registered backtest here is `ret_to_expiry`, # which `case_studies/utils/backtest_runner.py` routes to `_run_htm_daily_mtm`, and that call # is not passed `cost_spec` - the only thing that carries these rates into a run. The # `quote_side` fill is read by the event-driven broker, which a `rebalance.mode: vectorized` # case study never constructs. They still reach the registered `backtest_config` and so the # hashed identity, which is why they stay: removing them would re-key 879 backtests to delete # values nothing reads. # # The costs this case study actually pays come from `_htm_backtest.py`, which reads # `config/setup.yaml::costs.components` directly - per-leg entry spread from the real option # quotes, `hedge_spread.estimate_bps_of_notional` on every hedge rebalance, # `commission.option_per_contract` and `commission.equity_per_share`, plus an exit spread on # liquidation. Verified 2026-09-12; `total_slippage` is NULL on all 879 rows because the # vectorized path records no cost totals, not because nothing was charged. account: allow_short_selling: true execution: execution_price: quote_side mark_price: price execution_mode: next_bar commission: model: percentage rate: 0.0005 slippage: model: percentage rate: 0.0002 calendar: calendar: NYSE timezone: UTC data_frequency: daily feed: timestamp_col: timestamp entity_col: symbol price_col: instr_mid close_col: close bid_col: instr_bid ask_col: instr_ask mid_col: instr_mid metadata: case_study: sp500_options ```
स्रोत के लाइसेंस के तहत श्रेय सहित पूरा पाठ दिखाया गया है। लाइसेंस: MIT
यह सारांश मूल स्रोत के आधार पर Stratmill के शोध एजेंट ने लिखा है; यह स्रोत की प्रति नहीं है।