كيفية الحصول على بيانات الفوركس في بايثون
الإجابة المباشرة
يمكنك الحصول على بيانات الفوركس في بايثون عبر تحميلها من مصدر بيانات (على سبيل المثال، API يعيد معدلات مُؤرخة بالوقت، أو ملف تاريخي قابل للتنزيل، أو تصدير من منصة/وسيط) ثم تحويلها إلى تنسيق سلسلة زمنية متسقة باستخدام أدوات مثل pandas.
كيف يعمل (الآلية)
عادةً ما تعني “البيانات” في الفوركس واحدًا من هذه: أسعار فورية (غالبًا ما تُعرض كمعدلات زوج عملات)، أو أشرطة تاريخية (open/high/low/close بالإضافة إلى الحجم عند توفره)، أو معدلات صرف مرجعية من منهجية محددة. قبل كتابة الكود، حدّد ما تحتاجه:
- الأداة: مُعرّف زوج العملات (مثل USD/EUR كـ “EUR لكل USD” أو العكس). تختلف الرموز بين المصادر.
- أساس الوقت: الطوابع الزمنية والمنطقة الزمنية. قد يوفّر المصدر UTC أو منطقة زمنية محلية أو “وقت السوق”.
- أسلوب أخذ العينات: بيانات على مستوى الـtick، أو أشرطة بالدقيقة، أو أشرطة بالساعة، أو أشرطة يومية.
- اصطلاح الحقل: ما إذا كانت القيم تمثل معدل الزوج مباشرةً أو مقلوبه.
تدفق بايثون نموذجي هو:
- طلب البيانات من المصدر الذي اخترته (استدعاء API أو قراءة ملف).
- تحليل الطوابع الزمنية إلى كائنات
datetime. - توحيد الأعمدة (أسماء قياسية للوقت، bid/ask أو close، إلخ).
- الفرز وإزالة التكرار حسب الطابع الزمني.
- تصفية نطاق التاريخ والتكرار المطلوبين.
على سبيل المثال، إذا كانت بيانات المصدر تُرجع صفوفًا شبيهة بـ CSV، فإن pandas.read_csv(...) مع pd.to_datetime(...) غالبًا ما يكون كافيًا لبناء dataframe يمكنك تحليله.
مثال على نهج مع تحقق مستقل
يساعد روتين تحقق بسيط في اكتشاف المشكلات الشائعة:
- البيانات المفقودة: تحقق من وجود فجوات في فهرس الوقت (خصوصًا مع البيانات داخل اليوم).
- التكرارات: احذف أو اجمع الطوابع الزمنية المتكررة.
- زمن أحادي: تأكد أن مجموعة البيانات مرتبة.
- اتجاه الزوج: تحقق مما إذا كان “المعدل” لدى المصدر يطابق اتجاه base/quote الذي تنويه عبر فحص سريع مقابل الاصطلاحات المعروفة.
- نوع الاقتباس: إذا طلبت “bid” أو “ask”، فتأكد من استخدام الحقل الصحيح.
حتى دون افتراضات عن الوقت الحقيقي، يجب أن تتوقع أن تكون بعض مجموعات البيانات متأخرة أو متاحة جزئيًا أو مُنتجة وفق قواعد مختلفة لتوليد الأشرطة. تعامل ذلك كقيود على جودة البيانات، وليس شيئًا يمكنك إصلاحه بالكامل عبر الكود.
القيود وما الذي يجب التحقق منه
لا يمكنك افتراض أن جميع مصادر بيانات الفوركس تقدّم التعريفات نفسها. من القيود الرئيسية التي يجب أخذها في الاعتبار:
- اختلاف اصطلاحات الاقتباس (معدلات مباشرة مقابل معدلات عكسية).
- اختلاف الطوابع الزمنية (فروقات المنطقة الزمنية وحدود الجلسات).
- قواعد تجميع غير متسقة (كيف يتم تكوين الأشرطة).
- حدود التغطية (قد تكون بعض الأدوات أو التواريخ مفقودة).
نهج مستقل جيد هو أن (1) توثّق اصطلاح الزوج الذي اخترته، (2) تسجل المنطقة الزمنية والتكرار اللذين استخدمتهما، و(3) تشغّل الفحوصات أعلاه قبل أي حسابات لاحقة.