Strasmore Research
تعلَّم Matt Connorبقلم Matt Connor

تعلّم التداول الكمي من كتاب مفتوح المصدر

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

كتاب مفتوح المصدر عن التداول الكمي هو منهج عام مجاني. يعرض المسار الكامل من البيانات الخام إلى إرسال أمر تداول حي، مكتوبًا بالترتيب الذي يواجهه المبتدئ. مخطوطة XQuant: يمكن للجميع أن يصبحوا متداولين كميين، التي نشرها xingwudao على GitHub، مثال واضح على ذلك، وقد حصدت 686 نجمة حتى أغسطس 2026. وتستعرض فصولها التسعة المسار الذي تتبعه معظم المناهج الكمية. تتبع هذه الصفحة ذلك المسار مرحلةً بعد مرحلة، وتحدد الإخفاق المحدد الذي يظهر في كل مرحلة، وتوضح الأجزاء التي تظل صالحة عند الانتقال من الأسهم الصينية من الفئة A إلى الأسهم الأمريكية.

ماذا يتضمن كتاب مفتوح المصدر عن التداول الكمي؟

إذا نزعت العلامة التجارية من أي منهج للمبتدئين، فستبقى خمس مراحل بهذا الترتيب: الحصول على البيانات وتنظيفها، وبناء إشارة منها، واختبار تلك الإشارة على البيانات التاريخية، وتحديد حجم الرهان، ثم إرسال الأمر ودفع التكاليف. وتغطي محتويات XQuant، وفق الالتزام البرمجي 016b66e بتاريخ 14 يوليو 2026، المجال نفسه في تسعة فصول.

  • التحضير، ثم الفصل الأول: تشغيل استراتيجية كاملة من البداية إلى النهاية.
  • الفصل الثاني، ماذا تشتري: البدء بثلاثة صناديق ETF.
  • الفصل الثالث، ما الكمية التي تشتريها: ثلاث طرق لتخصيص رأس المال، مع قياس كل منها مقابل الأخرى.
  • الفصل الرابع، متى تتداول: إعادة الموازنة، ووقف الخسارة، وجني الأرباح.
  • الفصل الخامس، كيف تحكم على جودة الاستراتيجية: أربع زوايا للتحليل.
  • الفصل السادس، لا تحتفل مبكرًا: منع فرط المواءمة.
  • الفصل السابع، من المثالي إلى الواقعي: تنفيذ الصفقات.
  • الفصل الثامن، الحياة بعد الإطلاق: المراقبة، والتشخيص، والتكرار.
  • الفصل التاسع، العثور على فرص جديدة: مقدمة في أبحاث العوامل.

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

المرحلة الأولى: احصل على البيانات، ثم حدّد النطاق

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

الاستعلامرموز US المتداولة في أسبوع من يونيو، وعددها الذي ظل متداولًا في يونيو 2026
استعلام SQL الدقيق وراء كل رقم
WITH june_week AS (
    SELECT toYear(toTimeZone(window_start, 'America/New_York')) AS year,
           ticker
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE toMonth(toTimeZone(window_start, 'America/New_York')) = 6
      AND toDayOfMonth(toTimeZone(window_start, 'America/New_York')) BETWEEN 10 AND 16
      AND toYear(toTimeZone(window_start, 'America/New_York')) BETWEEN 2016 AND 2026
      AND volume > 0
    GROUP BY year, ticker
),
survivors AS (
    SELECT ticker FROM june_week WHERE year = 2026
)
SELECT year,
       uniqExact(ticker) AS tickers_traded,
       uniqExactIf(ticker, ticker IN (SELECT ticker FROM survivors)) AS still_trading_2026,
       round(100 * uniqExactIf(ticker, ticker IN (SELECT ticker FROM survivors))
             / uniqExact(ticker), 1) AS still_trading_pct
FROM june_week
GROUP BY year
ORDER BY year
Run this yourself

من بين 8224 رمز تداول جرى تداولها في ذلك الأسبوع من عام 2016، ظل 50% منها يتداول في الأسبوع نفسه من عام 2026. أما البقية، فقد استحوذت عليها شركات أخرى، أو اندمجت، أو غُيّرت أسماؤها، أو أُزيلت من قوائم التداول. تدرس الاختبارات الرجعية المبنية على قائمة اليوم الرموز التي نجت فقط، وتحمّل الاستراتيجية تكلفة الاحتفاظ بشركات جرى اختيارها بعد معرفة النتائج. وسيزوّدك مصدر بيانات للمبتدئين بقائمة الناجين تلك من دون أي تحذير: يوضّح دليل واجهة برمجة تطبيقات مجانية لبيانات سوق الأسهم ما تحمله هذه المصادر وما لا تحمله.

المرحلة الثانية: حوّل البيانات إلى إشارة

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

المرحلة الثالثة: الاختبار الرجعي، حيث يتوقف معظم المبتدئين

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

الاستعلاممتوسط الفارق بين إغلاق جلسة وافتتاح الجلسة التالية، شهريًا
استعلام SQL الدقيق وراء كل رقم
WITH sessions AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS session,
           argMin(open, window_start) AS session_open,
           argMax(close, window_start) AS session_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'NVDA')
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2024-08-01')
      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-07-31')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY ticker, session
),
gaps AS (
    SELECT ticker,
           session,
           toFloat64(session_open) AS open_px,
           toFloat64(lagInFrame(session_close) OVER (PARTITION BY ticker ORDER BY session)) AS prev_close
    FROM sessions
)
SELECT formatDateTime(toStartOfMonth(session), '%Y-%m') AS month,
       formatDateTimeInJodaSyntax(toStartOfMonth(session), 'MMMM yyyy') AS month_label,
       round(avgIf(abs(open_px / prev_close - 1) * 10000, ticker = 'SPY'), 1) AS spy_gap_bps,
       round(avgIf(abs(open_px / prev_close - 1) * 10000, ticker = 'NVDA'), 1) AS nvda_gap_bps
FROM gaps
WHERE prev_close > 0
GROUP BY month, month_label
HAVING countIf(ticker = 'SPY') > 0 AND countIf(ticker = 'NVDA') > 0
ORDER BY month
Run this yourself

في July 2026، بلغ متوسط المسافة بين إغلاق وأول صفقة عند الافتتاح التالي 40.8 نقطة أساس لـ SPY و107.4 لـ NVDA. ونقطة الأساس تساوي جزءًا من مئة من نقطة مئوية. وكانت جميع الأشهر البالغ عددها 24 في اللوحة، بدءًا من August 2024، أعلى من الصفر. فالاختبار الرجعي الذي يتخذ القرار عند الإغلاق وينفذ الصفقة عند ذلك الإغلاق يحصل على هذه المسافة مجانًا في كل صفقة، في حين أن أي أمر فعلي لا يحصل عليها. يشرح انحياز النظر إلى المستقبل في الاختبار الرجعي آلية ذلك بالتفصيل، بينما يشرح سبب حدوث فجوات سعرية للأسهم ليلًا الفجوة نفسها.

المرحلة الرابعة: حدّد حجم الشراء

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

الاستعلامتحركات يومية لمدة 12 شهرًا: التقلب السنوي وأسوأ جلسة، 8 رموز
استعلام SQL الدقيق وراء كل رقم
WITH daily AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS session,
           argMax(close, window_start) AS session_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'KO', 'JNJ', 'MSFT', 'AAPL', 'NVDA', 'TSLA', 'COIN')
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2025-08-01')
      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-07-31')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY ticker, session
),
rets AS (
    SELECT ticker,
           toFloat64(session_close) AS close_px,
           toFloat64(lagInFrame(session_close) OVER (PARTITION BY ticker ORDER BY session)) AS prev_close
    FROM daily
)
SELECT ticker,
       round(stddevSamp(close_px / prev_close - 1) * sqrt(252) * 100, 1) AS annualized_vol_pct,
       round(abs(min(close_px / prev_close - 1)) * 100, 2) AS worst_day_pct
FROM rets
WHERE prev_close > 0
GROUP BY ticker
ORDER BY annualized_vol_pct DESC
Run this yourself

خلال الاثني عشر شهرًا المنتهية في 31 يوليو 2026، تحرّك COIN بتذبذب سنوي قدره 68%، مقابل 12.7% لـ SPY، الذي كان الأقل تذبذبًا في المجموعة. وأغلق أسوأ أداء في جلسة واحدة منخفضًا بنسبة 13.34% عن الإغلاق السابق، في حين بلغ أسوأ يوم لـ SPY نسبة 2.69%. إن استثمار المبلغ نفسه في كل سهم يعرّضك لتحركات يومية مختلفة جدًا. وهذه التحركات، لا الإشارة، هي ما يختبره المبتدئ فعليًا. يقدّم تحديد حجم المركز وفق معيار Kelly إجابة رسمية عن ذلك، بينما يوضح مخاطر التركّز شكل الإجابة غير الرسمية.

المرحلة الخامسة: التنفيذ والتكاليف التي يغفل عنها الاختبار التاريخي

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

الاستعلاممتوسط الفارق المعلن حسب نصف ساعة بتوقيت ET: AAPL وKO، الجمعة 17 يوليو 2026
استعلام SQL الدقيق وراء كل رقم
WITH quotes AS (
    SELECT ticker,
           toStartOfInterval(toTimeZone(sip_timestamp, 'America/New_York'), INTERVAL 30 MINUTE) AS bucket,
           toFloat64(ask_price - bid_price) / toFloat64((ask_price + bid_price) / 2) * 10000 AS spread_bps
    FROM global_markets.cache_stocks_quotes
    WHERE ticker IN ('AAPL', 'KO')
      AND sip_timestamp >= toDateTime('2026-07-17 13:00:00')
      AND sip_timestamp < toDateTime('2026-07-17 21:00:00')
      AND bid_price > 0
      AND ask_price > bid_price
)
SELECT formatDateTime(bucket, '%H:%i') AS et_time,
       round(avgIf(spread_bps, ticker = 'AAPL'), 2) AS aapl_spread_bps,
       round(avgIf(spread_bps, ticker = 'KO'), 2) AS ko_spread_bps
FROM quotes
WHERE spread_bps > 0 AND spread_bps < 500
GROUP BY et_time
HAVING countIf(ticker = 'AAPL') > 0 AND countIf(ticker = 'KO') > 0
ORDER BY et_time
Run this yourself

يغطي الرسم 16 فترات زمنية مدة كل منها نصف ساعة في يوم جمعة واحد، بدءًا من الفترة 09:00 السابقة لقرع جرس الافتتاح، وصولًا إلى الفترة 16:30 التالية للإغلاق. بلغ اتساع الفارق السعري المعروض لسهم AAPL 10.53 نقطة أساس في الفترة الأولى و3.27 في الأخيرة، بينما بلغ في KO 28.87 و8.04. وتظهر أضيق عروض الأسعار خلال اليوم في منتصف الرسم، بين هذين الطرفين. وتتحمل استراتيجية تتداول عند الافتتاح في سهمين من أكثر أسهم السوق سيولة تكلفة مختلفة عن نسختها التي تتداول خلال منتصف اليوم، بينما لا يقدّر الاختبار التاريخي الذي يفترض تكلفة صفرية أيًا من التكلفتين. يحدد فارق سعر العرض والطلب الرقم، ويوضح سبب اتساع الفوارق عند الافتتاح المنحنى، ويحسب تكلفة تداول سهم تكلفة الصفقة الكاملة ذهابًا وإيابًا. وبين الاختبار التاريخي النظيف واستثمار الأموال الحقيقية توجد خطوة إضافية: التداول الورقي قبل استثمار أموال حقيقية.

ما الأجزاء من منهج أسهم A التي يمكن تطبيقها على الأسهم الأمريكية؟

صُمم XQuant ونظراؤه لأسهم A الصينية وETF. تنتقل المنهجية كما هي: ترتيب المراحل، والتعريفات، والانضباط في تجنب فرط الملاءمة، وكتابة التكاليف كبند مستقل بدل اعتبارها فكرة لاحقة، وكل جزء من حسابات تحديد حجم المركز. أشرطة الأسعار هي أشرطة أسعار. لكن قواعد التداول المحيطة بها لا تنتقل.

  • تخضع أسهم A لقيود فعلية من نوع T+1: لا يمكنك بيع السهم الذي اشتريته اليوم إلا في الجلسة التالية. أما T+1 في الولايات المتحدة فهو اصطلاح للتسوية ولا يمنع التداول خلال اليوم، مع أن قاعدة المتداول اليومي النشط تقصر حسابات الهامش التي تقل قيمتها عن 25,000 دولار على ثلاث صفقات يومية خلال خمسة أيام عمل.
  • تتوقف أسهم السوق الرئيسي من أسهم A عند تحرك يومي قدره 10%، وترتفع النسبة إلى 20% في أسواق النمو. لا تخضع الأسهم الأمريكية لحد يومي، بل تنتج فترات التوقف عن نطاقات التقلب وتعليق التداول بسبب الأخبار.
  • تُتداول أوامر أسهم A في وحدات من 100 سهم. وينفذ كثير من الوسطاء الأمريكيين أوامر لكسور الأسهم، ما يغير حتى ما يمكن لقاعدة تحديد حجم المركز التعبير عنه.
  • تفرض الصين ضريبة دمغة على جانب البيع. ويدفع البائعون في الولايات المتحدة رسومًا تنظيمية صغيرة تختلف في حجمها وطبيعتها.
  • يختلف هيكل الجلسات، بما في ذلك الاستراحة في منتصف اليوم في شنغهاي وشنتشن. وتعمل ساعات سوق الأسهم الأمريكية بصورة متواصلة وتنتهي بمزاد إغلاق.

إن نسخ أي ثابت متعلق بالتكلفة أو التوقيت من دورة تعليمية إلى شيفرتك الخاصة هو خطأ ينتظر أول أمر تداول فعلي.

ثبّت المرجع، لا ملف README

لا يحتوي المستودع على إصدارات موسومة حتى أغسطس 2026، لذا فإن المرجع الدائم هو تثبيت: 016b66e، المؤرخ في 14 يوليو 2026. وهذا مهم لكتاب لا يزال قيد الكتابة. تتغير أرقام الفصول، ويُعاد تحرير ملفات README، وتنتقل العناوين، وقد يشير رابط كان يقود إلى الفصل السابع بهدوء إلى شيء آخر. اذكر تثبيت الالتزام وتاريخه، وسجّل عنوان الفصل الذي قرأته بدلًا من رقمه، وستظل ملاحظاتك قابلة للتحقق بعد عام. تُنشر المخطوطة بموجب CC BY-NC-SA 4.0، بينما تخضع نصوص البناء البرمجية لترخيص MIT. وينطبق الانضباط نفسه على الدرس الأخير في المنهج: فالاستراتيجية التي لا يمكنك إعادة تشغيلها انطلاقًا من لقطة بيانات مثبتة ليست نتيجة، بل قصة.

الأسئلة الشائعة

هل يمكنك تعلّم التداول الكمي من كتاب مجاني مفتوح المصدر؟

نعم، بالنسبة إلى الخريطة العامة. ويتيح لك المخطوط المفتوح التحقق من كل ادعاء بالرجوع إلى مصدره. لكن الكتاب لا يستطيع توفير بيانات سوقك وتكاليفه وقواعده. وهنا تحديدًا يتوقف المنهج المكتوب لبورصة واحدة عن التوافق مع وسيطك.

ما المرحلة في منهج التداول الكمي التي يتعثر فيها معظم المبتدئين؟

الاختبار التاريخي. يوجد خطآن فيه، وكلاهما يجعل النتيجة تبدو أفضل: انحياز البقاء، الناتج عن تكوين مجموعة الأصول بعد وقوع الأحداث، وانحياز التطلع إلى المستقبل، الناتج عن تنفيذ الصفقة بسعر لم يكن قد ظهر بعد في السوق. لم يكن سوى 50% من رموز التداول خلال ذلك الأسبوع من يونيو في 2016 لا يزال متداولًا بعد عقد من الزمن.

ما الفرق بين انحياز البقاء وانحياز التطلع إلى المستقبل؟

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

هل تصلح دورة في التداول الكمي للأسهم الصينية من الفئة A للأسهم الأمريكية؟

المنهج يصلح. أما قواعد السوق فلا تصلح. احتفظ بترتيب المراحل، والانضباط في تجنب الإفراط في الملاءمة، ومحاسبة التكاليف. ثم استبدل أنظمة تدفق البيانات، وقيد البيع في يوم التداول التالي T+1، والحدود اليومية للأسعار، وأحجام اللوتات، بنظائرها الأمريكية قبل تحريك أي أموال.


كل لوحة أعلاه عبارة عن استعلام محفوظ يتضمن SQL الخاص به. افتح إحدى اللوحات، واستبدل رموز التداول أو التواريخ، وشغّلها بنفسك على منصة Strasmore.

#quant#learning path#backtesting#open source#beginners