GaiaEx AcademyGaiaEx Academy
Python للتمويل: المكتبات، البيانات، وأول برنامج لك
مطوّرالبرمجة10 min read

Python للتمويل: المكتبات، البيانات، وأول برنامج لك

اللغة الأكثر شعبية في التمويل الكمّي — ابدأ من هنا

مشاركة المنشورات

Python كلغة سير عمل، لا فقط صياغة

فرق التمويل الكمّي نادرًا ما تختار لغة لأناقتها المجرّدة فقط. تختار ما يسمح لباحث بالانتقال من ملفّ CSV فوضويّ إلى إشارة مُختبَرة دون إعادة كتابة العالم كل أسبوع. Python يفوز لأنه قابل للقراءة، قابل للبرمجة النصّية، ويجلس في مركز نظام بيئي رقمي ضخم: الاستيعاب، التنظيف، عمل الخصائص، التصوير، و(بحذر) خدمات الإنتاج.

ثلاثة قيود تظهر في تقريبًا كل مكتب:

  • زمن الرسم البياني الأول — هل تستطيع تحميل شريحة من التاريخ ورؤية الشواذ في دقائق؟
  • التفاعل البيني — هل تستطيع استدعاء واجهات بورصات، قواعد بيانات، ومكتبات تعلّم آلي في عملية واحدة؟
  • القابلية للتكرار — هل يستطيع شخص آخر إعادة بناء بيئتك والحصول على نفس الأرقام؟

Python ليست أسرع لغة لكل دورة معالج مركزي. غالبًا هي المسار الأسرع من السؤال إلى الدليل — وهذا هو العائق الحقيقي.

Typical Python quant stack (logical layers) API / files REST, WS, CSV pandas align, resample NumPy vector math viz / ML matplotlib, sklearn… Notebook for exploration → module for reuse → job or service for schedule Same language; tighten boundaries as the idea survives scrutiny
البيانات تتدفّق داخلًا من التغذيات؛ المكتبات تُكدَّس؛ التصليب يُحرِّك الشيفرة من الدفاتر نحو الوحدات.

بيئات تستطيع إعادة بنائها

ابدأ كل مشروع جادّ من بيئة معزولة حتى لا تُلوِّث تجارب pip install عملًا غير ذي صلة. المسار الكلاسيكي هو python -m venv .venv، فعّلها، ثم ثبّت التبعيات في requirements.txt أو ملفّ قفل من Poetry أو pip-tools.

للتمويل، ثبّت أيضًا بذور العشوائية (random seeds) حيث تهمّ المحاكاة، وسجّل لقطات البيانات (حتى تجزئة hash لملفّ المُدخَل) بجوار النتائج. القابلية للتكرار تتغلّب على رسوم بيانية ذكيّة لمرّة واحدة عندما تسأل لجنة مخاطر ما الذي تغيّر.

python -m venv .venv
source .venv/bin/activate
pip install pandas numpy matplotlib

مكتبات يجب أن تعرفها عن ظهر قلب

NumPy يمنحك مصفوفات متجاورة وحسابًا سريعًا عنصريًّا. pandas يُطبِّق جداولًا مُسمّاة، فهارس زمنية، دمجًا، وgroupby فوقها. Matplotlib (أو Plotly) يُحوِّل السلاسل إلى رسوم بيانية تستطيع الدفاع عنها في اجتماع.

لاتصال العملات الرقمية، تُوحِّد ccxt واجهات بورصات كثيرة خلف سطح واحد — لا تزال تحتاج لقراءة دقّة وحدود معدّل كل منصّة. للأسهم التقليدية، حزم البائعين أو مُحمِّلات شبيهة بياهو شائعة لبيانات التدريب، لا للتداول الحيّ الحساس للزمن.

مخطّط بسيط للعوائد والتقلب

معظم مسارات العمل تنحصر في: تحميل الأسعار → حساب العوائد → استخلاص إحصاءات متحرّكة. هنا نمط مضغوط يستخدم إغلاقات يومية:

import pandas as pd
import numpy as np

df = pd.read_csv("prices.csv", parse_dates=["date"]).set_index("date")
df["ret"] = df["close"].pct_change()
df["vol_20d"] = df["ret"].rolling(20).std() * np.sqrt(252)

التقلب المُحوَّل سنويًّا يضرب الانحراف المعياري اليومي بـ√252 فقط إن تعاملت مع الأيام التقويمية باستمرار — الشموع خلال اليوم تحتاج تحويلًا مختلفًا. وثّق حجم شمعتك بجانب أي رقم تشحنه.

From raw prices to risk stats Pₜ close rₜ ΔP/P σ, VaR rolling windows signal Garbage at ingest poisons every later box — validate timestamps and splits first.
العوائد هي المفصل بين مستويات السعر وتقريبًا كل مقياس مخاطرة أو ألفا لاحق.

من الاختبار الرجعي إلى استدعاءات API

شيفرة البحث وشيفرة الإنتاج تختلفان: الأولى تتحمّل حلقات بطيئة؛ الثانية تحتاج زمن انتظار، إعادة محاولة بتراجع تدريجي، معرّفات أوامر مُتماثِلة القوة (idempotent)، وسجلّات مُهيكَلة. إن أتمتَّت التداول ضدّ منصّات مثل GaiaEx على Hyperliquid، عامل مفاتيح المحفظة، انضباط nonce، والنهائية على السلسلة كجزء من النظام — لا كفكرة لاحقة مُلحَقة بدفتر ملاحظات.

Python يظلّ طبقة تنسيق جيّدة: استدعِ واجهة التداول، اضغط التنفيذات في pandas للتحليلات، وأنذِر على Slack حين تتفعّل حدود المخاطرة. حافظ على المسار الحرج بسيط بما يكفي للتفكير فيه حين تنفتح الأسواق فجائيًّا.