DEV Community

shakti tiwari
shakti tiwari

Posted on

ऑप्शंस बायर ML: एक मॉडल क्यों फेल होता है (V2 फिक्स)

एक ऑप्शंस-बायर प्रेडिक्शन सिस्टम के असली रीबिल्ड से सीख। कोई मुनाफे का दावा नहीं — बस आर्किटेक्चर जो V1 के क्रॉनिक बग्स को फिक्स करता है।

V1 की कोर मिस्टेक

V1 ने एक XGBoost मॉडल से एक बड़ा फज़ी सवाल पूछा: "CE या PE?" — सीधे raw CE/PE प्रीमियम डेटा से। प्रीमियम एक ट्रांसफॉर्म्ड सिग्नल है (underlying move × delta × gamma × IV × theta × spread × strike distance × liquidity)। मॉडल ने नॉइज़ उतना ही सीखा जितना सिग्नल।

रिसर्च लॉग्स से कंक्रीट एविडेंस:

  • बैलेंस्ड एक्युरेसी महीनों तक 51–61% अटकी रही — हाइपरपैरामीटर्स कभी ट्यून नहीं हुए (lr=0.02, depth=3 डिफॉल्ट्स; Optuna मौजूद था पर कभी चला नहीं)।
  • एक पार्टिशन बग (iv_change_1d shift सिंगल-रो ग्रुप्स में) ने चुपचाप पूरे इतिहास के एक फीचर को ज़ीरो कर दिया।
  • एक रोलअप कॉन्फिग फ्लैग ने 15-मिनट बार्स को 1 रो/डे कंप्रेस किया, 760× ट्रेनिंग वॉल्यूम बर्बाद (387 सीक्वेंसेस इनस्टेड ऑफ 295K+)।
  • लाइव पेपर ट्रेडिंग: 31.6% विन रेट, −₹90.3k PnL, एंट्री कॉन्फिडेंसेस सिर्फ 55–64%।

V2 प्रिंसिपल: सवाल को बांटो

underlying mechanics  -->  side, range, ETA, invalidation
option chain scanner   -->  क्या बायर कॉन्ट्रैक्ट लेने लायक है?
XGBoost (कई heads)     -->  क्लीन मैकेनिक्स पर पतला कैलिब्रेटेड लर्नर
Enter fullscreen mode Exit fullscreen mode

रूल: underlying साइड तय करता है; ऑप्शन कॉन्ट्रैक्ट एग्जिक्यूशन एलिजिबिलिटी तय करता है। CE/PE प्रीमियम को वैलिडेट किया जाता है, डायरेक्शन के रूप में नहीं सीखा जाता।

कई शैलो हेड्स, एक डीप मॉडल नहीं

एक CE/PE जवाब की जगह V2 अलग नैरो हेड्स ट्रेन करता है:

  • underlying_up/down_touch_{15,30,60}m
  • ce_1p3x / ce_1p5x / ce_2p0x और pe_1p3x / pe_1p5x / pe_2p0x (अलग CE और PE)
  • no_trade_quality

ये एक बदलाव V1 के CE/PE कन्फ्यूजन को खत्म कर देता है जिससे महीनों लड़ाई हुई।

शैलो रेगुलराइज़्ड ग्रिड (ओवरफिट का असली फिक्स)

learning_rate = 0.0150.035   n_estimators = 8002000 (early stop)
max_depth = 23               min_child_weight = 1240
gamma = 0.12.0               subsample = 0.650.90
colsample_bytree = 0.550.85  reg_alpha = 0.53.0
reg_lambda = 6.020.0         scale_pos_weight = min(neg/pos, 8.0)
Enter fullscreen mode Exit fullscreen mode

V1 के इंट्राडे हेड में सिर्फ 1280 में से 8 फीचर्स नॉन-ज़ीरो गेन के साथ थे — ज्यादातर ब्लोट शुद्ध नॉइज़ था जिसे रेगुलराइज़र को प्रून करना पड़ा। शैलो + हार्ड-रेगुलराइज़्ड ही जवाब है।

ओवरफिट गेट (हार्ड प्रमोशन रूल)

overfit_gap = train_metric − test_metric> 0.15 हो तो फ्लैग। मॉडल सिर्फ इसलिए प्रमोट नहीं होता क्योंकि ट्रेन मैट्रिक्स अच्छे दिखते हैं। हर हेड, हर रीट्रेन पर गैप ऑटोमैटिक लॉग करें।

ईमानदार वर्डिक्ट

V2 एक क्लीनर आर्किटेक्चर है, लेकिन ये अभी भी रिसर्च है। जो सीख ट्रांसफर होती है: फज़ी सवाल मत पूछो, अपने नल्ल्स डिक्लेयर करो, ट्रीज़ को शैलो रखो, और प्रमोशन को आउट-ऑफ-सैंपल गैप पर गेट करो — ट्रेनिंग स्कोर पर नहीं।

सिर्फ रिसर्च। निवेश सलाह नहीं।

शक्ति तिवारी से और

Top comments (0)