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

شرح منصة كمية ذاتية الاستضافة لأسهم A

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

إن منصة عمل كمية مستضافة ذاتياً لسوق الأسهم الصينية A هي صفحة ويب واحدة تفحص السوق، وتراقب قائمة من الأسهم، وتجري اختبارات خلفية، وتكتب مراجعة بعد إغلاق السوق، على جهاز تتحكم فيه بدلاً من محطة تداول تابعة لوسيط. ويجمع أحد المشاريع المرخّصة بموجب MIT، وهو tickflow-stock-panel، كل هذه الوظائف خلف منفذ واحد، وقد حصد نحو 2,800 نجمة على GitHub حتى أغسطس 2026. من السهل قراءة قائمة الميزات. لكن الطبقة الأساسية هي التي تحدد ما إذا كانت هذه الوظائف ستظل تعمل في الربع المقبل.

ممّ تتكوّن منصة كمية ذاتية الاستضافة لأسهم A؟

البنية قصيرة بما يكفي لاستيعابها بالكامل. وبالاستناد إلى الشيفرة والوثائق في الالتزام الصادر في أغسطس 2026، تتكوّن من:

  • صفحة ويب مبنية باستخدام React وTypeScript.
  • خدمة Python باستخدام FastAPI، مع مجدول يحدّث البيانات وفق مؤقت زمني.
  • مخزن محلي: ملفات Parquet على القرص، يُستعلم منها باستخدام DuckDB، وتُجرى الحسابات باستخدام Polars.
  • محرك لاختبار الاستراتيجيات تاريخياً، وهو vectorbt، يعمل على هذه الملفات.
  • حزمة SDK للمورّد تجلب كل سعر تعرضه اللوحة.

لاحظ ما هو غائب. لا يتصل أي مكوّن في هذه البنية مباشرةً بالبورصة. تحسب اللوحة المؤشرات، بينما يوفّر المورّد البيانات. يصف مصطلح «ذاتي الاستضافة» مكان تشغيل الشيفرة، ولا يقول شيئاً عن مصدر الأرقام. والاحتفاظ بالبيانات الخام هو مهمة الطبقة الأدنى، أي بحيرة بيانات محلية لسوق أسهم A، وهو ما يجعل استبدال كل ما فوقها أمراً ممكناً.

ما يغطيه المستوى المجاني لمصدر البيانات

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

يوضح المشرف طبيعة هذا الترتيب مباشرة:

هذا المشروع مخصص للتعلّم والبحث الكمي، ولا يشكّل أي نصيحة استثمارية. ولا تمثل نتائج الاختبار التاريخي العوائد المستقبلية.
هذا مشروع شخصي مفتوح المصدر، ويستند إلى مصدر بيانات TickFlow، وليس مشروعاً رسمياً لـ TickFlow.
README، ‏shy3130/tickflow-stock-panel، تمت القراءة في 13 أغسطس 2026

وبعبارة أخرى، فإن المشروع مخصص للدراسة والبحث الكمي، ولا يشكّل «نصيحة استثمارية»، كما أن نتائج الاختبار التاريخي لا تمثل العوائد المستقبلية، وهو «مشروع شخصي مفتوح المصدر وليس منتجاً رسمياً لـ TickFlow». وهذه هي الخلاصة المستدامة لهذا النوع من المشاريع بأكمله. يرفع التشغيل الصفري أعباء العمليات من على مكتبك. لكنه يترك الاعتماد في مكانه تماماً: فأنت تستأجر البيانات من شركة لم توافق قط على دعم هذه اللوحة. كما يقيّد ملف README الاستخدام بالدراسة والبحث، في حين أن ملف الترخيص هو MIT.

لماذا تثبّت SHA للإيداع بدلاً من رقم الإصدار

SHA الإيداع هو بصمة مؤلفة من 40 محرفاً يعيّنها Git لكل تغيير محفوظ. وهو يحدد حالة واحدة بعينها من الشيفرة بشكل دائم.

في 13 أغسطس 2026، لم يكن المستودع يحتوي على أي شيء في صفحة GitHub Releases. لكنه كان يضم 31 وسم إصدار، من v0.1.31 إلى v0.1.88، مع فجوات في الترقيم ومن دون ملاحظات مرفقة. وكان أحدث وسم يشير إلى إيداع مؤرخ في 31 يوليو 2026، بينما كان الفرع الافتراضي قد انتقل إلى تغييرات مؤرخة في 6 أغسطس 2026. والوسم الذي يتأخر عن الفرع ولا يتضمن ملاحظات لا يمكنه أن يوضح لك ما ستحصل عليه.

لذلك دوّن SHA. كان رأس الفرع الافتراضي في 6 أغسطس 2026 هو ecfddb451e97f6fc9a7e43ac33e4ef0e69933b33. افحص ذلك الإيداع، وسجّله بجانب أي استنتاج تتوصل إليه من الاختبارات الخلفية. بعد ستة أسابيع، لا يوضح قولك «شغّلت أحدث إصدار» أي شيء.

تبدأ التعليمات الموثقة بسطرين: انسخ ملف بيئة المثال إلى .env، ثم شغّل docker compose up --build، الذي يقدّم الواجهة على المنفذ 3018. هذه هي تعليمات المشرف عند ذلك الإيداع، وليست مساراً اختُبر عملياً؛ إذ يجلب البناء صوراً ويحتاج إلى اتصال بالشبكة لم تختبره هذه الصفحة. ويتطلب مسار التطوير (./dev.sh، أو .\dev.ps1 على Windows) Python 3.11 أو أحدث، وNode 20 أو أحدث، ومديري الحزم uv وpnpm.

ما الذي ترسله ميزة استراتيجية LLM وإلى أين

توليد الاستراتيجية، والتعليق على سهم واحد، وكتابة المراجعة كلها خيارات اختيارية. اترك AI_API_KEY فارغاً، وستظل الواجهة بأكملها غير مفعّلة. عند تعبئته، ستضبط أيضاً AI_PROVIDER (نقطة نهاية متوافقة مع OpenAI أو Ollama)، وAI_BASE_URL، وAI_MODEL، وAI_DAILY_TOKEN_BUDGET، الذي يوقف الاستدعاءات عند استهلاك حصة رموز اليوم.

مهم إلى أين تُوجَّه البيانات. يغادر prompt الخاص بك، وأي سياق تُرفقه اللوحة به، جهازك إلى نقطة النهاية التي ضبطتها. إذا وجّهت عنوان URL الأساسي إلى API مستضاف، يذهب الطلب إلى الشركة التي تستضيفه. وإذا وجّهته إلى runtime على شبكتك الخاصة، يبقى الطلب داخل شبكتك. استضافة اللوحة ذاتياً لا تعني استضافة النموذج ذاتياً. تُحفظ المفاتيح في ملف نصي عادي باسم .env في جذر المشروع، ويمكنك أيضاً تعديلها من صفحة الإعدادات المحمية بكلمة مرور للوحة، على ألا يقل طولها عن ستة أحرف. تتناول مذكرتنا حول عوامل ألفا التي يولدها LLM المواضع التي تميل فيها الاستراتيجيات التي تكتبها النماذج إلى الإخفاق.

هل يحاكي الاختبار الخلفي تكاليف التداول؟

يعلن الاختبار الخلفي أنه يتعامل مع التسوية T+1 والعمولات والانزلاق السعري وأوامر وقف الخسارة. لكن وجود هذه الخيارات لا يعني أنها مفعّلة، كما أن الاختبار الخلفي الذي ينفّذ الصفقات عند سعر الإغلاق المعلن مع ضبط التكاليف على الصفر يفترض أن التداول مجاني. وهذا غير صحيح. نقطة الأساس تساوي واحداً من مئة من الواحد في المئة. تقيس اللوحة أدناه متوسط الفارق بين أفضل سعر عرض وأفضل سعر طلب، بنقاط الأساس، عبر ستة أسهم مدرجة في الولايات المتحدة خلال ساعة واحدة في منتصف جلسة التداول بتاريخ 17 يونيو 2026.

الاستعلامتكلفة عبور الفارق السعري: متوسط الفارق السعري المعلن، ستة إدراجات أمريكية، منتصف اليوم 17 يونيو 2026
استعلام SQL الدقيق وراء كل رقم
SELECT
    ticker                                                                       AS symbol,
    round(avg(toFloat64(ask_price) - toFloat64(bid_price))
          / avg((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, 2)   AS spread_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'KO', 'F')
  AND sip_timestamp >= toDateTime('2026-06-17 15:00:00', 'UTC')
  AND sip_timestamp <  toDateTime('2026-06-17 16:00:00', 'UTC')
  AND bid_price > 0
  AND ask_price > bid_price
GROUP BY ticker
ORDER BY spread_bps
Run this yourself

السهم الأضيق سعراً في اللوحة، SPY، سجّل متوسط فارق قدره 0.29 نقطة أساس خلال تلك الساعة. أما الأوسع سعراً، F، فسجّل 6.98 نقطة أساس. إن عبور هذا الفارق مرتين، مرة للدخول ومرة للخروج، يجعل تكلفة الرحلة ذهاباً وإياباً تساوي تقريباً ضعف الرقم المعروض، قبل احتساب العمولات.

توقيت التنفيذ لا يقل أهمية عن اختيار السهم. تقيس اللوحة التالية حركة سعر أحد تلك الأسهم خلال دقيقة واحدة، ثم تحسب متوسطها ضمن فترات مدتها نصف ساعة على امتداد اليوم نفسه.

الاستعلاممدى تحرك السعر خلال دقيقة واحدة: KO، حسب توقيت نيويورك، 17 يونيو 2026
استعلام SQL الدقيق وراء كل رقم
SELECT
    formatDateTime(
        toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE),
        '%H:%i')                                                                 AS et_time,
    round(avg((toFloat64(high) - toFloat64(low)) / toFloat64(close)) * 10000, 1)  AS range_bps
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'KO'
  AND window_start >= toDateTime('2026-06-17 12:00:00', 'UTC')
  AND window_start <  toDateTime('2026-06-17 21:00:00', 'UTC')
  AND volume > 0
  AND close > 0
GROUP BY et_time
ORDER BY et_time
Run this yourself

تبدأ اللوحة عند 08:00، قبل الجلسة النظامية، حيث بلغ متوسط حركة شمعة الدقيقة 0 نقطة أساس؛ وكانت الدقائق التي شهدت تداولاً فعلياً تستقر عند سعر واحد. أما الفترة الأخيرة، 16:30، فتأتي بعد الإغلاق وسجّلت متوسطاً قدره 4.2 نقطة أساس. يختار الاختبار الخلفي نقطة واحدة من كل نطاق من هذه النطاقات ويعتبرها سعر التنفيذ. اقرأ المنحنى بدلاً من الاكتفاء بنقطتي البداية والنهاية: فالافتراض نفسه يكون متساهلاً في بعض الساعات ومجحفاً في ساعات أخرى. وتضيف قواعد A-share قيوداً خاصة بها، إذ تمنع تسوية T+1 بيع الأسهم المشتراة اليوم قبل الجلسة التالية، كما قد تؤدي حدود الأسعار اليومية إلى إلغاء الخروج المفترض بالكامل. يوضح شرحنا لـ اختبار خلفي قابل لإعادة الإنتاج ما الذي ينبغي أن يسجله إعداد يمكن الدفاع عنه، بينما يشرح انحياز النظر إلى المستقبل الطريقة الأخرى التي قد ينحرف بها منحنى يبدو سليماً.

التعديل أم عدمه: سؤال مصدر البيانات

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

الاستعلامأكبر اثني عشر تجزئة أسهم آجلة في الإدراجات الأمريكية، من 1 يناير إلى 13 أغسطس 2026
استعلام SQL الدقيق وراء كل رقم
SELECT
    ticker                                                            AS symbol,
    formatDateTime(execution_date, '%b %e, %Y')                       AS effective_on,
    round(any(toFloat64(split_to)) / any(toFloat64(split_from)), 2)   AS shares_after_per_share
FROM global_markets.stocks_splits
WHERE execution_date >= toDate('2026-01-01')
  AND execution_date <= toDate('2026-08-13')
  AND split_from > 0
  AND split_to > split_from
  AND ticker NOT IN ('SPCX')
GROUP BY ticker, execution_date
ORDER BY shares_after_per_share DESC, execution_date DESC
LIMIT 12
Run this yourself

تحوّل أكبر عملية سهماً واحداً إلى 10000 سهم، اعتباراً من Feb 10, 2026. ولا تُعد النسب بهذا الحجم من عمليات التجزئة المعتادة بنسبة أربعة إلى واحد؛ إذ تحمل خلاصة بيانات الإجراءات المؤسسية النطاق الكامل في عمود واحد. وحتى أصغر العمليات الاثنتي عشرة تحوّل السهم الواحد إلى 20 سهم، بما يكفي لجعل الرسم البياني غير المعدّل يبدو كأنه يوضح انهياراً. وتضع أداة فرز للزخم تعتمد على الأسعار الخام كل عملية منها في خانة الانهيار. وتحمل خلاصات البيانات الصينية المشكلة نفسها بمصطلحاتها الخاصة، إذ توفّر ثلاثة إصدارات من كل سلسلة: غير معدّل، ومعدّل إلى الأمام، ومعدّل إلى الخلف. اعرف أي إصدار حمّله جدولك. يشرح سجل الأسعار المعدّل وفق التجزئة الحسابات بالتفصيل.

ما الذي يجب التحقق منه قبل استضافة أي شيء مماثل ذاتياً

  • مصدر البيانات. حدّد المورّد، والترخيص الذي يتيح استخدام البيانات، وما إذا كانت الخطة المجانية تغطي الاستخدام الذي تنوي القيام به.
  • إدارة المفاتيح. تحقّق من مكان تخزين مفاتيح API على القرص، ومن يمكنه الوصول إلى صفحة الإعدادات، وما إذا كان الجهاز مكشوفاً خارج شبكتك الخاصة.
  • نمذجة التكاليف. تحقّق مما إذا كان backtester يحتسب العمولات والانزلاق السعري وقواعد السوق نفسه، وما القيم التي تستخدمها هذه الحقول عندما تتركها دون تعديل.
  • مسار التحديثات. سجّل رقم commit المحدد الذي نشّرته إلى جانب نتائجك، بحيث يمكن إعادة إنتاجه بعد أشهر.

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

هل تشغيل منصة كميّة ذاتية الاستضافة لأسهم A مجاني؟

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

ماذا تعني «ذاتية الاستضافة» هنا تحديداً؟

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

هل ترسل ميزة LLM بياناتي إلى طرف ثالث؟

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

لماذا تثبيت commit SHA بدلاً من وسم إصدار؟

في 13 أغسطس 2026، لم يكن هذا المستودع يضم إصدارات منشورة أو ملاحظات إصدار، كما أن أحدث وسم فيه كان يشير إلى شفرة أقدم من الموجودة في الفرع الافتراضي. لذلك كانت كلمة «الأحدث» تعني ما يحتويه الفرع في يوم استنساخك للمستودع، بينما يحدد commit SHA الشفرة بدقة. وينطبق الانضباط نفسه عموماً على مواد التداول الكمي مفتوحة المصدر: ثبّت ما شغّلته.

ملاحظات التحقق

قُرئت كل تفاصيل البنية والإعدادات الواردة أعلاه من المستودع العام في 13 أغسطس 2026، عند commit ecfddb451e97f6fc9a7e43ac33e4ef0e69933b33، وهو رأس الفرع الافتراضي المؤرخ في 6 أغسطس 2026. لم تعرض صفحة الإصدارات أي شيء. وكانت قائمة الوسوم تضم 31 وسم إصدار من v0.1.31 إلى v0.1.88، وكان أحدثها يشير إلى commit مؤرخ في 31 يوليو 2026. أما الأسطر المقتبسة فهي من كتابة المشرف نفسه، وقد نُقلت من ملف README لا إعادة صياغتها. كما نُقل أمر بدء الحاوية من ملف README، ولم يُنفَّذ هنا.

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


تتضمن كل لوحة هنا SQL الذي أنتجها، ويمكن توسيعه أسفلها. ولإجراء فحص spread نفسه على قائمتك الخاصة من الأوراق المالية قبل ربط إحداها بأداة فرز، اطلبه باللغة الإنجليزية البسيطة على منصة Strasmore.

#open-source#backtesting#screening#a-shares#self-hosted