Trading Class

सबक › ट्रेडर्स के लिए AI टूल › AI-लिखित कोड के साथ एक आइडिया को बैकटेस्ट (backtest) करना

वर्ल्ड 8 · ट्रेडर्स के लिए AI टूल · सबक 12

AI-लिखित कोड के साथ एक आइडिया को बैकटेस्ट (backtest) करना

AI तेज़ी से टेस्ट कोड लिख सकता है, लेकिन आपको यह जांचना ज़रूरी है कि कोड केवल उसी जानकारी का उपयोग करे जो उस समय उपलब्ध थी।

2:48 · streams in seconds · the same video as in the app

एक लाइन में

एक बैकटेस्ट जो कभी हारता ही नहीं, उसमें लगभग हमेशा कोई बग होता है। वह कहाँ छिपा है?

आसान भाषा में

बैकटेस्ट ऐसा है जैसे पिछले सीज़न के फुटबॉल मैचों को दोबारा चलाकर किसी रणनीति को टेस्ट करना। अगर आपके नोट्स में गलती से हर किक-ऑफ से पहले फाइनल स्कोर लिखा हो, तो आपकी रणनीति परफेक्ट दिखेगी। लुक-अहेड बायस (look-ahead bias) बिल्कुल यही है: टेस्ट उस जानकारी को देख लेता है जो उसके पास हो ही नहीं सकती थी।

सबक

बैकटेस्ट (backtest) एक नियम को हिस्टोरिकल डेटा (historical data) पर चलाता है यह देखने के लिए कि उसने कैसा परफॉर्म किया होता। AI असिस्टेंट (AI assistant) कोड का ड्राफ्ट बना सकते हैं, लेकिन वे अक्सर गलतियाँ करते हैं जैसे कि उसी दिन के क्लोजिंग प्राइस (closing price) का इस्तेमाल करके ओपन (open) पर ट्रेड का फैसला करना, जिसे लुक-अहेड बायस (look-ahead bias) कहते हैं, या फीस (fees) और स्लिपेज (slippage) जैसी लागतों को छोड़ देना (प्लान से खराब प्राइस मिलना)। अन्य आम बग्स (bugs) हैं असंभव पोजीशन साइज़ (position size), डेटा में गैप (gap), और सिर्फ उन कंपनियों को टेस्ट करना जो आज भी मौजूद हैं। चार्ट के खिलाफ कुछ ट्रेड्स को हाथ से चेक करना इन बग्स को पकड़ने का सबसे तेज़ तरीका है।

एक उदाहरण

चार दिनों पर इलस्ट्रेटिव उदाहरण, ओपन से क्लोज तक: दिन 1 में 100 से 104 गया, दिन 2 में 104 से 103 गया, दिन 3 में 103 से 106 गया, और दिन 4 में 106 से 105 गया। AI का कोड ओपन पर खरीदता है जब उसी दिन क्लोज ऊपर होता है, इसलिए यह सिर्फ दिन 1 और 3 को 'लेता' है और 4 + 3 = 7 पॉइंट्स बिना किसी नुकसान के जीतता है। लेकिन ओपन पर कोई भी क्लोज नहीं जानता। फिक्स्ड कोड ओपन पर सिर्फ तभी खरीदता है जब कल का क्लोज ऊपर था, इसलिए यह दिन 2 और 4 को ट्रेड करता है: (103 - 104) + (105 - 106) = -2 पॉइंट्स। प्रति ट्रेड 0.5 पॉइंट की लागत के साथ, यह -2 - 2 x 0.5 = -3 पॉइंट्स बन जाता है।

एक ही बात, चार लेवल पर

  1. बैकटेस्ट पुराने प्राइस डेटा पर एक ट्रेडिंग नियम को टेस्ट करता है।
  2. AI टेस्ट कोड जल्दी लिख सकता है, लेकिन कोड में बग्स छिपे हो सकते हैं जो रिजल्ट्स को बहुत अच्छा दिखाते हैं।
  3. लुक-अहेड बायस का मतलब है कि कोड भविष्य की जानकारी का इस्तेमाल करता है, जैसे आज के क्लोज का इस्तेमाल करके आज के ओपन पर ट्रेड का फैसला करना।
  4. पढ़ें कि हर लाइन क्या करती है, रियलिस्टिक लागत और स्लिपेज जोड़ें, और चार्ट पर कुछ ट्रेड्स को हाथ से चेक करें, क्योंकि एक बिल्कुल स्मूथ इक्विटी कर्व एक चेतावनी का संकेत है, प्रूफ नहीं।
  5. सर्वाइवरशिप बायस (survivorship bias) के लिए भी चेक करें जो सिर्फ आज के बचे हुए स्टॉक्स को टेस्ट करने से आता है, मिसिंग या गलत तरीके से एडजस्ट किए गए डेटा के लिए, और उन साइज़ के लिए जो आप वास्तव में ट्रेड नहीं कर सकते, जैसे कॉन्ट्रैक्ट (contract) के अंश।

ये गलतियाँ मत कीजिए

खुद को जाँचिए

बैकटेस्ट क्या है?

पुराने प्राइस डेटा पर एक नियम को टेस्ट करना. यह अतीत को दोबारा चलाता है यह देखने के लिए कि एक नियम ने कैसा किया होता।

लुक-अहेड बायस क्या है?

उस जानकारी का इस्तेमाल करना जो टेस्ट उस समय जान नहीं सकता था. टेस्ट भविष्य में झाँक लेता है।

एक बैकटेस्ट कर्व कभी भी नीचे नहीं गिरता। आपको क्या सोचना चाहिए?

शायद एक बग है, इसलिए कोड और कुछ ट्रेड्स को हाथ से चेक करें. असली ट्रेडिंग में हमेशा हारने वाले स्ट्रेच होते हैं।

एक रियलिस्टिक बैकटेस्ट में कौन सी लागतें शामिल होनी चाहिए?

फीस और स्लिपेज. हर असली ट्रेड लागत चुकाता है।

कोड ओपन पर खरीदता है जब उसी दिन क्लोज ऊपर होता है। यह गलत क्यों है?

ओपन पर क्लोज पता नहीं होता. आप उस जवाब का इस्तेमाल नहीं कर सकते जो दिन में बाद में आता है।

Read in English: Backtesting an idea with AI-written code