1. أنشئ مخططاً للزخم خلال الجلسة (حالة استخدام)
الهدف: جلب شموع الجلسة لرمز, واحسِب متوسطاً متحركاً سريعاً وبطيئاً، ثم اعرض مخططاً بسيطاً يمكنك مشاركته مع متداول أو محلل.
import os
import pandas as pd
import matplotlib.pyplot as plt
from sahmk import SahmkClient
client = SahmkClient(api_key=os.environ["SAHMK_API_KEY"])
series = client.historical(
"2222",
from_date="2026-05-01",
to_date="2026-05-15",
interval="60m",
)
rows = getattr(series, "data", None) or series.get("data", [])
df = pd.DataFrame(rows)
df["timestamp"] = pd.to_datetime(df["timestamp"])
df = df.sort_values("timestamp")
df["ma_fast"] = df["close"].rolling(5).mean()
df["ma_slow"] = df["close"].rolling(12).mean()
plt.figure(figsize=(10, 4))
plt.plot(df["timestamp"], df["close"], label="Close")
plt.plot(df["timestamp"], df["ma_fast"], label="MA(5)")
plt.plot(df["timestamp"], df["ma_slow"], label="MA(12)")
plt.title("2222 Intraday Momentum (60m)")
plt.legend()
plt.tight_layout()
plt.savefig("intraday-momentum.png", dpi=140)
مثال لمخرجات مولدة من بيانات حقيقية خلال الجلسة.
2. متى تستخدم بيانات الجلسة بدلاً من اليومية
شموع الجلسة مثالية لفحص الإشارات قصيرة الأجل, وتتبع زخم الجلسة وتوقيت التنفيذ. إذا كنت تحتاج فقط إلى سياق متوسط أو طويل الأجل، فعادةً تكفي الشموع اليومية وتكون أقل كلفة في المعالجة.
- فواصل الجلسة:
30m,60m - الفواصل اليومية والمجمّعة:
1d,1w,1m - يعتمد توفر بيانات الجلسة على الباقة وحدود النطاق الزمني
3. إعداد حزمة Python SDK
ثبّت الحزمة أو حدّثها أولاً ليدعم العميل خيارات الفواصل الأحدث.
pip install -U sahmkimport os
from sahmk import SahmkClient
client = SahmkClient(api_key=os.environ["SAHMK_API_KEY"])4. جلب شموع الجلسة باستخدام SDK
ابدأ بنطاق زمني محدود ورمز واحد. ثم وسّع عدد الرموز ووتيرة التشغيل.
# 30m candles for Aramco in a fixed date range
series_30m = client.historical(
"2222",
from_date="2026-05-01",
to_date="2026-05-15",
interval="30m",
)
# 60m candles with same shape
series_60m = client.historical(
"2222",
from_date="2026-05-01",
to_date="2026-05-15",
interval="60m",
)
# Safe extraction for both typed and dict-like responses
rows = getattr(series_30m, "data", None) or series_30m.get("data", [])
latest = rows[-1] if rows else None
print("rows:", len(rows))
print("latest:", latest)rows: 78
latest: {'timestamp': '2026-05-15T14:30:00+03:00', 'open': 27.1, 'high': 27.2, 'low': 27.0, 'close': 27.15, 'volume': 452112}إذا كان إصدار SDK المحلي يتوقع أسماء مختلفة لمعاملات التاريخ، فحدّثه أولاً ثم أعد التشغيل:pip install -U sahmk
5. جلب شموع الجلسة باستخدام Prompts عبر MCP
في Claude أو Cursor، حدّد بوضوح الفاصل والنطاق الزمني وشكل المخرجات.
Prompt
Use get_historical for symbol 2222 with interval 30m from 2026-05-01 to 2026-05-15.
Return count, first timestamp, last timestamp, and latest close.Prompt
Fetch 60m candles for 2222 over the last 10 trading days.
If the plan limit blocks this interval/window, retry with the closest supported range and explain what changed.Prompt
Compare last 5 completed 30m candles for 2222 and 1120.
Show symbol, candle timestamp, close, and volume in a compact table.تستدعي هذه الـPrompts get_historical. أضف تعليمات رجوع احتياطي إلى الأمر كي يتعامل الوكيل بمرونة مع قيود الباقة.
6. ضوابط الباقة ونصائح الموثوقية
- اجعل طلبات بيانات الجلسة محدودة (رمز ونطاق زمني ضيق).
- عالج استجابات حدود الباقة وارجع تلقائياً إلى فاصل ونطاق مدعومين.
- اعتبر الشمعة الأخيرة قيد التكوين قرب حدود الجلسة.
- للاستجابة الفورية الشبيهة بالتكات، انتقل إلى بث WebSocket.
7. الخطوات التالية
- →تابع إلى درس WebSocket في الوقت الفعلي عندما تحتاج إلى تحديثات فورية مدفوعة من الخادم.
- →أبقِ توثيق API مفتوحاً للتحقق من الفواصل ومتطلبات الباقة.
- →استخدم مركز البيانات لتصدير مجموعات بيانات تاريخية منظّمة للتقارير ومدخلات النماذج.
- →استخدم درس إعداد MCP إذا لم يكن وكيلك متصلاً بعد.
المصادر
أنشئ أسرع باستخدام بيانات الجلسة
ابدأ بنطاقات محدودة لبيانات الجلسة عبر SDK أو MCP، ثم توسّع إلى مراقبة الإنتاج والبث الفوري عند الحاجة.