Wednesday, September 23, 2026
ابنِ إشارة مشاعر إخبارية لقائمة متابعتك
ابنِ إشارة مشاعر إخبارية لقائمة متابعتك
مشاعر كل مقال على حدة مفيدة، لكن ما تريده غالبًا هو رقم واحد لكل شركة: هل يميل تدفّق الأخبار الآن نحو الإيجاب أم السلب؟ في هذا الدرس ستحوّل مشاعر finlight ودرجة ثقتها إلى درجة واحدة مرجّحة بالثقة لكل رمز سهم، لقائمة متابعة كاملة، باستخدام Python وpandas.
الفكرة
يأتي كل مقال مع sentiment (إيجابي، محايد، سلبي) وconfidence. سنقوم بـ:
- سحب المقالات الحديثة لكل رمز سهم.
- تحويل المشاعر إلى رقم:
+1و0و-1. - ترجيح كل مقال بدرجة ثقته وأخذ المتوسط لكل رمز سهم.
النتيجة درجة بين -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 لتحديث الإشارة في الوقت الفعلي.
تنبيه
المشاعر مُدخَل واحد، لا تنبؤ بالسعر. فقد تتجاهل الأسواق الأخبار السيئة أو تبالغ في رد فعلها على الأخبار الجيدة. تعامل مع هذه الدرجة بوصفها سمة تدمجها مع الحجم والمصدر ونماذجك الخاصة، لا قاعدة تداول قائمة بذاتها.
إلى أين تذهب بعد ذلك
- ما هو تحليل مشاعر الأخبار المالية؟
- التصفية المتقدمة لتحديد نطاق الإشارة بدقة.
- الوثائق الكاملة.
