Wednesday, September 23, 2026

अपनी वॉचलिस्ट के लिए न्यूज़ सेंटीमेंट सिग्नल बनाएँ

Kevin Bartsch

अपनी वॉचलिस्ट के लिए न्यूज़ सेंटीमेंट सिग्नल बनाएँ

प्रति-आर्टिकल सेंटीमेंट उपयोगी है, लेकिन आप अक्सर हर कंपनी के लिए एक ही संख्या चाहते हैं: क्या न्यूज़ फ़्लो अभी सकारात्मक की ओर झुका है या नकारात्मक की ओर? इस ट्यूटोरियल में आप Python और pandas का इस्तेमाल करके finlight के सेंटीमेंट और कॉन्फ़िडेंस को हर टिकर के लिए एक कॉन्फ़िडेंस-वेटेड स्कोर में बदलेंगे, पूरी वॉचलिस्ट के लिए।

विचार

हर आर्टिकल एक sentiment (positive, neutral, negative) और एक confidence के साथ आती है। हम:

  1. हर टिकर के लिए हाल की आर्टिकल्स खींचेंगे।
  2. सेंटीमेंट को एक संख्या में मैप करेंगे: +1, 0, -1
  3. हर आर्टिकल को उसके कॉन्फ़िडेंस से वेट करेंगे और प्रति टिकर औसत निकालेंगे।

नतीजा -1 और +1 के बीच का एक स्कोर होगा जो हर कंपनी की न्यूज़ टोन को सारांशित करता है।

कोड

import pandas as pd

from finlight_client import FinlightApi, ApiConfig
from finlight_client.models import GetArticlesParams

client = FinlightApi(config=ApiConfig(api_key="YOUR_API_KEY"))

WATCHLIST = ["AAPL", "NVDA", "TSLA"]
SCORE = {"positive": 1, "neutral": 0, "negative": -1}

rows = []
for ticker in WATCHLIST:
    response = client.articles.fetch_articles(
        GetArticlesParams(tickers=[ticker], from_="2026-06-01", pageSize=100)
    )
    for article in response.articles:
        if article.sentiment is None:
            continue
        rows.append({
            "ticker": ticker,
            "score": SCORE.get(article.sentiment, 0),
            "confidence": article.confidence or 0.0,
        })

df = pd.DataFrame(rows)

# प्रति टिकर कॉन्फ़िडेंस-वेटेड औसत सेंटीमेंट
df["weighted"] = df["score"] * df["confidence"]
signal = df.groupby("ticker").apply(
    lambda g: g["weighted"].sum() / g["confidence"].sum()
)

print(signal.sort_values(ascending=False))

आपको क्या मिलता है

signal हर टिकर के लिए एक संख्या है:

ticker
NVDA    0.62
AAPL    0.18
TSLA   -0.34

सकारात्मक स्कोर का मतलब है कि हाल का न्यूज़ फ़्लो सकारात्मक की ओर झुका है, नकारात्मक स्कोर का मतलब है कि वह नकारात्मक की ओर झुका है, और परिमाण यह दर्शाता है कि वह झुकाव कितना मज़बूत और कितना भरोसेमंद है। confidence से वेट करने का मतलब है कि उच्च-कॉन्फ़िडेंस वाली खबरों का एक बैच स्कोर को अनिश्चित खबरों के ढेर की तुलना में ज़्यादा हिलाता है।

इसे और बेहतर बनाएँ

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

एक चेतावनी

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

आगे कहाँ जाएँ

अपनी मुफ़्त API key पाएँ →