احسب تاريخ تسوية T+1 أو T+2

تُسوّى صفقة لسهم أمريكي أُبرمت يوم الأربعاء 25 نوفمبر 2026 وفق T+1 يوم الجمعة 27 نوفمبر 2026، وتُسوّى صفقات USD/JPY الفورية وفق T+2 يوم الاثنين 30 نوفمبر، لأن الخميس 26 نوفمبر عطلة في الولايات المتحدة. تاريخ التسوية = تاريخ الصفقة زائد N من أيام العمل، مع تجاوز عطلات نهاية الأسبوع وأي يوم تكون فيه دولة معنية في عطلة.

احسب التسوية باستخدام واجهة API

تعني T+1 يوم عمل واحدًا بعد تاريخ الصفقة. تُسوّى الأسهم الأمريكية وصناديق المؤشرات المتداولة وفق T+1 منذ 28 مايو 2024. تُسوّى صفقات FX الفورية عادةً وفق T+2، لكن عدد الأيام تحدده أعراف السوق، لذا استخدم قواعد جهة التداول لديك لاختيار فترة التسوية.

  1. اختر فترة التسوية اضبط days على عدد أيام العمل بعد الصفقة. يستخدم المثال T+1 لسهم أمريكي وT+2 لصفقة USD/JPY فورية. تاريخ الصفقة هو نقطة البداية ولا يُحتسب ضمن تلك الفترة.
  2. اضبط مفتاح API الخاص بك احصل على مفتاح API مجاني واحفظه في متغير البيئة NARWHAL_API_KEY. يقرأ البرنامج النصي ذلك المتغير ويرسل المفتاح بصيغة Authorization: Bearer YOUR_KEY إلى https://api.narwhalapi.com.
  3. اختر الدول استخدم USA لمثال السهم الأمريكي، وكلا الرمزَين USA وJPN لزوج USD/JPY. يطلب البرنامج النصي الإجازات الرسمية عبر GET /v1/calendars/holidays/{country}/{year}. تمنع عطلة في أي دولة ضمن القائمة احتساب ذلك التاريخ.
  4. احسب التواريخ استخدم البرنامج النصي مع تاريخ الصفقة وفترة التسوية وقائمة الدول. يتقدم يومًا تقويميًا في كل مرة، ولا يحتسب اليوم إلا إذا كان من الاثنين إلى الجمعة دون عطلة مدرجة. تُبقي ذاكرة التخزين المؤقت عطلات كل دولة وسنة متاحة دون طلب آخر أثناء مرور الحلقة عبر التواريخ.
    Python، تاريخ التسوية لسهم وزوج عملات
    import os
    from datetime import date, timedelta
    from functools import cache
    import requests
    
    API = "https://api.narwhalapi.com"
    HEADERS = {"Authorization": f"Bearer {os.environ['NARWHAL_API_KEY']}"}
    
    
    @cache  # one request per country and year, however many days the loop walks
    def holidays(country: str, year: int) -> frozenset[str]:
        r = requests.get(
            f"{API}/v1/calendars/holidays/{country}/{year}", headers=HEADERS, timeout=10
        )
        r.raise_for_status()
        return frozenset(h["date"] for h in r.json()["holidays"])
    
    
    def settlement(trade: date, days: int, countries: list[str]) -> date:
        """The date `days` business days after the trade, skipping a day any listed
        country is closed."""
        day = trade
        while days > 0:
            day += timedelta(1)
            closed = any(day.isoformat() in holidays(c, day.year) for c in countries)
            if day.weekday() < 5 and not closed:
                days -= 1
        return day
    
    
    trade = date(2026, 11, 25)
    print("US stock, T+1:", settlement(trade, 1, ["USA"]))
    print("USD/JPY spot, T+2:", settlement(trade, 2, ["USA", "JPN"]))

يستخدم البحث عن العطلات سنة اليوم الجاري فحصه، لذا يمكن للحلقة طلب قائمة الدول المناسبة عند الوصول إلى سنة أخرى. تتبع ذاكرة التخزين المؤقت دالة العطلات، بينما تستقبل دالة التسوية تاريخ كل صفقة وعدد الأيام والدول كمدخلات. تأتي تواريخ العطلات من قائمة holidays في الاستجابة. تقرأ الدالة كل قيمة date وتقارنها بالتاريخ في الحلقة؛ ويمنع التطابق في أي دولة مدرجة احتساب ذلك اليوم ضمن التسوية.

احسب التسوية في جدول بيانات

يمكن لـ Excel وGoogle Sheets حساب عدد أيام العمل نفسه باستخدام WORKDAY. ضع تواريخ الإغلاق في نطاق باسم Holidays، ثم استخدم تاريخ الصفقة وفترة التسوية في الصيغة. لزوج عملات، ادمج قائمتي العطلات للدولتين في ذلك النطاق.

T+1 لتاريخ 25 نوفمبر 2026
=WORKDAY(DATE(2026,11,25), 1, Holidays)
T+2 لتاريخ 25 نوفمبر 2026
=WORKDAY(DATE(2026,11,25), 2, Holidays)

يحدد النطاق Holidays التواريخ التي يجب على الصيغة تجاوزها إضافةً إلى عطلات نهاية الأسبوع. لمثال السهم الأمريكي، استخدم قائمة الولايات المتحدة. لزوج USD/JPY، ضمّن قائمتي الولايات المتحدة واليابان، حتى يُستبعد اليوم من الحساب عند الإغلاق في أي من الدولتين.

لكل من فترة التسوية ونطاق العطلات في الصيغة وظيفة مستقلة. تغيير الفترة من T+1 إلى T+2 يغير عدد أيام العمل التي تحسبها؛ وتغيير النطاق يغير التواريخ المؤهلة للاحتساب. استخدم الدول المعنية بالصفقة عند إعداد النطاق.

متى تستخدم كل خيار

الحالةالخيار الأنسبالسبب
صفقة واحدةWORKDAY في جدول بيانات مع قائمة عطلات مدمجةتحسب الصيغة فترة التسوية باستخدام تواريخ الإغلاق التي تقدمها.
سجل صفقات أو مهمة تسوية ليليةبرنامج Python النصيتحدد قائمة الدول العطلات، وتحسب الدالة التسوية لتاريخ صفقة.
تقويم خاص ببورصة، يشمل الجمعة العظيمة أو الإغلاق المبكرتقويم البورصة الخاصتتضمن قائمة Narwhal الإجازات الرسمية؛ وقد تختلف مواعيد إغلاق البورصات.

هل تتجاوز T+2 عطلة في دولة العملة الأخرى؟

نعم. وفق أعراف FX، تُراعى أيام العمل لكلتا العملتين، لذا تُتجاوز العطلة في أي من الدولتين. لزوج USD/JPY، مرّر كلا الرمزَين USA وJPN إلى الدالة. استخدام قائمة دولة واحدة فقط يستبعد عطلات الدولة الأخرى من الحساب.

تبقى فترة التسوية T+2 عندما تقع عطلة بين الصفقة والتسوية. تؤخر العطلة تاريخ التسوية لأنها لا تُحتسب يوم عمل. تُتجاوز عطلات نهاية الأسبوع أيضًا، حتى بعد احتساب يوم العمل الأول.

ماذا لو كان تاريخ الصفقة نفسه عطلة؟

يصبح أول يوم عمل بعد تاريخ الصفقة هو اليوم 1. يبدأ البرنامج النصي بتاريخ الصفقة المقدَّم، ويتقدم إلى اليوم التقويمي التالي، ثم يبحث عن يوم من الاثنين إلى الجمعة لا توجد فيه عطلة في قائمة الدول.

تُتجاوز أيضًا عطلة نهاية الأسبوع أو أي عطلة أخرى تأتي مباشرةً بعد التاريخ المقدَّم. تستمر الدالة حتى يُحتسب العدد المطلوب من أيام العمل. هذه هي طريقة تعامل البرنامج النصي مع تاريخ الصفقة المقدَّم؛ وتظل فترة التسوية محددةً بأعراف السوق وقواعد جهة التداول لديك.

هل تطابق قائمة الإجازات الرسمية تقويم البورصة؟

ليس دائمًا. تتضمن بيانات العطلات في Narwhal الإجازات الرسمية حسب الدولة، وقد تختلف مواعيد إغلاق البورصات. تُغلق بورصة NYSE يوم الجمعة العظيمة، 3 أبريل 2026، وهو غير موجود في قائمة العطلات الفيدرالية الأمريكية في واجهة API.

استخدم تقويم البورصة الخاص عندما تعتمد التسوية على مواعيد إغلاقها المحددة أو إغلاقها المبكر. تحدد قائمة الدولة الإجازات الرسمية للحساب؛ ولا تضيف إغلاقًا للبورصة غير موجود في تلك القائمة.

مثال تطبيقي: صفقة يوم الأربعاء 25 نوفمبر 2026

ابدأ من الأربعاء 25 نوفمبر 2026. الخميس 26 نوفمبر هو عيد الشكر في الولايات المتحدة، لذا لا يضيف يوم عمل إلى أي من المثالين. الجمعة 27 نوفمبر هو اليوم 1: يصل السهم الأمريكي إلى T+1 وتتم تسويته في ذلك التاريخ.

التاريخسهم أمريكي، T+1صفقة USD/JPY فورية، T+2
الأربعاء 25 نوفمبر 2026تاريخ الصفقةتاريخ الصفقة
الخميس 26 نوفمبر 2026تجاوز عيد الشكرتجاوز عيد الشكر الأمريكي
الجمعة 27 نوفمبر 2026اليوم 1، التسويةاليوم 1
السبت 28 نوفمبر 2026تجاوز عطلة نهاية الأسبوع
الأحد 29 نوفمبر 2026تجاوز عطلة نهاية الأسبوع
الاثنين 30 نوفمبر 2026اليوم 2، التسوية

لزوج USD/JPY، يكون الجمعة أول يوم عمل. لا يضيف السبت والأحد شيئًا إلى العدد، لذا يكون الاثنين 30 نوفمبر هو اليوم 2. تاريخ التسوية T+2 لصفقة 25 نوفمبر 2026 هو الاثنين 30 نوفمبر 2026.

تواريخ التسوية لصفقة 25 نوفمبر 2026
US stock, T+1: 2026-11-27
USD/JPY spot, T+2: 2026-11-30

نُشر في .

الخطوات التالية