← लेखों की सूची पर वापस जाएँ
March 20, 2026
5 मिनट का पठन

LLM अल्फा माइनिंग: अर्निंग्स कॉल और वित्तीय दस्तावेज़ों से ट्रेडिंग सिग्नल कैसे निकालें

LLM अल्फा माइनिंग: अर्निंग्स कॉल और वित्तीय दस्तावेज़ों से ट्रेडिंग सिग्नल कैसे निकालें
#llm
#alpha
#earnings
#nlp
#gpt
#financial-analysis
#algo-trading
🤖
Part 5 of 5 · Collection
AI Agents for Trading

वॉल स्ट्रीट पर एक मज़ाक है: "अर्निंग्स कॉल में सबसे मूल्यवान जानकारी यह नहीं है कि CEO ने क्या कहा, बल्कि यह है कि उसने कैसे कहा।" जब टिम कुक पिछले साल के "हम बहुत खुश हैं" के बजाय "हम सावधानीपूर्वक आशावादी हैं" कहते हैं — यह कोई भाषाई खेल नहीं है, यह करोड़ों डॉलर मूल्य का एक सिग्नल है।

दशकों से, क्वांट फंड इन सिग्नलों के निष्कर्षण को व्यवस्थित करने की कोशिश करते रहे हैं। पहले, उन्होंने शब्दकोशों का उपयोग करके "सकारात्मक" और "नकारात्मक" शब्दों की आवृत्ति गिनी। फिर उन्होंने BERT को काम पर लगाया। और अब हमारे पास GPT-4o, Claude, और ओपन-सोर्स LLM हैं जो कॉर्पोरेट दोहरी बोली की बारीकियों को इतनी सटीकता से पार्स कर सकते हैं कि यह खुद शोधकर्ताओं को भी भयभीत कर देती है।

आइए समझते हैं कि अर्निंग्स कॉल्स से ट्रेडिंग सिग्नल निकालने के लिए एक पूर्ण पाइपलाइन कैसे बनाई जाए — ट्रांसक्रिप्ट प्राप्त करने से लेकर संचयी असामान्य रिटर्न के बैकटेस्टिंग तक।

अर्निंग्स कॉल्स अल्फा के लिए सोने की खान क्यों हैं

पोस्ट-अर्निंग्स एनाउंसमेंट ड्रिफ्ट: वह विसंगति जो मरने से इनकार करती है

1968 में, बॉल और ब्राउन ने कुछ अजीब खोजा: तिमाही परिणाम प्रकाशित होने के बाद, शेयर अगले 60-90 दिनों तक "आश्चर्य" की दिशा में बहते रहते हैं। उन्होंने इसे पोस्ट-अर्निंग्स एनाउंसमेंट ड्रिफ्ट (PEAD) नाम दिया। तब से आधी सदी से अधिक समय बीत चुका है, सैकड़ों पेपर लिखे जा चुके हैं, इस विसंगति को दर्जनों कोणों से समझाया जा चुका है — और यह अभी भी काम करती है।

PEAD वित्त के इतिहास में सबसे लगातार बनी रहने वाली बाज़ार विसंगतियों में से एक है। "सकारात्मक आश्चर्य खरीदें, नकारात्मक आश्चर्य बेचें" की पोर्टफोलियो रणनीति ने ऐतिहासिक रूप से 10-25% वार्षिक अतिरिक्त रिटर्न दिया है। बाज़ार ने इसे आर्बिट्रेज क्यों नहीं किया? कई कारण हैं:

  • निवेशकों का सीमित ध्यान — जब एक ही सप्ताह में 200 कंपनियां रिपोर्ट करती हैं, तो सभी ट्रांसक्रिप्ट पढ़ना भौतिक रूप से असंभव है
  • संज्ञानात्मक जटिलता — एक अर्निंग्स कॉल 45-60 मिनट तक चलती है, और मुख्य सिग्नल Q&A सत्र के 38वें मिनट में एक ही वाक्य में दबा हो सकता है
  • भाषा की अस्पष्टता — CFO कहता है "हम प्रतिकूल परिस्थितियों से गुज़र रहे हैं", और संदर्भ के बिना यह स्पष्ट नहीं है कि यह एक हल्की चेतावनी है या मानक हेजिंग

यहीं पर LLM मंच पर आते हैं। पहली बार, हमारे पास एक ऐसा उपकरण है जो एक शाम में 500 ट्रांसक्रिप्ट संसाधित कर सकता है, साथ ही उन सूक्ष्म बातों को भी पकड़ सकता है जिन्हें अनुभवी विश्लेषक भी चूक सकते हैं।

PEAD.txt: संख्याओं से ज़्यादा मायने रखता है टेक्स्ट

फिलाडेल्फिया फेडरल रिज़र्व बैंक के शोधकर्ताओं (Meursault, Liang, Routledge, Scanlon) ने PEAD.txt पेपर प्रकाशित किया, जिसने पाठ्य जानकारी के मूल्य के बारे में धारणाओं को उलट दिया। उन्होंने मानक अर्निंग्स सरप्राइज़ का एक टेक्स्ट-आधारित समकक्ष बनाया — SUE.txt — जो संख्यात्मक अर्निंग्स मान का बिल्कुल उपयोग नहीं करता

परिणाम? SUE.txt क्लासिक PEAD की तुलना में दोगुना बड़ा ड्रिफ्ट उत्पन्न करता है। इसके अलावा: हाल के वर्षों में, जब संख्यात्मक आश्चर्यों पर आधारित क्लासिक PEAD लगभग गायब हो गया है (बाज़ार ने सीख लिया), पाठ्य ड्रिफ्ट अभी भी महत्वपूर्ण बना हुआ है। बाज़ार ने संख्याओं को जल्दी संसाधित करना सीख लिया, लेकिन अभी भी टेक्स्ट व्याख्या से जूझ रहा है।

यह अर्निंग्स कॉल्स के लिए NLP-आधारित दृष्टिकोण के पक्ष में मूलभूत तर्क है।

सेंटिमेंट से सिमेंटिक्स तक: दृष्टिकोणों का विकास

From sentiment to semantics

पहली पीढ़ी: बैग-ऑफ-वर्ड्स और शब्दकोश (2000-2015)

यह सब लॉफ्रान-मैकडोनाल्ड शब्दकोश (2011) से शुरू हुआ — एक शब्द सूची जिसे "सकारात्मक," "नकारात्मक," "अनिश्चित," और "मुकदमेबाज़ी" के रूप में लेबल किया गया था। विचार अपनी सरलता में सुंदर था: 10-K फाइलिंग में नकारात्मक शब्दों का प्रतिशत गिनें और उस पर ट्रेड करें।

समस्या? वित्तीय संदर्भ में "outstanding" शब्द अक्सर "उत्कृष्ट परिणाम" के बजाय "बकाया ऋण" का अर्थ रखता है। रिस्क मैनेजमेंट में "risk" शब्द कोई नकारात्मक संकेत नहीं है — यह एक प्रक्रिया विवरण है। मानक NLP सेंटिमेंट शब्दकोश वित्तीय टेक्स्ट पर शर्मनाक रूप से खराब प्रदर्शन करते थे।

लॉफ्रान और मैकडोनाल्ड ने एक विशेष शब्दकोश बनाया, जिसने स्थिति में सुधार किया, लेकिन मूलभूत समस्या बनी रही: बैग-ऑफ-वर्ड्स संदर्भ को नहीं समझता। "हम अपेक्षाओं को पूरा करने में विफल नहीं हुए" — यहां दो "नकारात्मक" शब्द हैं, लेकिन अर्थ सकारात्मक है।

दूसरी पीढ़ी: FinBERT और ट्रांसफॉर्मर्स (2019-2023)

2019 में, दोगु अराजी ने FinBERT प्रकाशित किया — Reuters TRC2 के वित्तीय टेक्स्ट पर फाइन-ट्यून किया गया BERT। परिणाम प्रभावशाली थे: Financial PhraseBank डेटासेट पर स्टेट-ऑफ-द-आर्ट की तुलना में 14 प्रतिशत अंकों का सुधार। FinBERT संदर्भ को समझता था: "debt" के पास "outstanding" — नकारात्मक, "performance" के पास — सकारात्मक।

लेकिन FinBERT की एक सीमा थी: 512-टोकन का कॉन्टेक्स्ट विंडो। एक अर्निंग्स कॉल 8,000-12,000 शब्दों का होता है। चंक्स में विभाजित करना और सेंटिमेंट का औसत निकालना पैराग्राफ के बीच सिमेंटिक्स को खो देता है। CEO आशावाद के साथ शुरू कर सकता है, फिर Q&A के दौरान संयोगवश सप्लाई चेन की समस्याओं का उल्लेख कर सकता है। FinBERT प्रत्येक चंक का स्वतंत्र रूप से विश्लेषण करता है और इस विरोधाभास को चूक जाता है।

तीसरी पीढ़ी: लंबे कॉन्टेक्स्ट वाले LLM (2023-वर्तमान)

128K-1M टोकन कॉन्टेक्स्ट विंडो वाले GPT-4, Claude, Gemini ने खेल के नियम बदल दिए। अब आप एक बार में पूरा ट्रांसक्रिप्ट लोड कर सकते हैं और ऐसे प्रश्न पूछ सकते हैं जिनके लिए पूरे दस्तावेज़ को समझने की आवश्यकता होती है।

मुख्य अध्ययन — लोपेज़-लीरा और टैंग (2023) "Can ChatGPT Forecast Stock Price Movements?" 50,000 से अधिक हेडलाइनों पर, GPT-4 ने प्रारंभिक बाज़ार प्रतिक्रिया की दिशा की भविष्यवाणी करने में ~90% हिट रेट दिखाई और बाद के ड्रिफ्ट की महत्वपूर्ण भविष्यवाणी की, विशेष रूप से स्मॉल-कैप कंपनियों और नकारात्मक समाचारों के लिए। पहले के मॉडल (GPT-1, GPT-2, BERT) ने यह क्षमता नहीं दिखाई — भविष्यसूचक शक्ति बड़े मॉडलों की एक उभरती संपत्ति के रूप में सामने आती है।

BloombergGPT (2023) — Bloomberg के वित्तीय कॉर्पस पर प्रशिक्षित 50-बिलियन पैरामीटर मॉडल — ने वित्तीय NER, समाचार वर्गीकरण, और सेंटिमेंट विश्लेषण में सुधार प्रदर्शित किया। FinGPT — इसका ओपन-सोर्स विकल्प — डेटा-केंद्रित दृष्टिकोण और RAG का उपयोग करके वित्तीय सेंटिमेंट कार्यों पर 89% सटीकता प्राप्त करता है।

MarketSenseAI, जो S&P 100 विश्लेषण के लिए चेन-ऑफ-थॉट और इन-कॉन्टेक्स्ट लर्निंग के साथ GPT-4 का उपयोग करता है, ने 15 महीनों के परीक्षण में 10-30% अतिरिक्त अल्फा और 72% तक का संचयी रिटर्न दिखाया। हां, इन आंकड़ों को सावधानी के साथ लिया जाना चाहिए (बैकटेस्ट ≠ लाइव ट्रेडिंग), लेकिन प्रवृत्ति स्पष्ट है।

डेटा पाइपलाइन: डेटा कहां से प्राप्त करें

SEC EDGAR: आधिकारिक स्रोत

US इक्विटी के लिए, प्राथमिक स्रोत SEC EDGAR है। अर्निंग्स कॉल्स आम तौर पर सीधे फाइल नहीं की जाती हैं, लेकिन संबंधित दस्तावेज़ उपलब्ध हैं:

  • 8-K फाइलिंग (Item 2.02 — परिचालन परिणाम) — परिणामों के साथ प्रेस विज्ञप्तियां, अक्सर ट्रांसक्रिप्ट के साथ exhibit 99 शामिल होता है
  • 10-Q / 10-K — Management Discussion & Analysis (MD&A) के साथ तिमाही और वार्षिक रिपोर्टें — यह भी एक मूल्यवान टेक्स्ट स्रोत है
  • DEF 14A — प्रबंधन मुआवज़े की जानकारी के साथ प्रॉक्सी स्टेटमेंट
from edgar import Company

company = Company("AAPL")
filings = company.get_filings(form="8-K")

for filing in filings.latest(10):
    if "2.02" in str(filing.items):
        doc = filing.document()
        text = doc.text()  # Full text with exhibits
        print(f"{filing.filing_date}: {len(text)} chars")

Seeking Alpha और कमर्शियल API

अर्निंग्स कॉल ट्रांसक्रिप्ट एक अलग उत्पाद हैं। Seeking Alpha ऐतिहासिक रूप से मुख्य मुफ्त स्रोत था, लेकिन अब पहुंच को प्रतिबंधित करता है। कमर्शियल विकल्प:

  • Seeking Alpha Premium API — स्पीकर लेबल के साथ पूर्ण ट्रांसक्रिप्ट
  • AlphaVantage Earnings API — सीमाओं के साथ मुफ्त टियर
  • Financial Modeling Prep — ट्रांसक्रिप्ट + फंडामेंटल
  • Earnings Call Edge / Motley Fool Transcripts — वैकल्पिक स्रोत

क्रिप्टो: गवर्नेंस कॉल्स और DAO प्रस्ताव

यहां चीज़ें दिलचस्प हो जाती हैं। प्रमुख DeFi प्रोटोकॉल अपने अर्निंग्स कॉल के समकक्ष आयोजित करते हैं:

  • Uniswap — गवर्नेंस कॉल्स, कम्युनिटी कॉल्स, YouTube पर रिकॉर्डिंग
  • Aave — मासिक कम्युनिटी कॉल्स + गवर्नेंस फोरम प्रस्ताव
  • MakerDAO — गवर्नेंस कॉल्स + व्यापक फोरम चर्चाएं
  • Compound — विस्तृत चर्चाओं के साथ गवर्नेंस प्रस्ताव

क्रिप्टो कॉल ट्रांसक्रिप्ट आमतौर पर असंरचित होते हैं। समाधान — YouTube रिकॉर्डिंग को ट्रांसक्राइब करने के लिए OpenAI का Whisper:

import openai
from yt_dlp import YoutubeDL

def transcribe_governance_call(youtube_url: str) -> str:
    """Download audio from YouTube and transcribe via Whisper."""
    ydl_opts = {
        'format': 'bestaudio/best',
        'postprocessors': [{
            'key': 'FFmpegExtractAudio',
            'preferredcodec': 'mp3',
            'preferredquality': '64',  # Low bitrate is sufficient for speech
        }],
        'outtmpl': '/tmp/governance_call.%(ext)s',
    }

    with YoutubeDL(ydl_opts) as ydl:
        ydl.download([youtube_url])

    client = openai.OpenAI()

    with open("/tmp/governance_call.mp3", "rb") as audio_file:
        transcript = client.audio.transcriptions.create(
            model="whisper-1",
            file=audio_file,
            response_format="verbose_json",
            timestamp_granularities=["segment"]
        )

    return transcript.text

Whisper API के माध्यम से ट्रांसक्रिप्शन की लागत: 0.006/मिनट।एकघंटेकीगवर्नेंसकॉलकीलागत 0.006/मिनट। एक घंटे की गवर्नेंस कॉल की लागत ~0.36 है। सेल्फ-होस्टेड विकल्प के लिए — Whisper Large-v3 Turbo एक आधुनिक GPU पर 60 मिनट की फाइल को ~17 सेकंड (216x रीयल-टाइम) में ट्रांसक्राइब करता है।

LLM प्रॉम्प्टिंग रणनीतियां: नादान से प्रोडक्शन-ग्रेड तक

Signal extraction pipeline

रणनीति 1: डायरेक्ट सेंटिमेंट (कमज़ोर)

सबसे नादान दृष्टिकोण — मॉडल से सीधे पूछें:

"क्या यह अर्निंग्स कॉल शेयर की कीमत के लिए सकारात्मक है या नकारात्मक?"

क्या यह काम करता है? हां, आश्चर्यजनक रूप से। लोपेज़-लीरा और टैंग ने दिखाया कि इतना आदिम प्रॉम्प्ट भी सांख्यिकीय रूप से महत्वपूर्ण भविष्यवाणियां देता है। लेकिन समस्याएं हैं:

  • बाइनरी आउटपुट — आप ग्रेडेशन खो देते हैं। "आपदा" और "हल्की निराशा" को एक ही लेबल मिलता है
  • कोई स्पष्टीकरण नहीं — यह स्पष्ट नहीं है कि मॉडल ने अपने निर्णय का आधार किस पर रखा
  • अस्थिरता — एक दोहराए गए रन में एक अलग उत्तर मिल सकता है

रणनीति 2: चेन-ऑफ-थॉट के साथ संरचित निष्कर्षण (मज़बूत)

विचार: एक ही संख्या के बजाय, सिग्नलों का एक संरचित सेट निकालें, मॉडल को प्रत्येक चरण को समझाने के लिए मजबूर करें।

from pydantic import BaseModel, Field
from openai import OpenAI
from enum import Enum
from typing import Optional


class SentimentLevel(str, Enum):
    VERY_BEARISH = "very_bearish"
    BEARISH = "bearish"
    NEUTRAL = "neutral"
    BULLISH = "bullish"
    VERY_BULLISH = "very_bullish"


class GuidanceSurprise(BaseModel):
    """Deviation of forward guidance from consensus expectations."""
    revenue_guidance_vs_consensus: Optional[float] = Field(
        None, description="% deviation of revenue guidance from consensus"
    )
    margin_guidance_direction: Optional[str] = Field(
        None, description="expanding / stable / contracting"
    )
    key_quote: str = Field(
        description="Verbatim quote with guidance"
    )
    reasoning: str = Field(
        description="CoT: why this guidance matters"
    )


class ConfidenceMetrics(BaseModel):
    """Management confidence metrics."""
    hedge_word_count: int = Field(
        description="Number of hedge words: 'approximately', 'potentially', 'subject to'"
    )
    forward_looking_ratio: float = Field(
        description="Ratio of forward-looking statements to total statements"
    )
    q_and_a_evasion_count: int = Field(
        description="Number of questions where CEO/CFO gave an evasive answer"
    )
    ceo_vs_cfo_sentiment_delta: float = Field(
        description="Sentiment difference between CEO and CFO (-1 to 1). Divergence is a red flag"
    )


class CompetitiveIntelligence(BaseModel):
    """Mentions of competitors and market position."""
    competitors_mentioned: list[str] = Field(
        description="List of mentioned competitors"
    )
    market_share_claims: list[str] = Field(
        description="Market share claims"
    )
    new_product_signals: list[str] = Field(
        description="Signals about new products/services"
    )


class ManagementSignals(BaseModel):
    """Management signals."""
    turnover_risk: SentimentLevel = Field(
        description="Risk of key management turnover"
    )
    tone_shift_from_previous: Optional[str] = Field(
        None, description="How tone changed compared to last quarter"
    )
    insider_language_flags: list[str] = Field(
        description="Marker phrases: 'exploring strategic alternatives', 'right-sizing', etc."
    )


class EarningsCallAnalysis(BaseModel):
    """Complete earnings call analysis."""
    ticker: str
    quarter: str
    overall_sentiment: SentimentLevel
    sentiment_score: float = Field(description="from -1.0 to 1.0")
    guidance_surprise: GuidanceSurprise
    confidence_metrics: ConfidenceMetrics
    competitive_intel: CompetitiveIntelligence
    management_signals: ManagementSignals
    key_risks: list[str]
    key_catalysts: list[str]
    one_line_summary: str


def analyze_earnings_call(transcript: str, ticker: str, quarter: str) -> EarningsCallAnalysis:
    """
    Extract structured signals from an earnings call.
    Cost: ~$0.15-0.30 per call (GPT-4o, ~10K tokens input).
    """
    client = OpenAI()

    system_prompt = """You are a senior equity research analyst with 20 years of experience.
Analyze the following earnings call transcript and extract structured trading signals.

IMPORTANT INSTRUCTIONS:
1. Use Chain-of-Thought reasoning for each field — explain WHY before giving the value
2. Focus on DEVIATIONS from expectations, not absolute statements
3. Pay special attention to Q&A section — management is less scripted there
4. Compare management's language to typical corporate hedging baseline
5. Flag any "strategic alternatives", "right-sizing", or other euphemisms
6. Score sentiment relative to market expectations, not in absolute terms

HEDGE WORDS TO COUNT: approximately, potentially, subject to, may, might,
could, uncertain, challenging, headwinds, navigate, prudent, cautious,
evolving, dynamic, unprecedented, transitional"""

    completion = client.beta.chat.completions.parse(
        model="gpt-4o",
        messages=[
            {"role": "system", "content": system_prompt},
            {"role": "user", "content": f"Ticker: {ticker}\nQuarter: {quarter}\n\n{transcript}"}
        ],
        response_format=EarningsCallAnalysis,
        temperature=0.1,  # Low temperature for reproducibility
    )

    return completion.choices[0].message.parsed

कई मुख्य बिंदुओं पर ध्यान दें:

Pydantic स्कीमा — OpenAI Structured Outputs 100% स्कीमा अनुपालन की गारंटी देता है। अब "sorry, I cannot parse the JSON" नहीं। प्रत्येक फील्ड में एक विवरण होता है जो विश्लेषण के एक विशिष्ट पहलू के लिए एक मिनी-प्रॉम्प्ट के रूप में कार्य करता है।

स्कीमा के भीतर चेन-ऑफ-थॉटreasoning और key_quote फील्ड मॉडल को "अपना काम दिखाने" के लिए मजबूर करते हैं। यह न केवल गुणवत्ता में सुधार करता है (मॉडल को निर्णय लेने से पहले एक विशिष्ट उद्धरण खोजने के लिए मजबूर किया जाता है) बल्कि नियामकों के लिए एक ऑडिट ट्रेल भी बनाता है।

तापमान 0.1 — हम रचनात्मकता नहीं चाहते। हमें पुनरुत्पादनीयता चाहिए। तापमान 0 पर, मॉडल कभी-कभी पैटर्न में "फंस" जाता है; 0.1 इष्टतम समझौता है।

रणनीति 3: ऐतिहासिक उदाहरणों के साथ फ्यू-शॉट

और भी शक्तिशाली — मॉडल को वास्तविक बाज़ार प्रतिक्रियाओं के साथ पिछले अर्निंग्स कॉल्स के उदाहरण दें:

few_shot_examples = """
EXAMPLE 1:
Transcript excerpt: "We are cautiously optimistic about the second half...
While we continue to navigate macro headwinds, our pipeline remains robust."
Actual market reaction: -3.2% (next day)
Analysis: Despite surface-level positivity, "cautiously optimistic" is a
DOWNGRADE from previous quarter's "very confident". Five hedge words in
two sentences. Market read through the hedging.

EXAMPLE 2:
Transcript excerpt: "Frankly, demand has exceeded our ability to supply.
We're expediting CapEx to address this."
Actual market reaction: +7.8% (next day)
Analysis: "Frankly" signals genuine surprise even from management.
Accelerated CapEx on demand = strong confidence. No hedging language.
"""

फ्यू-शॉट उदाहरण मॉडल को कैलिब्रेट करने में मदद करते हैं: यह सीखता है कि वॉल स्ट्रीट की भाषा में "cautiously optimistic" सकारात्मक नहीं है — यह एक हल्का नकारात्मक है। उदाहरणों के बिना, LLM शब्दों को शाब्दिक रूप से समझ सकता है।

सिग्नलों के चार प्रकार

1. गाइडेंस सरप्राइज़

सबसे प्रत्यक्ष सिग्नल। एक कंपनी अगली तिमाही/वर्ष के लिए एक पूर्वानुमान (गाइडेंस) प्रदान करती है, और बाज़ार सर्वसम्मति से विचलन पर प्रतिक्रिया देता है। एक LLM गाइडेंस निकाल सकता है, भले ही प्रबंधन इसे अस्पष्ट रूप से बताए:

  • "We expect revenues in the range of..." — प्रत्यक्ष गाइडेंस, पार्स करना आसान
  • "We feel comfortable with current Street estimates" — सर्वसम्मति की अप्रत्यक्ष पुष्टि
  • "There are puts and takes relative to consensus" — अप्रत्यक्ष जोखिम सिग्नल

एक LLM तीनों वाक्यांशों को समझता है; regex केवल पहले को समझता है।

2. आत्मविश्वास मेट्रिक्स: हेज-वर्ड डेंसिटी

यह मेरा पसंदीदा सिग्नल है क्योंकि यह प्रत्युत्पादक है। सार यह है: प्रबंधक कानूनी प्रशिक्षण और पैरानॉयड कानूनी विभागों वाले लोग होते हैं। जब चीज़ें अच्छी चल रही होती हैं, तो वे खुद को विशिष्ट होने की अनुमति देते हैं। जब समस्याएं पनप रही होती हैं — वे हेज करना शुरू कर देते हैं।

ट्रैक करने योग्य मेट्रिक्स:

मेट्रिक विवरण बेयरिश सिग्नल
हेज-वर्ड डेंसिटी प्रति 1,000 शब्दों में हेज शब्दों का हिस्सा प्रति 1,000 शब्दों में > 15
निश्चितता अनुपात "will/expect" बनाम "may/could" का अनुपात < 1.5
Q&A टालमटोल दर बिना प्रत्यक्ष उत्तर वाले प्रश्नों का % > 30%
CEO/CFO डेल्टा CEO और CFO के बीच स्वर का अंतर [-1, 1] पैमाने पर > 0.3

अंतिम बिंदु विशेष रूप से दिलचस्प है। CEO एक कथाकार है — उसका काम एक सुंदर तस्वीर पेश करना है। CFO वह है जो ऑडिटरों के प्रति जवाबदेह है। जब CEO कहता है "transformative growth ahead" और CFO तुरंत हस्तक्षेप करता है "while maintaining disciplined cost management" — यह विचलन आंतरिक तनावों का संकेत देता है।

3. प्रतिस्पर्धी इंटेलिजेंस

एक LLM ट्रांसक्रिप्ट से प्रतिस्पर्धियों के उल्लेखों को निकाल सकता है, भले ही प्रबंधन प्रत्यक्ष नामों से बचता हो। "The largest player in the market" — यह GPT-4 के लिए कोई रहस्य नहीं है यदि वह उद्योग को जानता है।

ट्रेडिंग सिग्नल: यदि कंपनी A अपने अर्निंग्स कॉल के दौरान प्रतिस्पर्धी B का नकारात्मक संदर्भ में उल्लेख करती है ("we're taking share from..."), तो यह न केवल A (लॉन्ग) के लिए बल्कि B (शॉर्ट) के लिए भी एक सिग्नल है। एक पेयर्स ट्रेड।

4. प्रबंधन टर्नओवर सिग्नल

प्रबंधन परिवर्तनों या रणनीतिक पिवट के लिए मार्कर वाक्यांश:

  • "Exploring strategic alternatives" — संभावित कंपनी बिक्री
  • "Right-sizing our operations" — सामूहिक छंटनी
  • "The board has initiated a comprehensive review" — CEO जल्द ही जाएगा
  • "We're bringing in fresh perspectives" — मौजूदा टीम विफल रही है

इनमें से प्रत्येक वाक्यांश का बाद की मूल्य गतिशीलता के साथ सांख्यिकीय रूप से महत्वपूर्ण सहसंबंध है। एक LLM इन्हें शून्य फॉल्स पॉज़िटिव के साथ पहचान सकता है — क्योंकि यह संदर्भ को समझता है, regex के विपरीत, जो उत्पाद लाइन विवरण में "strategic alternatives" को पकड़ सकता है।

बैकटेस्टिंग: इवेंट स्टडी मेथोडोलॉजी

Event study results

हम सिग्नल जेनरेट कर रहे हैं — बढ़िया। लेकिन क्या वे काम करते हैं? मानक सत्यापन विधि संचयी असामान्य रिटर्न (CAR) की गणना के साथ एक इवेंट स्टडी है।

मेथोडोलॉजी

  1. इवेंट को परिभाषित करें — अर्निंग्स कॉल की तारीख
  2. एस्टिमेशन विंडो — "सामान्य" रिटर्न का अनुमान लगाने के लिए इवेंट से पहले [-250, -30] ट्रेडिंग दिन
  3. इवेंट विंडो — इवेंट के आसपास [-1, +60] दिन
  4. सामान्य रिटर्न की गणना करें मार्केट मॉडल के माध्यम से: Rit=αi+βiRmt+ϵitR_{it} = \alpha_i + \beta_i R_{mt} + \epsilon_{it}
  5. असामान्य रिटर्न — वास्तविक और "सामान्य" रिटर्न के बीच का अंतर
  6. CAR — इवेंट विंडो पर असामान्य रिटर्न का संचयी योग
import numpy as np
import pandas as pd
from scipy import stats
from dataclasses import dataclass


@dataclass
class EventStudyResult:
    car: np.ndarray          # Cumulative abnormal returns by day
    t_stats: np.ndarray      # t-statistics for each day
    avg_car_3d: float        # CAR[-1, +1]
    avg_car_30d: float       # CAR[-1, +30]
    avg_car_60d: float       # CAR[-1, +60]
    p_value_3d: float
    p_value_30d: float
    n_events: int


def run_event_study(
    returns: pd.DataFrame,       # Daily stock returns (columns = tickers)
    market_returns: pd.Series,   # Daily market index returns
    events: pd.DataFrame,        # DataFrame with columns: [ticker, date, signal_score]
    estimation_window: int = 220,
    gap: int = 30,
    event_window: tuple = (-1, 60),
) -> EventStudyResult:
    """
    Event study to evaluate the predictive power of LLM signals.

    Sort events by signal_score, form long/short portfolios,
    calculate CAR and test statistical significance.
    """
    all_cars = []

    for _, event in events.iterrows():
        ticker = event['ticker']
        event_date = event['date']

        if ticker not in returns.columns:
            continue

        try:
            event_idx = returns.index.get_loc(event_date, method='ffill')
        except KeyError:
            continue

        est_start = event_idx - estimation_window - gap
        est_end = event_idx - gap

        if est_start < 0:
            continue

        y = returns.iloc[est_start:est_end][ticker].values
        x = market_returns.iloc[est_start:est_end].values

        mask = ~(np.isnan(y) | np.isnan(x))
        if mask.sum() < 60:  # Minimum 60 observations
            continue

        y_clean, x_clean = y[mask], x[mask]

        slope, intercept, _, _, _ = stats.linregress(x_clean, y_clean)
        residual_std = np.std(y_clean - (intercept + slope * x_clean))

        ev_start = event_idx + event_window[0]
        ev_end = event_idx + event_window[1] + 1

        if ev_end > len(returns):
            continue

        actual = returns.iloc[ev_start:ev_end][ticker].values
        market = market_returns.iloc[ev_start:ev_end].values

        expected = intercept + slope * market
        ar = actual - expected
        car = np.cumsum(ar)

        all_cars.append(car)

    if not all_cars:
        raise ValueError("No valid events found")

    min_len = min(len(c) for c in all_cars)
    all_cars = np.array([c[:min_len] for c in all_cars])

    mean_car = np.mean(all_cars, axis=0)
    std_car = np.std(all_cars, axis=0) / np.sqrt(len(all_cars))
    t_stats = mean_car / (std_car + 1e-10)

    offset = -event_window[0]  # Shift to event date

    car_3d = mean_car[min(offset + 1, min_len - 1)] if min_len > offset + 1 else mean_car[-1]
    car_30d = mean_car[min(offset + 30, min_len - 1)] if min_len > offset + 30 else mean_car[-1]
    car_60d = mean_car[min(offset + 60, min_len - 1)] if min_len > offset + 60 else mean_car[-1]

    n = len(all_cars)
    p_3d = 2 * (1 - stats.t.cdf(abs(car_3d / (np.std([c[min(offset+1, min_len-1)] for c in all_cars]) / np.sqrt(n) + 1e-10)), df=n-1))
    p_30d = 2 * (1 - stats.t.cdf(abs(car_30d / (np.std([c[min(offset+30, min_len-1)] for c in all_cars]) / np.sqrt(n) + 1e-10)), df=n-1))

    return EventStudyResult(
        car=mean_car,
        t_stats=t_stats,
        avg_car_3d=car_3d,
        avg_car_30d=car_30d,
        avg_car_60d=car_60d,
        p_value_3d=p_3d,
        p_value_30d=p_30d,
        n_events=n,
    )


def backtest_llm_signals(
    llm_signals: pd.DataFrame,  # [ticker, date, sentiment_score]
    returns: pd.DataFrame,
    market_returns: pd.Series,
):
    """Backtest: long top-quintile signals, short bottom-quintile."""

    llm_signals['quintile'] = pd.qcut(
        llm_signals['sentiment_score'], 5, labels=[1, 2, 3, 4, 5]
    )

    long_events = llm_signals[llm_signals['quintile'] == 5].copy()
    short_events = llm_signals[llm_signals['quintile'] == 1].copy()

    long_result = run_event_study(returns, market_returns, long_events)
    short_result = run_event_study(returns, market_returns, short_events)

    print(f"LONG portfolio (top quintile LLM sentiment):")
    print(f"  CAR[0,+3]:  {long_result.avg_car_3d:+.2%} (p={long_result.p_value_3d:.4f})")
    print(f"  CAR[0,+30]: {long_result.avg_car_30d:+.2%} (p={long_result.p_value_30d:.4f})")
    print(f"  N events:   {long_result.n_events}")

    print(f"\nSHORT portfolio (bottom quintile LLM sentiment):")
    print(f"  CAR[0,+3]:  {short_result.avg_car_3d:+.2%} (p={short_result.p_value_3d:.4f})")
    print(f"  CAR[0,+30]: {short_result.avg_car_30d:+.2%} (p={short_result.p_value_30d:.4f})")
    print(f"  N events:   {short_result.n_events}")

    ls_3d = long_result.avg_car_3d - short_result.avg_car_3d
    ls_30d = long_result.avg_car_30d - short_result.avg_car_30d
    print(f"\nLONG-SHORT spread:")
    print(f"  CAR[0,+3]:  {ls_3d:+.2%}")
    print(f"  CAR[0,+30]: {ls_30d:+.2%}")

हम क्या देखने की उम्मीद करते हैं

मौजूदा शोध के आधार पर, LLM सिग्नल के लिए यथार्थवादी CAR:

विंडो लॉन्ग पोर्टफोलियो शॉर्ट पोर्टफोलियो L/S स्प्रेड
[0, +1] +0.8% — +1.5% -0.5% — -1.2% 1.3% — 2.7%
[0, +30] +1.5% — +3.0% -1.0% — -2.5% 2.5% — 5.5%
[0, +60] +2.0% — +4.0% -1.5% — -3.5% 3.5% — 7.5%

मुख्य संकेतक सांख्यिकीय महत्व है। p < 0.01 और N > 200 इवेंट्स के साथ, आप एक मज़बूत सिग्नल की बात कर सकते हैं। p > 0.05 के साथ — यह शोर हो सकता है।

प्रोडक्शन इम्प्लीमेंटेशन: Jupyter से प्रोड तक

रीयल-टाइम पाइपलाइन आर्किटेक्चर

YouTube/Audio Stream
       │
       ▼
┌─────────────────┐    ┌──────────────────┐
│  Whisper         │───▶│  Transcript       │
│  Transcription   │    │  Buffer           │
│  (streaming)     │    │  (Redis Stream)   │
└─────────────────┘    └──────────────────┘
                              │
                    ┌─────────┴─────────┐
                    ▼                   ▼
            ┌──────────────┐   ┌──────────────┐
            │ Real-time    │   │ Full-call    │
            │ Chunk Anal.  │   │ Analysis     │
            │ (every 5min) │   │ (after call  │
            │              │   │  ends)       │
            └──────────────┘   └──────────────┘
                    │                   │
                    ▼                   ▼
            ┌──────────────────────────────┐
            │     Signal Aggregator        │
            │  (confidence-weighted merge) │
            └──────────────────────────────┘
                         │
                         ▼
            ┌──────────────────────────────┐
            │     Trading Engine           │
            │  (position sizing, risk mgmt)│
            └──────────────────────────────┘

लागत विश्लेषण: एक अर्निंग्स कॉल की लागत कितनी है

आइए प्रोडक्शन में एक अर्निंग्स कॉल को संसाधित करने की अर्थव्यवस्था को समझें:

घटक लागत लेटेंसी
Whisper API ट्रांसक्रिप्शन (60 मिनट) $0.36 ~17 सेकंड (Turbo)
GPT-4o संरचित निष्कर्षण $0.15-0.30 ~8-15 सेकंड
GPT-4o रीयल-टाइम चंक विश्लेषण (x12) $1.80-3.60 प्रत्येक ~5 सेकंड
RAG स्टोरेज के लिए एम्बेडिंग $0.01 <1 सेकंड
कुल (पूर्ण पाइपलाइन) $2.30-4.30 ~30 सेकंड कुल

रुकिए, अनुमान $30-50 प्रति कॉल था। ये आंकड़े कहां से आते हैं? यह मॉडल और दृष्टिकोण पर निर्भर करता है:

  • बजट विकल्प (GPT-4o-mini, एक ही पास): $0.50-1.00
  • मानक विकल्प (GPT-4o, संरचित निष्कर्षण + चंक विश्लेषण): $2-5
  • प्रीमियम विकल्प (GPT-4o, कई पास, क्रॉस-वैलिडेशन, ऐतिहासिक तुलना): $15-30
  • हेज-फंड ग्रेड (कई मॉडल + मानव समीक्षा + रीयल-टाइम स्ट्रीमिंग): $30-50+

500 टिकर ट्रेड करने वाले एक क्वांट फंड के लिए, एक अर्निंग्स सीज़न (6 सप्ताह में ~2,000 कॉल) को संसाधित करने की लागत मानक विकल्प के साथ 4,0004,000-10,000 है। प्रति पोज़िशन 1-3% के औसत अल्फा को देखते हुए — ROI खगोलीय है।

लेटेंसी: मिलीसेकंड की दौड़

HFT की दुनिया में, लेटेंसी ही सब कुछ है। लेकिन अर्निंग्स-आधारित रणनीतियों के लिए, स्थिति अलग है:

  1. एक अर्निंग्स कॉल 45-60 मिनट तक चलती है — आपके पास समय है
  2. PEAD 60 दिनों तक फैलता है — पहले सेकंड में प्रवेश करने की ज़रूरत नहीं है
  3. मुख्य डिस्लोकेशन कॉल समाप्त होने के बाद पहले 30 मिनट में होता है

इष्टतम रणनीति दो-चरण है:

  • चरण 1 (रीयल-टाइम): कॉल के दौरान 5-मिनट के चंक्स का विश्लेषण करना, एक प्रारंभिक सिग्नल बनाना
  • चरण 2 (पोस्ट-कॉल): समाप्त होने के 2-5 मिनट बाद पूरे ट्रांसक्रिप्ट का पूर्ण विश्लेषण

चरण 1 उन बाज़ार प्रतिभागियों पर 5-10 मिनट की बढ़त प्रदान करता है जो कॉल के समाप्त होने का इंतज़ार करते हैं। मिड-कैप शेयरों के लिए, यह पर्याप्त है।

क्रिप्टो में विस्तार: DeFi गवर्नेंस और DAO प्रस्ताव

क्रिप्टो बाज़ार LLM अल्फा माइनिंग के लिए एक आदर्श परीक्षण मैदान है। यहां कारण दिए गए हैं:

  1. कम संस्थागत खिलाड़ी — इसका मतलब है दोहन के लिए अधिक अक्षमता
  2. गवर्नेंस = अर्निंग्स कॉल — DAO निर्णय सीधे टोकनॉमिक्स को प्रभावित करते हैं
  3. 24/7 बाज़ार — आप तुरंत प्रतिक्रिया का व्यापार कर सकते हैं
  4. सार्वजनिक डेटा — सभी प्रस्ताव और वोट ऑन-चेन हैं

विश्लेषण के लिए क्रिप्टो इवेंट के प्रकार

गवर्नेंस प्रस्ताव (Aave, Compound, Uniswap)

एक प्रस्ताव प्रोटोकॉल पैरामीटर बदलता है — ब्याज दरें, संपार्श्विक कारक, फी स्विच। एक LLM आर्थिक प्रभाव का मूल्यांकन कर सकता है:

crypto_analysis_prompt = """Analyze this DeFi governance proposal.
Extract:
1. Economic impact on token holders (positive/negative/neutral)
2. TVL impact estimate (increase/decrease/stable + magnitude)
3. Competitive positioning vs other protocols
4. Risk factors introduced by the proposal
5. Historical precedent (similar proposals in other protocols)
6. Likely voting outcome based on forum discussion sentiment

Proposal: {proposal_text}
Forum discussion: {discussion_text}
"""

प्रोटोकॉल अपडेट घोषणाएं

जब Uniswap हुक्स के साथ v4 की घोषणा करता है, या Aave GHO लॉन्च करता है — यह TradFi में एक उत्पाद लॉन्च के बराबर है। एक LLM नैरेटिव मोमेंटम और तकनीकी महत्व का आकलन कर सकता है।

ट्रेज़री रिपोर्ट

बड़े DAO के पास करोड़ों की ट्रेज़री होती है। तिमाही ट्रेज़री रिपोर्ट अर्निंग्स के प्रत्यक्ष समकक्ष हैं। रनवे, बर्न रेट, विविधीकरण — सभी LLM विश्लेषण के लिए उत्तरदायी हैं।

क्रिप्टो सिग्नलों की विशिष्टताएं

TradFi के विपरीत, क्रिप्टो में:

  • ऑन-चेन डेटा नैरेटिव की पुष्टि या खंडन करता है — आप गवर्नेंस कॉल्स में कही गई बातों को वास्तविक प्रोटोकॉल मेट्रिक्स (TVL, वॉल्यूम, सक्रिय उपयोगकर्ता) के साथ क्रॉस-रेफरेंस कर सकते हैं
  • इनसाइडर ट्रेडिंग के रूप में व्हेल वॉलेट — गवर्नेंस चर्चाओं के बाद बड़े वॉलेट मूवमेंट अक्सर वोटिंग से पहले होते हैं
  • CT (क्रिप्टो ट्विटर) के माध्यम से सेंटिमेंट एम्प्लीफिकेशन — गवर्नेंस कॉल से एक सिग्नल ट्विटर नैरेटिव द्वारा बढ़ाया या दबाया जा सकता है

जोखिम और सीमाएं

हैलुसिनेशन: जब मॉडल संख्याओं का आविष्कार करता है

एक LLM ऐसा गाइडेंस "निकाल" सकता है जो ट्रांसक्रिप्ट में नहीं था। यह विशेष रूप से हेज-वर्ड डेंसिटी का विश्लेषण करते समय खतरनाक है: मॉडल वास्तव में मौजूद शब्दों से अधिक या कम गिन सकता है।

समाधान: दो-चरण सत्यापन। LLM निकालता है, डिटरमिनिस्टिक कोड सत्यापित करता है। हेज शब्दों के लिए — LLM मूल्यांकन के समानांतर regex गणना। विचलन > 20% — मैन्युअल समीक्षा के लिए फ्लैग करें।

import re

HEDGE_WORDS = [
    r'\bapproximately\b', r'\bpotentially\b', r'\bsubject to\b',
    r'\bmay\b', r'\bmight\b', r'\bcould\b', r'\buncertain\b',
    r'\bchallenging\b', r'\bheadwinds\b', r'\bnavigate\b',
    r'\bprudent\b', r'\bcautious\b', r'\bevolving\b',
    r'\bdynamic\b', r'\bunprecedented\b', r'\btransitional\b',
]

def verify_hedge_count(text: str, llm_count: int) -> dict:
    """Deterministic verification of LLM hedge word count."""
    regex_count = sum(
        len(re.findall(pattern, text, re.IGNORECASE))
        for pattern in HEDGE_WORDS
    )

    deviation = abs(llm_count - regex_count) / (regex_count + 1)

    return {
        "llm_count": llm_count,
        "regex_count": regex_count,
        "deviation": deviation,
        "needs_review": deviation > 0.2,
    }

कॉन्टेक्स्ट विंडो की सीमाएं

यहां तक कि 128K टोकन भी पर्याप्त नहीं हो सकते हैं यदि आप निम्न फीड करना चाहते हैं:

  • वर्तमान ट्रांसक्रिप्ट (~10K टोकन)
  • तुलना के लिए पिछला ट्रांसक्रिप्ट (~10K)
  • विश्लेषक सर्वसम्मति पूर्वानुमान (~2K)
  • फ्यू-शॉट उदाहरण (~3K)
  • सिस्टम प्रॉम्प्ट (~1K)

कुल ~26K — हम फिट होते हैं। लेकिन यदि आप कॉन्टेक्स्ट के लिए एक 10-K फाइलिंग (~80-120K टोकन) जोड़ते हैं — तो आप पहले से ही सीमा पर हैं। समाधान: लंबे दस्तावेज़ों से प्रासंगिक चंक्स प्राप्त करने के लिए RAG।

पूर्वाग्रह और व्यवस्थित त्रुटियां

LLM ऐतिहासिक डेटा पर प्रशिक्षित होते हैं जहां कुछ वाक्यांश कुछ परिणामों से जुड़े होते थे। लेकिन बाज़ार अनुकूलित होता है:

  • यदि हर कोई GPT-4 के साथ हेज शब्द गिनना शुरू कर देता है, तो प्रबंधक अपनी भाषा बदल देंगे
  • मॉडल प्रशिक्षण डेटा (सर्वाइवरशिप बायस) से पैटर्न के महत्व को अधिक भारित कर सकता है
  • कॉर्पोरेट भाषा विकसित होती है: 2010 में "synergies" का मतलब एक चीज़ था, 2026 में — कुछ और

भीड़भाड़ वाले ट्रेड का जोखिम

यदि 50 क्वांट फंड एक ही ट्रांसक्रिप्ट का विश्लेषण करने के लिए एक ही GPT-4 का उपयोग करते हैं — तो सिग्नल का क्षरण होता है। एक सादृश्य: जब हर कोई संख्यात्मक आश्चर्यों पर PEAD ट्रेड करने लगा, तो विसंगति सिकुड़ गई। पाठ्य सिग्नलों के साथ भी यही होगा, लेकिन देरी के साथ:

  1. अभी (2026) — कुछ ही व्यवस्थित रूप से अर्निंग्स कॉल्स के लिए LLM का उपयोग करते हैं। अल्फा महत्वपूर्ण है
  2. 2-3 वर्षों में — व्यापक अपनाना, अल्फा घटता है
  3. 5 वर्षों में — मूल LLM सिग्नल एक कमोडिटी बन जाते हैं, एज केवल कस्टम मॉडल और अनूठे डेटा में बना रहता है

यह अल्फा सिग्नल का मानक जीवनचक्र है। जब तक यह चले, इसका आनंद लें।

निष्कर्ष के बजाय: एक एक्शन प्लान

यदि आप अर्निंग्स कॉल विश्लेषण के लिए LLM का उपयोग शुरू करना चाहते हैं, तो यहां एक न्यूनतम व्यवहार्य योजना है:

  1. मुफ्त डेटा से शुरू करें — 8-K/10-Q फाइलिंग के लिए SEC EDGAR + EdgarTools
  2. संरचित निष्कर्षण का उपयोग करें — OpenAI Structured Outputs के माध्यम से Pydantic स्कीमा
  3. इवेंट स्टडी के माध्यम से बैकटेस्ट करें — ऐतिहासिक डेटा पर CAR, न्यूनतम 200 इवेंट
  4. फ्यू-शॉट उदाहरण जोड़ें — 5-10 लेबल किए गए उदाहरण गुणवत्ता में मौलिक रूप से सुधार करते हैं
  5. डिटरमिनिस्टिक रूप से सत्यापित करें — LLM निकालता है, regex सत्यापित करता है, मानव ऑडिट करता है
  6. मिड-कैप से शुरू करें — अधिक अल्फा, बड़े फंडों के साथ कम प्रतिस्पर्धा
  7. क्रिप्टो में विस्तार करें — अज्ञात क्षेत्र के रूप में गवर्नेंस कॉल्स और DAO प्रस्ताव

क्वांटिटेटिव विश्लेषण के मूल नियम को याद रखें: यदि कोई सिग्नल सच होने के लिए बहुत अच्छा लगता है — फिर से जांचें। LLM समझ का भ्रम पैदा करते हैं, लेकिन इसके पीछे सांख्यिकीय पैटर्न मैचिंग है। एक शक्तिशाली उपकरण — लेकिन एक उपकरण, कोई भविष्यवक्ता नहीं।


संदर्भ सूची

  1. Ball, R., Brown, P. (1968). An Empirical Evaluation of Accounting Income Numbers. Journal of Accounting Research, 6(2), 159-178. — PEAD की पहली खोज।

  2. Bernard, V.L., Thomas, J.K. (1989). Post-Earnings-Announcement Drift: Delayed Price Response or Risk Premium? Journal of Accounting Research, 27, 1-36. — कैनोनिकल PEAD पेपर।

  3. Loughran, T., McDonald, B. (2011). When Is a Liability Not a Liability? Textual Analysis, Dictionaries, and 10-Ks. Journal of Finance, 66(1), 35-65. — वित्तीय सेंटिमेंट शब्दकोश।

  4. Araci, D. (2019). FinBERT: Financial Sentiment Analysis with Pre-trained Language Models. arXiv:1908.10063. — वित्तीय NLP के लिए BERT, SOTA से +14pp।

  5. Wu, S. et al. (2023). BloombergGPT: A Large Language Model for Finance. arXiv:2303.17564. — Bloomberg का 50B-पैरामीटर मॉडल।

  6. Yang, H. et al. (2023). FinGPT: Open-Source Financial Large Language Models. arXiv:2306.06031. — BloombergGPT का ओपन-सोर्स विकल्प, 89% सटीकता।

  7. Lopez-Lira, A., Tang, Y. (2023). Can ChatGPT Forecast Stock Price Movements? Return Predictability and Large Language Models. arXiv:2304.07619. — GPT-4 ~90% हिट रेट के साथ रिटर्न की भविष्यवाणी करता है।

  8. Meursault, V., Liang, P.J., Routledge, B., Scanlon, M.M. (2023). PEAD.txt: Post-Earnings-Announcement Drift Using Text. Journal of Financial and Quantitative Analysis. — टेक्स्ट-आधारित PEAD संख्यात्मक PEAD से दोगुना बड़ा है।

  9. Fatouros, G. et al. (2024). Can Large Language Models Beat Wall Street? Evaluating GPT-4's Impact on Financial Decision-Making with MarketSenseAI. Neural Computing and Applications. — S&P 100 पर 10-30% अतिरिक्त अल्फा के साथ GPT-4 फ्रेमवर्क।

  10. Chen, Y. et al. (2025). GPT-Signal: Generative AI for Semi-automated Feature Engineering in the Alpha Research Process. arXiv:2410.18448. — LLM के माध्यम से ट्रेडिंग सिग्नलों का स्वचालित निर्माण।

  11. Zhang, X. et al. (2025). Can LLMs Hit Moving Targets? Tracking Evolving Signals in Corporate Disclosures. arXiv:2510.03195. — कॉर्पोरेट खुलासों में "मूविंग टार्गेट्स" का पता लगाना।

  12. Chen, Z. et al. (2025). Large Language Models in Equity Markets: Applications, Techniques, and Insights. Frontiers in Artificial Intelligence. — वित्त में 84 LLM अध्ययनों का सर्वेक्षण।


यह लेख शैक्षिक प्रकृति का है और निवेश सलाह नहीं है। यहां वर्णित किसी भी ट्रेडिंग रणनीति को वास्तविक पूंजी के साथ तैनात करने से पहले पूरी तरह से बैकटेस्टिंग और जोखिम प्रबंधन की आवश्यकता है।

blog.disclaimer

Authors

Eugen Soloviov
Eugen Soloviov

Trading-systems engineer

Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.

Newsletter

बाज़ार से आगे रहें

AI ट्रेडिंग इनसाइट्स, मार्केट एनालिसिस और प्लेटफ़ॉर्म अपडेट के लिए हमारे न्यूज़लेटर को सब्सक्राइब करें।

हम आपकी गोपनीयता का सम्मान करते हैं। किसी भी समय अनसब्सक्राइब करें।