बसंत 1998, कॉर्नेल में छह MBA छात्रों ने एनरॉन के वित्तीय विवरणों पर एक समीकरण लगाया और -1.89 का परिणाम पाया।
"यह कंपनी शायद हेराफेरी कर रही है" की सीमा -2.22 है। एनरॉन उससे आगे था। और फिर, ये छात्र थे, कोई फोरेंसिक अकाउंटिंग फर्म नहीं।

उन्होंने रिपोर्ट स्कूल की वेबसाइट पर डाल दी। उस समय पूरी वॉल स्ट्रीट ने एनरॉन को खरीदने की रेटिंग दी हुई थी, और उनमें से अधिकांश ने इसे शून्य पर जाने से कुछ हफ्ते पहले तक बनाए रखा।
यह एक सार्वजनिक फाइलिंग थी जिसे कोई भी निकाल सकता था और एक फॉर्मूला जिसे हाथ से करने में शायद 20 मिनट लगते हैं। यह पूरी चीज़ है जिसके बारे में मैं आपको बताने जा रहा हूं, सिवाय इसके कि आप इसे सेकंडों में चला सकते हैं और इसे दुनिया की किसी भी कंपनी या टोकन पर लगा सकते हैं।
यह वित्तीय सलाह नहीं है, अपना खुद का शोध करें। फोरेंसिक स्कोर संभाव्यता संकेतक हैं, प्रमाण नहीं, और यहां हर कीमत बदलती है, इसलिए प्रतिबद्ध होने से पहले सत्यापित करें। मैं पेशेवर भविष्यवाणी बाजार व्यापारियों के लिए टूलिंग बनाता हूं @coldvisionXYZ
L0: डेटा हाउस
अमेरिका की हर सार्वजनिक कंपनी SEC के पास फाइल करती है, और SEC EDGAR नामक एक API के माध्यम से सब कुछ उपलब्ध कराती है। आप एक URL हिट करते हैं और कंपनी द्वारा कभी भी रिपोर्ट किए गए हर नंबर को, पहले से संरचित, प्राप्त कर लेते हैं।
2 चीजें EDGAR को एक हथियार बनाती हैं:
- फुल टेक्स्ट सर्च। यह अब तक दायर हर फाइलिंग के वास्तविक टेक्स्ट को इंडेक्स करता है, इसलिए आप पूरे बाजार में "material weakness" जैसे वाक्यांश को खोज सकते हैं और उन सभी कंपनियों को वापस ला सकते हैं जिन्होंने अभी-अभी चुपचाप स्वीकार किया है कि उनके लेखांकन नियंत्रण टूट गए हैं। यह लगभग एक सेकंड में एक शॉर्ट वॉचलिस्ट है।
- संरचित वित्तीय विवरण। हर मद, हर तिमाही, मशीन-पठनीय, वर्षों पीछे जाती है।
edgartools वह है जो आप चाहते हैं।

Pip इंस्टॉल करें, कोई कुंजी नहीं, और यह 10-K, 8-K, इनसाइडर फॉर्म 4, 13F फंड होल्डिंग्स, सब कुछ साफ Python ऑब्जेक्ट्स में पार्स करता है।
यह एक MCP सर्वर भी भेजता है, इसलिए आप Claude को सीधे इस पर इंगित कर सकते हैं और कह सकते हैं "Apple और Microsoft के राजस्व वृद्धि की 3 वर्षों में तुलना करें" और यह वास्तव में जाकर वास्तविक फाइलिंग प्राप्त करता है, न कि सही लगने वाले नंबर बनाता है।
sec-edgar-downloader वह है जो सबको पहले मिलता है। यह सिर्फ कच्ची फाइलिंग डाउनलोड करता है और आपको खुद पार्स करने के लिए HTML के ढेर में छोड़ देता है। कुछ साल पहले यही तरीका था, अब यह सिर्फ दर्द है। edgartools का उपयोग करें।
BamSEC यदि आप 1998 के EDGAR इंटरफ़ेस के बिना केवल फाइलिंग पढ़ना चाहते हैं। साफ रीडर, साथ-साथ तुलना, आपकी अधिकांश आवश्यकताओं के लिए मुफ्त। आंखों से देखने के लिए अच्छा है।

अब आपके पास हर सार्वजनिक कंपनी की किताबों तक मुफ्त संरचित पहुंच है।
L1 - झूठे लोगों को पकड़ें
आपके पास नंबर हैं। प्रबंधन द्वारा अपने "परिवर्तनकारी वर्ष" के बारे में बात करने का एक भी वाक्य पढ़ने से पहले, आप कच्चे आंकड़ों पर कुछ फॉर्मूले चलाते हैं।
शिक्षाविदों ने इन्हें दशकों के वास्तविक धोखाधड़ी मामलों के आधार पर बनाया है। आपको बस यह जानना होगा कि प्रत्येक किस चीज़ की तलाश कर रहा है।
Beneish M-Score एनरॉन वाला है।
आठ इनपुट एक ही नंबर में मैश किए गए। सबसे भारी इनपुट कुल संपत्ति पर कुल प्रोद्भवन है, क्योंकि कमाई को गलत साबित करने का सबसे तेज़ तरीका उस आय को बुक करना है जो कभी नकद के रूप में नहीं दिखाई दी। अगला झंडा बिक्री वृद्धि है जो ईमानदार होने के लिए बहुत साफ है, और यह वही है जो एनरॉन पर जल गया। -2.22 से ऊपर आप जांच करते हैं। एनरॉन ने -1.89 प्रिंट किया।

Altman Z-Score आपका दिवालियापन रीड है।
लाभप्रदता, उत्तोलन और संपत्ति कितनी मेहनत कर रही है, इसे एक संकट स्कोर में मिलाता है। 1.81 से नीचे खतरे का क्षेत्र है।

Sloan प्रोद्भवन अनुपात कमाई की गुणवत्ता है।
नकद से बनी कमाई वास्तविक होती है, प्रोद्भवन से बनी कमाई उलट जाती है। लगभग 25% किसी भी तरह से बहने पर कमाई मूल रूप से एक लेखांकन मृगतृष्णा है जो आप पर उलटने वाली है।

Piotroski F-Score, 9 हां/नहीं बिंदु कि क्या कोई कंपनी वास्तव में आर्थिक रूप से मजबूत हो रही है। 6 या उससे ऊपर स्वस्थ है।

जो चीज़ इसे होमवर्क से वर्कफ़्लो में बदल देती है, वह है अपनी पूरी वॉचलिस्ट पर एक साथ सभी 4 को चलाना और केवल उन नामों को पढ़ना जो फ़्लैग करते हैं। जो नीचे दी गई स्क्रिप्ट बिल्कुल करती है।
और कृपया इन्हें किसी यादृच्छिक ब्लॉग से दोबारा लागू न करें, GitHub पर आधा M-Score कोड सूक्ष्म रूप से गलत है।
FinanceToolkit रिपॉजिटरी में 150+ अनुपात हैं - Beneish, Altman, Piotroski, Sloan, ये सभी - खुले तौर पर लिखे गए फॉर्मूले के साथ ताकि जब आप किसी नंबर पर भरोसा न करें तो उसका ऑडिट कर सकें।
इसे डेटा के लिए FMP कुंजी के साथ जोड़ें और आप तैयार हैं। ईमानदारी से, सबसे कम सराहे गए फाइनेंस रिपॉजिटरी में से एक, पारदर्शी और वास्तव में बनाए रखा गया।

Beneish पिछले साल के डेटा पर चलता है, इसलिए जब तक आप इसे देखते हैं, तब तक हेरफेर पहले ही खुल रहा हो सकता है। यह कुछ वास्तविक धोखाधड़ी को याद करता है और कुछ साफ-सुथरी कंपनियों को गलत तरीके से फ़्लैग करता है। एक खराब स्कोर का मतलब है फाइलिंग खोलना। यह कभी भी अपने आप में शॉर्ट करने का कारण नहीं है।
L2: AI आपके लिए शब्द पढ़ता है
आपने स्क्रीन किया, कुछ फ़्लैग हुआ, अब आप 10-K खोलते हैं, जो 100+ पेज की कानूनी भाषा है जिसे विशेष रूप से अपठनीय बनाने के लिए बनाया गया है।
वह काम AI पर छोड़ दें
गलत तरीका है:
पूरी फाइलिंग को चैट बॉक्स में पेस्ट करना और पूछना "क्या यह एक अच्छी कंपनी है।" यह डूब जाता है और आपको वही बताता है जो आप सुनना चाहते हैं।
अच्छा तरीका है:
इसे इस साल की तुलना पिछले साल से करने के लिए कहें।
इस साल के 10-K और पिछले साल के 10-K से Risk Factors अनुभाग निकालें, दोनों को मॉडल को दें और इसे एक काम दें।
मुझे केवल वही बताएं जो इस साल नया है या जो हटा दिया गया है, नई भाषा को उद्धृत करें, उस बॉयलरप्लेट को अनदेखा करें जो दोनों में है।
एक कंपनी जो चुपचाप ग्राहक एकाग्रता के बारे में एक पैराग्राफ डालती है, उसने अभी-अभी आपको बताया है कि एक बड़ा ग्राहक डगमगा रहा है। जो एक प्रमुख आपूर्तिकर्ता के बारे में एक पंक्ति हटाती है, उसने अभी-अभी आपको बताया है कि एक रिश्ता खत्म हो गया। इनमें से कोई भी कभी प्रेस विज्ञप्ति में नहीं आता। वकील उन वाक्यों को लिखते हैं क्योंकि वे मुकदमा होने से डरते हैं, और डर सादे टेक्स्ट में बैठी जानकारी है जिसे कोई दो बार नहीं पढ़ता।
वही अंतर MD&A (प्रबंधन का वर्ष का अपना विवरण) और फुटनोट्स पर काम करता है। एनरॉन की पूरी धोखाधड़ी ऑफ-बैलेंस-शीट संस्थाओं के बारे में फुटनोट्स में रहती थी। कहानी झूठ थी, फुटनोट्स नहीं थे।
edgar-crawler रिपॉजिटरी मूल रूप से उन आइटम अनुभागों, Risk Factors और MD&A को साफ JSON में बदलने के लिए मौजूद है, ताकि आप उन्हें प्राप्त करने के लिए HTML के माध्यम से regex न कर रहे हों। यही इसका पूरा काम है और यह इसे अच्छी तरह से करता है, आउटपुट को अपने अंतर में फीड करें।
यदि आप निर्माण करने के बजाय भुगतान करना पसंद करते हैं, तो यहां उन लोगों का ईमानदार नक्शा है जो आपके लिए ऐसा करते हैं।
Hudson Labs (पहले Bedrock AI था)
यह अंडर-द-रडार पिक है और वह है जिसके लिए मैं वास्तव में भुगतान करूंगा। यह स्वचालित रूप से क्रॉस-ईयर रेड फ्लैग निष्कर्षण करता है, बिना आपके पूछे going-concern भाषा, भौतिक कमजोरियों, संबंधित पक्ष जोखिम को सतह पर लाता है। लगभग $100/माह से शुरू होता है। यदि आप गंभीरता से फाइलिंग पढ़ते हैं तो यह सूची में प्रति डॉलर सबसे अच्छा मूल्य है।

AlphaSense
संस्थागत डिफ़ॉल्ट, लगभग 15-20k प्रति सीट, इसलिए वास्तव में केवल तभी जब आपकी फर्म भुगतान कर रही हो। इसके पास Tegus है, जो पूर्व अधिकारियों और ग्राहकों के साथ हजारों भुगतान वाले साक्षात्कारों का एक पुस्तकालय है। कानूनी इनसाइडर ज्ञान के जितना करीब आप मुफ्त में प्राप्त कर सकते हैं, और आप इसे मुफ्त में दोबारा नहीं बना सकते।

Daloopa
मॉडल-रेडी वित्तीय विवरण निकालता है जिसमें हर एक नंबर फाइलिंग में अपने सटीक स्थान से हाइपरलिंक किया जाता है। वह ऑडिट ट्रेल ही कारण है कि गंभीर DCF बनाने वाले लोग इसका उपयोग करते हैं। एंटरप्राइज प्राइसिंग, जब तक मॉडलिंग आपका वास्तविक काम न हो, तब तक ओवरकिल है।

Fintool AI-प्रथम है, जो US इक्विटी के लिए बनाया गया है, हर चीज़ पर उद्धरण, साथ ही स्थायी अलर्ट जैसे "मुझे सूचित करें जब भी कोई कंपनी नए सिरे से आपूर्ति श्रृंखला समस्याओं का उल्लेख करे।"
यदि Hudson बहुत फोरेंसिक लगता है और AlphaSense बहुत महंगा लगता है, तो एक अच्छा मध्य मैदान है।

L3: क्रिप्टो
टोकन पर पलटें। बिल्कुल वही विचार
स्टॉक में धोखाधड़ी प्रोद्भवन और फुटनोट्स में छिपती है।
क्रिप्टो में यह आपूर्ति कार्यक्रम और धारक एकाग्रता में छिपती है, और ये दोनों एक सार्वजनिक श्रृंखला पर बैठे हैं जिसे आप मुफ्त में पढ़ सकते हैं।
आपका EDGAR समकक्ष यहाँ DefiLlama है।

मुफ्त API, कोई कुंजी नहीं, मूल रूप से हर प्रोटोकॉल के TVL, शुल्क, राजस्व और अनलॉक शेड्यूल को कवर करता है।
एक प्रोटोकॉल में 3 नंबर होते हैं जो सीधे एक सामान्य कंपनी पर मैप होते हैं।
- शुल्क = उपयोगकर्ता जो कुछ भी भुगतान करते हैं। वह सकल राजस्व है।
- राजस्व = वह हिस्सा जो प्रोटोकॉल वास्तव में रखता है। वह शुद्ध है।
- कमाई = राजस्व घटा वे टोकन जो उसने उपयोगकर्ताओं को पहले स्थान पर दिखाने के लिए रिश्वत देने के लिए प्रिंट किए।
Token Terminal इन्हें बिल्कुल मानकीकृत करता है, शुल्क, राजस्व, कमाई, क्रिप्टो P/E समकक्ष, हर प्रमुख श्रृंखला में।
वास्तव में क्रिप्टो का ब्लूमबर्ग और मानकीकरण वास्तविक काम है जिसे आप हाथ से करने से नफरत करेंगे। लेकिन यह ~350/माह है जो एक व्यक्ति के लिए बहुत है, और मुफ्त स्तर और DefiLlama आपको अधिकांश रास्ता देता है।

फिर 2 हत्यारे, फोरेंसिक स्क्रीनिंग का क्रिप्टो संस्करण।
पहले अनलॉक शेड्यूल।
टोकन लॉन्च के समय सभी मौजूद नहीं होते हैं, टीम और VC आवंटन वर्षों में निहित होते हैं, और जब वे अनलॉक होते हैं तो जो लोग शून्य के करीब आए थे, वे अंततः आप पर डंप कर सकते हैं। अंगूठे का नियम, प्रचलित आपूर्ति का 5% से अधिक कोई भी एकल अनलॉक एक लाल झंडा है। इसे वास्तविक बनाने के लिए, Arbitrum का पहला बड़ा क्लिफ अनलॉक, एक दिन में, उस समय की संपूर्ण प्रचलित आपूर्ति के लगभग बराबर ARB की राशि थी। शुरुआत से धारण करने वाले व्हेल खुदरा में बाहर निकलने में सक्षम थे और तारीख महीनों पहले एक कैलेंडर पर थी।
3 आकार जानें।
- क्लिफ एक दिन में एक स्लग डंप करता है (हिंसक)।
- रैखिक वेस्टिंग दैनिक टपकता है (धीमा खून बहना जिसे आप कभी-कभी पकड़ सकते हैं)।
- उत्सर्जन गतिविधि के आधार पर जारी होता है। VC वॉलेट में एक क्लिफ वह है जो पोर्टफोलियो को समाप्त करता है।
दूसरा धारक एकाग्रता। वास्तव में चीज़ का मालिक कौन है। यदि मुट्ठी भर वॉलेट अधिकांश आपूर्ति रखते हैं और वे टीम या कुछ शुरुआती VC फंड लेबल हैं, बधाई हो, आप डिज़ाइन द्वारा निकास तरलता हैं।
यह वह जगह है जहां वॉलेट लेबलिंग टूल कमाते हैं, क्योंकि कच्चा श्रृंखला डेटा सिर्फ 0xxxxxxx.... है जब तक कोई आपको यह नहीं बताता कि यह Jump Trading या एक टीम वेस्टिंग कॉन्ट्रैक्ट है।
Arkham
यहाँ से शुरू करें क्योंकि यह व्यक्तियों के लिए मुफ्त है, जो कोई अन्य गंभीर प्लेटफॉर्म नहीं है। डी-अनन इंजन वास्तविक सौदा है, यह वह फर्म है जिसने सार्वजनिक रूप से चोरी किए गए बिटकॉइन में अरबों का पता एक हैक तक लगाया। आप उसी इकाई ट्रेसिंग को अपने इच्छित किसी भी टोकन पर चला सकते हैं। मुफ्त हत्यारा सुविधा है, बस इसका उपयोग करें।
Nansen
"स्मार्ट मनी" को ट्रैक करता है, वे वॉलेट जिनके पास जल्दी और सही होने का ट्रैक रिकॉर्ड है, कई श्रृंखलाओं में। हाल ही में इसकी Pro कीमत लगभग 49/माह तक काफी कम कर दी गई है। लेबल पूरे उत्पाद हैं और वे अच्छे हैं, लेकिन जैसे ही फंड एक केंद्रीकृत एक्सचेंज से टकराते हैं, ट्रेल ठंडा हो जाता है। यदि आप गंभीरता से ऑनचेन ट्रेड करते हैं तो इसके लायक है।
Dune
100k+ सामुदायिक SQL डैशबोर्ड जिन्हें आप स्वयं SQL की एक पंक्ति लिखे बिना फोर्क कर सकते हैं। मुफ्त स्तर लगभग सभी के लिए पर्याप्त है, और किसी ने पहले से ही वह डैशबोर्ड बनाया है जो आप चाहते हैं, इसलिए अपना खुद का बनाने से पहले इसे ढूंढें।
Messari के पास मजबूत गुणात्मक शोध और रेटिंग हैं। मूल्य निर्धारण अपारदर्शी और एंटरप्राइज-उन्मुख है, मुफ्त शोध पढ़ने लायक है लेकिन बिक्री कॉल के बिना अच्छी चीज़ों की उम्मीद न करें।
Tokenomist (पहले Token Unlocks था) समर्पित अनलॉक कैलेंडर है। DefiLlama भी अनलॉक को कवर करता है, लेकिन यदि अनलॉक-ट्रेडिंग आपकी पूरी चीज़ है तो यह विशेषज्ञ है।
L4: एक सिस्टम
अब आपके पास टुकड़े हैं, दोनों तरफ मुफ्त डेटा, फोरेंसिक गणित, दस्तावेज़ अंतर, ऑनचेन स्क्रीनिंग। अंतिम परत इसे एक मशीन के रूप में चलाना है, न कि आप 15 टैब में कॉपी-पेस्ट कर रहे हैं।
virattt/ai-hedge-fund AI एजेंटों की एक टीम है, प्रत्येक एक प्रसिद्ध निवेशक के दर्शन पर आधारित है, जो एक स्टॉक पर बहस करते हैं और एक कॉल थूकते हैं। निवेशक-व्यक्तित्व वाली चीज़ ईमानदारी से एक तरह की चाल है और आपको निश्चित रूप से वास्तविक पैसे के साथ इसे लाइव ट्रेड नहीं करना चाहिए।
लेकिन विश्लेषण एजेंटों को ऑर्केस्ट्रेट करने के तरीके, डेटा-फ़ेचर को स्क्रीनर में और फिर रीज़नर में कैसे चेन करें, के मुफ्त पाठ के रूप में, यह अभी GitHub पर सबसे अच्छा शिक्षक है।

OpenBB ओपन सोर्स ब्लूमबर्ग टर्मिनल है। अपने डेटा विक्रेताओं को एक बार कनेक्ट करें, उन्हें हर जगह उपयोग करें, एक MCP सर्वर के साथ ताकि एक एजेंट पूरी चीज़ चला सके। शक्तिशाली लेकिन भारी, सेटअप वास्तविक काम है और डेटा गुणवत्ता पूरी तरह से इस बात पर निर्भर करती है कि आप किस मुफ्त विक्रेता को वायर करते हैं। यदि आप सब कुछ के लिए एक कॉकपिट चाहते हैं तो इसके लायक है, यदि आप केवल कुछ नामों की स्क्रीन करना चाहते हैं तो ओवरकिल है।

FinGPT / FinRobot ओपन फाइनेंशियल LLM हैं जिन्हें आप सस्ते में फाइन-ट्यून कर सकते हैं। अकादमिक रूप से प्रभावशाली और हाँ, फाइन-ट्यूनिंग लोगों के विचार से सस्ता है।
लेकिन मूल रूप से सभी के लिए आपको कुछ भी फाइन-ट्यून करने की आवश्यकता नहीं है, उपरोक्त संकेतों के साथ एक फ्रंटियर मॉडल काम करता है।

क्रम में
पहले टूल लेयर, EDGAR, FMP, DefiLlama को लपेटने वाले फंक्शन कॉलिंग या MCP सर्वर, ताकि मॉडल वास्तविक नंबर लाए और उन्हें कभी आविष्कार न करे। गैर-परक्राम्य, एक AI जो एक असंबद्ध वित्तीय आंकड़ा उद्धृत करता है, एक विश्लेषक नहीं बल्कि एक देयता है।
स्क्रीन लेयर, फोरेंसिक स्कोर और ऑनचेन चेक स्वचालित रूप से आपके ब्रह्मांड में प्रवेश करने वाली किसी भी चीज़ पर चलते हैं।
रीड लेयर, स्क्रीन से बचने वाली किसी भी चीज़ पर साल-दर-साल अंतर।
संश्लेषण, मॉडल हर दावे पर एक उद्धरण के साथ मेमो लिखता है और आप 200 पेजों के बजाय मेमो पढ़ते हैं।
मॉडल पर, Claude या GPT दोनों काम करते हैं। यदि आप संवेदनशील डेटा को छू रहे हैं और नहीं चाहते कि फाइलिंग आपकी मशीन छोड़े, तो Ollama के माध्यम से स्थानीय रूप से एक ओपन मॉडल चलाएं। मॉडल कभी खाई नहीं था। खाई इसे साफ, सत्यापित, स्रोत-लिंक्ड डेटा से जोड़ना और अनुशासित गणित को इस पर इंगित करना है।
L5: L1 बनाएं
इसे एक टिकर दें, यह EDGAR से वास्तविक फाइलिंग खींचता है, Beneish, Altman, Piotroski और प्रोद्भवन अनुपात की गणना करता है, और यदि आप इसे एक कुंजी देते हैं तो यह साल-दर-साल Risk Factors अंतर चलाता है और आपको एक-पैराग्राफ का फैसला लिखता है।
1#!/usr/bin/env python32"""3forensic_screener.py - एक कमांड में किसी भी कंपनी को एक विश्लेषक की तरह पढ़ें।45सेटअप:6 pip install edgartools anthropic7 export SEC_IDENTITY="आपका नाम आपका@ईमेल.कॉम" # SEC को इस हेडर की आवश्यकता है8 export ANTHROPIC_API_KEY="sk-..." # वैकल्पिक, केवल अंतर के लिए910चलाएं:11 python forensic_screener.py AAPL12 python forensic_screener.py TSLA NVDA SMCI # एक साथ कई की स्क्रीन करें13 python forensic_screener.py SMCI --diff # जोखिम-कारक अंतर जोड़ें14"""1516import os, sys, argparse17from dataclasses import dataclass1819# सीमाएं - वे रेखाएं जो आपका रुख बदलती हैं। स्वाद के अनुसार ट्यून करें।20M_FLAG = -1.78 # Beneish इससे ऊपर -> हेरफेर जोखिम (क्लासिक कटऑफ -2.22)21Z_DISTRESS = 1.81 # Altman इससे नीचे -> संकट क्षेत्र22Z_SAFE = 2.99 # Altman इससे ऊपर -> सुरक्षित क्षेत्र23ACCRUAL_BAD = 0.25 # |प्रोद्भवन/संपत्ति| इससे ऊपर -> कमाई-गुणवत्ता लाल झंडा24F_STRONG = 6 # Piotroski इस पर या इससे ऊपर -> मजबूत हो रहा है2526@dataclass27class YearData:28 sales: float; cogs: float; sga: float; net_income: float; cfo: float29 receivables: float; current_assets: float; current_liabilities: float30 ppe_net: float; depreciation: float; total_assets: float31 total_liabilities: float; long_term_debt: float; retained_earnings: float32 ebit: float; market_cap: float; shares: float3334def load_two_years(ticker: str):35 """(this_year, last_year) लौटाता है। नेटवर्क पर SEC EDGAR को कॉल करता है।"""36 from edgar import Company, set_identity37 identity = os.environ.get("SEC_IDENTITY")38 if not identity:39 sys.exit("SEC_IDENTITY='आपका नाम आपका@ईमेल.कॉम' सेट करें - SEC को इसकी आवश्यकता है।")40 set_identity(identity)4142 company = Company(ticker)43 fin = company.get_financials()44 inc, bal, cfs = fin.income_statement(periods=2), fin.balance_sheet(periods=2), fin.cash_flow(periods=2)4546 def g(stmt, col, *aliases):47 # सर्वोत्तम-प्रयास पंक्ति खोज; कंपनियां एक ही विचार को अलग-अलग टैग करती हैं48 for a in aliases:49 try:50 row = stmt.loc[stmt.index.str.contains(a, case=False, na=False)]51 if not row.empty:52 return float(row.iloc[0, col])53 except Exception:54 continue55 return 0.05657 def build(col):58 return YearData(59 sales=g(inc, col, "RevenueFromContractWithCustomerExcludingAssessedTax", "Revenues", "SalesRevenueNet"),60 cogs=g(inc, col, "CostOfGoodsAndServicesSold", "CostOfRevenue"),61 sga=g(inc, col, "SellingGeneralAndAdministrativeExpense"),62 net_income=g(inc, col, "NetIncomeLoss"),63 cfo=g(cfs, col, "NetCashProvidedByUsedInOperatingActivities"),64 receivables=g(bal, col, "AccountsReceivableNetCurrent", "ReceivablesNetCurrent"),65 current_assets=g(bal, col, "AssetsCurrent"),66 current_liabilities=g(bal, col, "LiabilitiesCurrent"),67 ppe_net=g(bal, col, "PropertyPlantAndEquipmentNet"),68 depreciation=g(cfs, col, "DepreciationDepletionAndAmortization", "DepreciationAmortizationAndAccretionNet"),69 total_assets=g(bal, col, "Assets"),70 total_liabilities=g(bal, col, "Liabilities"),71 long_term_debt=g(bal, col, "LongTermDebtNoncurrent", "LongTermDebt"),72 retained_earnings=g(bal, col, "RetainedEarningsAccumulatedDeficit"),73 ebit=g(inc, col, "OperatingIncomeLoss"),74 market_cap=getattr(company, "market_cap", 0.0) or 0.0,75 shares=g(bal, col, "CommonStockSharesOutstanding"),76 )7778 # col 0 = नवीनतम वर्ष, col 1 = पिछला वर्ष (edgartools नवीनतम को पहले ऑर्डर करता है)79 return build(0), build(1)8081def d(a, b): return a / b if b else 0.0 # सुरक्षित विभाजन8283def beneish_m_score(t, p):84 DSRI = d(d(t.receivables, t.sales), d(p.receivables, p.sales))85 GMI = d((p.sales - p.cogs)/p.sales if p.sales else 0, (t.sales - t.cogs)/t.sales if t.sales else 0)86 AQI = d(1 - d(t.current_assets + t.ppe_net, t.total_assets), 1 - d(p.current_assets + p.ppe_net, p.total_assets))87 SGI = d(t.sales, p.sales)88 DEPI = d(d(p.depreciation, p.depreciation + p.ppe_net), d(t.depreciation, t.depreciation + t.ppe_net))89 SGAI = d(d(t.sga, t.sales), d(p.sga, p.sales))90 TATA = d(t.net_income - t.cfo, t.total_assets)91 LVGI = d(d(t.total_liabilities, t.total_assets), d(p.total_liabilities, p.total_assets))92 return (-4.84 + 0.92*DSRI + 0.528*GMI + 0.404*AQI + 0.892*SGI93 + 0.115*DEPI - 0.172*SGAI + 4.679*TATA - 0.327*LVGI)9495def altman_z_score(t):96 wc = t.current_assets - t.current_liabilities97 return (1.2*d(wc, t.total_assets) + 1.4*d(t.retained_earnings, t.total_assets)98 + 3.3*d(t.ebit, t.total_assets) + 0.6*d(t.market_cap, t.total_liabilities)99 + 1.0*d(t.sales, t.total_assets))100101def piotroski_f_score(t, p):102 s = 0103 s += t.net_income > 0104 s += t.cfo > 0105 s += d(t.net_income, t.total_assets) > d(p.net_income, p.total_assets)106 s += t.cfo > t.net_income # नकद प्रोद्भवन को हराता है107 s += t.long_term_debt < p.long_term_debt108 s += d(t.current_assets, t.current_liabilities) > d(p.current_assets, p.current_liabilities)109 s += t.shares <= p.shares # कोई कमजोर पड़ना नहीं110 s += d(t.sales - t.cogs, t.sales) > d(p.sales - p.cogs, p.sales)111 s += d(t.sales, t.total_assets) > d(p.sales, p.total_assets)112 return int(s)113114def sloan_accruals(t): return d(t.net_income - t.cfo, t.total_assets)115116def risk_factor_diff(ticker):117 """इस साल के बनाम पिछले साल के Risk Factors का अंतर। स्टैक में सबसे अच्छा रीड।"""118 key = os.environ.get("ANTHROPIC_API_KEY")119 if not key:120 return "(छोड़ा गया - अंतर सक्षम करने के लिए ANTHROPIC_API_KEY सेट करें)"121 from edgar import Company122 import anthropic123 f = Company(ticker).get_filings(form="10-K").latest(2)124 this_rf = getattr(f[0].obj(), "risk_factors", str(f[0]))125 last_rf = getattr(f[1].obj(), "risk_factors", str(f[1]))126 client = anthropic.Anthropic(api_key=key)127 msg = client.messages.create(128 model="claude-opus-4-8", max_tokens=1024,129 messages=[{"role": "user", "content": (130 "लगातार वार्षिक फाइलिंग से इन दो Risk Factors अनुभागों की तुलना करें। "131 "केवल वही रिपोर्ट करें जो इस वर्ष नया है या जो हटा दिया गया था। नई भाषा को उद्धृत करें। "132 "दोनों में मौजूद बॉयलरप्लेट को अनदेखा करें। एक वाक्य के साथ समाप्त करें: क्या यहाँ कुछ भी जोखिम बदलता है?\n\n"133 f"पिछला वर्ष:\n{last_rf[:40000]}\n\nइस वर्ष:\n{this_rf[:40000]}")}],134 )135 return msg.content[0].text136137def screen(ticker, do_diff=False):138 print(f"\n{'='*60}\n {ticker.upper()}\n{'='*60}")139 try:140 t, p = load_two_years(ticker)141 except Exception as e:142 print(f" फाइलिंग लोड नहीं कर सका: {e}"); return143144 m, z, f, a = beneish_m_score(t, p), altman_z_score(t), piotroski_f_score(t, p), sloan_accruals(t)145 flags = []146 if m > M_FLAG: flags.append(f"M-Score {m:+.2f} - कमाई-हेरफेर जोखिम")147 if z < Z_DISTRESS: flags.append(f"Z-Score {z:.2f} - वित्तीय संकट क्षेत्र")148 if abs(a) > ACCRUAL_BAD: flags.append(f"प्रोद्भवन {a:+.1%} - कमाई-गुणवत्ता लाल झंडा")149 if f < F_STRONG: flags.append(f"F-Score {f}/9 - मजबूत नहीं हो रहा है")150151 print(f" Beneish M : {m:+.2f} (> {M_FLAG} = जांच करें)")152 print(f" Altman Z : {z:.2f} (< {Z_DISTRESS} संकट, > {Z_SAFE} सुरक्षित)")153 print(f" Piotroski F: {f}/9 (>= {F_STRONG} मजबूत)")154 print(f" Sloan Accr : {a:+.1%} (|x| > {ACCRUAL_BAD:.0%} लाल झंडा)")155 print(f"\n फैसला: {'जांच करें' if flags else 'साफ'}")156 for fl in flags: print(f" - {fl}")157 if do_diff:158 print("\n जोखिम-कारक अंतर (साल-दर-साल):")159 print(" " + risk_factor_diff(ticker).replace("\n", "\n "))160161def main():162 ap = argparse.ArgumentParser(description="किसी भी US सार्वजनिक कंपनी के लिए फोरेंसिक स्क्रीनर")163 ap.add_argument("tickers", nargs="+")164 ap.add_argument("--diff", action="store_true", help="जोखिम-कारक अंतर भी चलाएं")165 args = ap.parse_args()166 for tk in args.tickers:167 screen(tk, do_diff=args.diff)168 print("\nअनुस्मारक: संभाव्यता संकेतक, प्रमाण नहीं। Beneish पिछले साल के डेटा पर चलता है इसलिए "169 "हेरफेर पहले से ही खुल रहा हो सकता है। एक खराब स्कोर का मतलब है फाइलिंग खोलना, कभी भी "170 "अकेले नंबर पर शॉर्ट न करें।\n")171172if __name__ == "__main__":173 main()
मैंने शिप करने से पहले गणित की जांच की, इसमें स्वस्थ संख्याओं का एक सेट डालें और यह लगभग -2.24 का साफ M, सुरक्षित क्षेत्र में Z, 9/9 पर F, शून्य के करीब प्रोद्भवन प्रिंट करता है, बिल्कुल वैसा ही जैसा आप चाहते हैं।
केवल एक चीज़ जिसके लिए आपकी मशीन की आवश्यकता है, वह है लाइव SEC कनेक्शन और अंतर के लिए एक कुंजी। टैग उपनाम मानक फाइलर्स को कवर करते हैं, एक विदेशी को एक पंक्ति जोड़ने की आवश्यकता हो सकती है और मैंने चिह्नित किया है कि कहाँ।





