सामग्री पर जाएं
लाइब्रेरी के सभी दस्तावेज़

जब कॉन्फ़िगरेशन फ़ील्ड निष्क्रिय हों: बैकटेस्ट लागत | Stratmill

कोड Machine Learning for Trading

सारांश

यह कॉन्फ़िगरेशन नोट उन सेटिंग्स में अंतर करता है जो बैकटेस्ट की पहचान में दिखाई देती हैं और उन सेटिंग्स में जो वास्तव में सिम्युलेटेड ट्रेडिंग लागत को प्रभावित करती हैं। वर्णित केस स्टडी में सभी पंजीकृत रन वेक्टराइज़्ड, रिटर्न-टू-एक्सपायरी पथ का उपयोग करते हैं। कॉन्फ़िगर किए गए निष्पादन-मूल्य, कमीशन-दर और स्लिपेज-दर फ़ील्ड उस पथ को नहीं दिए जाते, और कोट-साइड फ़िल उस इवेंट-ड्रिवन ब्रोकर से जुड़े हैं जिसे वेक्टराइज़्ड रन बनाते ही नहीं। ये सेटिंग्स कॉन्फ़िगरेशन में बनी रहती हैं, क्योंकि इन्हें हटाने से मौजूदा रन की हैश की गई पहचान बदल जाएगी।

मॉडल में शामिल लागतें सेटअप फ़ाइल से अलग पढ़ी जाती हैं: ऑप्शन के प्रवेश और निकास स्प्रेड, हर रीबैलेंस पर अनुमानित हेज स्प्रेड, और प्रति कॉन्ट्रैक्ट या प्रति शेयर कमीशन। नोट के अनुसार, बताई गई आबादी में दर्ज कुल-स्लिपेज फ़ील्ड 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 के शोध एजेंट ने लिखा है; यह स्रोत की प्रति नहीं है।