أبحاث
وكلاء التداول بالتعلم المعزز العميق: كيف نُدرِّب شبكات السياسة (policy networks) ونتحقق منها وننشرها بعد احتساب التكاليف؟
Deep RL Trading Agents: How to Train, Validate and Deploy Policy Networks After Costs?
الجواب المباشر
الجواب المباشر
لا توجد دراسة منشورة تقارن وجهاً لوجه ضمن هذه الادعاءات تُظهر أن سياسة تداول قائمة على التعلم المعزز العميق (deep reinforcement learning) تتفوق على خطوط الأساس البسيطة بعد احتساب التكاليف عبر الأسهم والعملات المشفرة والفوركس في آن واحد؛ الأدلة مُجزَّأة عبر أطر عمل وأوراق بحثية منفصلة، يختبر كل منها سوقاً مختلفاً وإعداد تكلفة مختلف وخط أساس مختلف. توفر أطر العمل المفتوحة مثل FinRL وFinRL-Meta البنية الهندسية الداعمة (البيئات، خطوط أنابيب البيانات، الدروس التعليمية، التجميع (ensembling)، المحاكاة المتوازية على وحدات معالجة الرسوميات) لكن الأرقام الأدائية المرافقة لها تأتي من اختبارات رجعية (backtests) صغيرة وخاصة بكل إطار عمل، لا من عمليات تكرار مستقلة. وحيثما تم تغيير تكاليف المعاملات صراحةً، تغيّرت النتائج: كانت نماذج التعلم الآلي التقليدية أفضل في دقة الاتجاه بينما كانت النماذج العميقة أفضل بعد إدراج التكاليف، وذلك عبر مجموعتين من مؤشرات الأسهم تغطيان 424 سهماً من مكونات S&P 500 و185 سهماً من مكونات CSI 300 من عام 2010 إلى 2017 [12]. يقلل التجميع (ensembling) من تباين سياسات DRL ويحسّن نسبة السحب (drawdown) ونسبة شارب (Sharpe ratio) في النتائج التجريبية المُبلَّغ عنها، لكن عدم استقرار العامل الواحد الأساسي واختناق أخذ العينات (sampling bottleneck) يظلان قائمين [6]. ينبغي على أي باني نظام أن يتعامل مع كل عائد مُبلَّغ عنه على أنه مشروط بنافذة الاختبار الرجعي الخاصة به ونموذج التكلفة والبذرة العشوائية (seed)، وأن يخصص ميزانية للتحقق التقدمي (walk-forward validation) وتداول ورقي (paper trading) بدلاً من الوثوق بأي رقم منفرد لينتقل إلى سياق آخر.
لماذا يصعب الإجابة عن هذا السؤال بوضوح
يطبّق التعلم المعزز المالي (Financial reinforcement learning، FinRL) التعلم المعزز على مهام مثل التداول الخوارزمي، وإدارة المحافظ، وتسعير الخيارات [6]. الجاذبية واضحة: شبكة سياسة تستقبل الأسعار والمواقف والنقد وتُخرج إجراءات تداول يمكن، من حيث المبدأ، أن تتكيّف مع الأسواق المتغيرة أسرع من قاعدة ثابتة. لكن بيئات التعلم المعزز المالي صعبة البناء لأن البيانات المالية ذات نسبة إشارة إلى ضوضاء منخفضة، ويمكن أن تحتوي البيانات التاريخية على تحيز الناجين (survivorship bias)، ويمكن للنماذج أن تفرط في التطابق (overfit) [1]. هذه المشكلات الثلاث، الضوضاء وتحيز الناجين والإفراط في التطابق، هي بالضبط التحيزات التي يسأل عنها سؤال البحث، وقد وُصفت كصعوبات بنيوية في هذا المجال، لا كعيوب في ورقة بحثية بعينها.
يحدد استقصاء لسوق العملات المشفرة نقص الاتساق في مجتمع تداول DRL كعائق أمام البحث والتطوير [5]. هذا يعني أنه حتى عندما تُبلّغ ورقة بحثية عن نتيجة إيجابية، غالباً لا يمكن للقارئ معرفة ما إذا كان المكسب ناتجاً عن الخوارزمية أو تقسيم البيانات أو افتراض التكلفة أو البذرة العشوائية، لأن الأوراق المختلفة تستخدم اصطلاحات مختلفة. هذا هو السبب العملي وراء عجز الإجابة المباشرة أعلاه عن تقديم وصفة فائزة واحدة: الادعاءات تأتي من مجموعات بحثية منفصلة تستخدم مجموعات أسهم منفصلة ونوافذ زمنية منفصلة ونماذج تكلفة منفصلة.
تنتقد عدة أوراق بحثية هذا الوضع صراحةً. تُنتَقد دراسات التداول السابقة القائمة على التعلم الآلي بسبب فترات اختبار رجعي قصيرة، ومجموعات بيانات صغيرة، وميزات محدودة، وعدم أخذ تكلفة المعاملات بعين الاعتبار، وغالباً ما تفتقر إلى اختبارات الدلالة الإحصائية [12]. هذا النقد موجَّه إلى الأدبيات بشكل عام، وهو قائمة تحقق مفيدة لأي باني نظام يراجع ورقة تداول جديدة: اسأل عن طول الاختبار الرجعي، وحجم مجموعة البيانات، ومجموعة الميزات، وما إذا كانت تكاليف المعاملات قد نُمذجت.
بناءً على ذلك، تتعامل بقية هذه المذكرة مع أطر العمل المفتوحة (FinRL، FinRL-Meta) باعتبارها بنية هندسية يمكن إعادة استخدامها، وتتعامل مع الأوراق البحثية الفردية للخوارزميات (DDPG، متغيرات DQN، التجميعات، وكلاء الترميز الذاتي (autoencoder) مع LSTM) كنقاط بيانات منفصلة وغير قابلة للمقارنة. كما تتناول المذكرة كيفية ظهور احتمالات التنبؤ المعايَرة (calibrated forecast probabilities) ومتطلبات خطوط الأنابيب على مستوى الأعمال ضمن الادعاءات، وتنتهي بخطة بناء ملموسة وبرنامج تقييم قابل للتشغيل.
ما هي FinRL وFinRL-Meta بالفعل
FinRL مكتبة طبقية ومعيارية (modular) تحتوي على خوارزميات مضبوطة بدقة (fine-tuned) وهي DQN، DDPG، PPO، SAC، A2C، وTD3 [3]. توفر دوال مكافأة (reward functions) شائعة الاستخدام وخطوط أساس تقييم قياسية للحد من عمل التصحيح وتعزيز قابلية إعادة الإنتاج [3]. عملياً، هذا يعني أن باني النظام لا يحتاج إلى إعادة تنفيذ هذه الخوارزميات الست من الصفر؛ فالمكتبة تحزمها خلف واجهة موحدة موجهة لمهام التداول.
تُهيّئ FinRL بيئات افتراضية بمجموعات بيانات سوق الأسهم، وتدرّب وكلاء تداول عصبيين، وتحلل اختبارات رجعية موسعة من خلال أداء التداول [3]. وهي تدمج تكلفة المعاملات وسيولة السوق ودرجة تجنب المخاطرة لدى المستثمر كقيود على التداول [3]. يمكن لـ FinRL محاكاة الأسواق باستخدام البيانات التاريخية وواجهات برمجة تطبيقات (APIs) التداول الحي عند تفاصيل زمنية متعددة [4]، وتوفر دروساً تعليمية تدريجية لتداول الأسهم، وتخصيص المحافظ، وتداول العملات المشفرة [4]. كما تحتفظ بواجهات استيراد للمستخدم بحيث يمكن للمستخدمين توسيع الإطار [4]، وهذا مهم لباني نظام يريد إضافة مصدر بيانات مخصص أو مكافأة مخصصة.
FinRL-Meta مكتبة مرافقة تركز على البيانات. إنها مكتبة مفتوحة الوصول تركز على البيانات وتحوّل مجموعات بيانات السوق الديناميكية الواقعية إلى بيئات سوق بأسلوب gym [1]. تتبع نموذج DataOps وتستخدم خط أنابيب تنسيق بيانات آلياً لتوفير مئات بيئات السوق [1]. وصف منفصل لـ FinRL-Meta يذكر أنها تفصل معالجة البيانات المالية عن خط أنابيب تصميم استراتيجيات التعلم المعزز العميق وتوفر أدوات هندسة بيانات مفتوحة المصدر للبيانات المالية الضخمة [7]، وأنها توفر مئات بيئات السوق لمهام تداول مختلفة وتدعم محاكاة وتدريباً متعدد المعالجات باستخدام آلاف أنوية وحدة معالجة الرسوميات [7]. مجتمعتين، تصف هاتان المكتبتان انقساماً من مكتبتين: FinRL-Meta تتولى تنسيق البيانات وبناء البيئات على نطاق واسع، بينما توفر FinRL خوارزميات التداول المتخصصة والقيود.
توفر FinRL-Meta أيضاً أمثلة تعيد إنتاج أوراق بحثية شهيرة كنقاط انطلاق لتصميم استراتيجيات تداول جديدة [1]، وتنشر مكتبتها على منصات سحابية بحيث يمكن للمستخدمين تصور النتائج وتقييم الأداء النسبي من خلال منافسات مجتمعية [1].
الآلية الأساسية: صياغة MDP وDDPG ومتغيرات Q-learning
الآلية الأكثر تحديداً بشكل ملموس في هذه الادعاءات هي عملية اتخاذ القرار الماركوفية (Markov Decision Process) لتداول الأسهم من سلسلة الأوراق البحثية الأصلية لـ FinRL. تُصاغ عملية تداول الأسهم كعملية اتخاذ قرار ماركوفية تحتوي حالتها على أسعار الأسهم، ومقتنيات الأسهم، والرصيد النقدي المتبقي [8]. تشمل مجموعة الإجراءات البيع والشراء والاحتفاظ، بينما المكافأة هي التغير في قيمة المحفظة بعد الإجراء [8]. تُهيَّئ الصياغة المقتنيات وتقديرات قيمة الإجراء (action-value) إلى صفر، وتُهيَّئ السياسة بشكل متجانس عبر الإجراءات قبل التعلم من خلال التفاعل البيئي [8]. تُحدِّث البيئة النقد وفق b_{t+1}=b_t+p_t^T a_t وتقيّد إجراءات الشراء بحيث يكون رصيد المحفظة الناتج غير سالب [8]. تُحدَّث دالة قيمة الإجراء باستخدام المكافأة الفورية المتوقعة زائد قيمة الإجراء المتوقعة المخفَّضة (discounted) في الحالة التالية وفق معادلة بيلمان (Bellman equation) [8].
فوق هذه الـ MDP، يستخدم وكيل تداول DDPG الموصوف إطار عمل ناقد-ممثل (actor-critic)، وشبكات هدف (target networks)، وإعادة تشغيل تجريبي (experience replay) لنمذجة مساحات الحالة والإجراء الكبيرة، وتثبيت التدريب، وتقليل ارتباط العينات [8]. حقق نهج DDPG الموصوف عائداً أعلى من كل من تخصيص المحفظة بأقل تباين (min-variance) التقليدي ومؤشر Dow Jones Industrial Average [8]. هذه مقارنة واحدة مُبلَّغ عنها، على إعداد الورقة الخاص بها، مقابل خطي أساس محددين؛ ليست ادعاءً بأن DDPG يتفوق على خوارزميات RL أخرى أو ينجو من أنظمة تكلفة معاملات عشوائية.
خط عمل منفصل يستخدم أساليب قائمة على القيمة بدلاً من ناقد-ممثل. يخزّن تدريب شبكة Deep Q-Network الحالات والإجراءات والمكافآت والحالات التالية السابقة في إعادة تشغيل تجريبي، ويأخذ عينات عشوائية منها في دفعات صغيرة، ويستخدم شبكة Q هدف لتقدير المكافآت المستقبلية [9]. تُنسخ شبكة Q الهدف بشكل دوري من الشبكة الرئيسية لأن استخدام شبكات منفصلة يزيد من استقرار التدريب في ظل بيانات مرتبطة بشدة وسريعة الوصول [9]. يعالج Double DQN ميل DQN إلى المبالغة في تقدير قيم Q باستخدام شبكة عصبية أخرى لتقليل تأثير خطأ التقدير المتراكم [9]. تدرّب دراسة على تداول الأسهم الهندية وكلاء DQN وDouble DQN وDueling Double DQN للاحتفاظ والشراء والبيع وتتحقق منها على بيانات غير مرئية من فترة لاحقة [9]؛ يصف هذا بروتوكول التدريب والتحقق لكن مجموعة الادعاءات لا تتضمن الأرقام المقارنة الناتجة.
بنية ثالثة تجمع بين تعلم التمثيل ونمذجة التسلسل: يجمع وكيل التداول الموصوف بين المرمِّزات التلقائية إلزالة الضجيج المكدسة (stacked denoising autoencoders) لتعلم تمثيل السوق، وشبكات الذاكرة طويلة المدى القصيرة (LSTM) لاعتماد السلاسل الزمنية المالية، وإجراءات متحكم بها بالموقف (position-controlled)، ومكافآت متعددة الخطوات (n-step). [10]. أفاد هذا الوكيل بتفوقه على خطوط أساسه وتحقيق عوائد مُعدَّلة حسب المخاطرة مستقرة في كل من أسواق الأسهم والعقود الآجلة [10]، مرة أخرى كنتيجة مُبلَّغ عنها ذاتياً ضمن مجموعة خطوط الأساس الخاصة بتلك الورقة، وليست مقارنة عبر الأوراق البحثية.
التجميعات، والتباين، والمحاكاة المتوازية: النتائج المُبلَّغ عنها
أكثر النتائج الكمية تفصيلاً في مجموعة الادعاءات هذه تأتي من دراسة تداول أسهم استخدمت بيانات OHLCV يومية لـ 30 سهماً من Dow Jones خلال 2020-2023. في هذه الدراسة، أظهر كل من PPO وSAC وDDPG ونموذج تجميع (ensemble) تبايناً عالياً في العوائد التراكمية عبر الاختبار [6]. دربت الدراسة النماذج واختبرتها 1,010 مرة باستخدام نوافذ متدحرجة (rolling windows) بطول تدريب 30 يوماً واختبار 55 يوماً [6]. هذا البروتوكول ذو النوافذ المتدحرجة هو نفسه إجابة جزئية على سؤال التحقق التقدمي (walk-forward) في مطلب البحث: إنه إجراء ملموس وقابل لإعادة الإنتاج بأسلوب التحقق التقدمي، وإن كان مقتصراً على مجموعة أسهم هذه الورقة الواحدة وأطوال النوافذ الخاصة بها.
حسب نموذج التجميع متوسط احتمالات إجراءات ثلاثة وكلاء، وكان لديه انحراف معياري للعائد عبر الاختبار يبلغ تقريباً نصف انحراف الوكلاء المكوِّنين [6]. هذه نتيجة مباشرة ومُقدَّرة كمياً لتقليل التباين، لكنها مقارنة للتجميع مقابل وكلائه الثلاثة المكوّنين، وليست مقابل خط أساس السوق أو الشراء والاحتفاظ (buy-and-hold). أفادت الدراسة أيضاً بأن تدريب الوكيل المكوِّن قد لا يزال يواجه اختناق أخذ عينات (sampling bottleneck) رغم تقليل التجميع لعدم استقرار السياسة [6]، مما يعني أن التجميع يدير العرَض (تباين المخرجات) دون بالضرورة إصلاح السبب الأساسي (عدم استقرار التدريب لكل وكيل).
في تجارب تداول الأسهم والعملات المشفرة، حسّنت المحاكاة المتوازية الضخمة على وحدة معالجة رسوميات واحدة مع 2,048 بيئة متوازية سرعة أخذ العينات بمقدار يصل إلى 1,746 ضعفاً مقارنة ببيئة واحدة [6]. هذه نتيجة تتعلق بالبنية التحتية حول إنتاجية التدريب، وليست عن أداء التداول، وهي مهمة لأي شخص يخطط لموارد حسابية لعمليات بحث فرط معلمات كبيرة. قلّلت نماذج التجميع في تجارب الأسهم والعملات المشفرة الحد الأقصى للسحب (maximum drawdown) بمقدار يصل إلى 4.17% وحسّنت نسبة شارب (Sharpe ratio) بمقدار يصل إلى 0.21 [6]. هذه هي الأرقام الوحيدة المتعلقة بمقاييس المخاطر في مجموعة الادعاءات المرتبطة بأسلوب مسمّى (التجميع) ومقاييس مسمّاة (السحب، نسبة شارب)، وتأتي من نفس الإعداد التجريبي لنتيجة تقليل التباين أعلاه.
في صميم كل هذا، أداء سياسة RL حساس لفرط المعلمات، والبيئات غير المستقرة، والبذور العشوائية [6]. هذه الحساسية هي السبب الذي دفع الدراسة لتشغيل 1,010 دورة تدريب/اختبار بدلاً من دورة واحدة: رقم عائد تشغيل واحد لن يكون موثوقاً به بمفرده. ينبغي على باني نظام يقرأ أي عائد مُبلَّغ عنه في هذه الأدبيات أن يسأل ما إذا كان قد أُنتج ضمن بروتوكول مكرر مماثل أو من بذرة واحدة محظوظة.
تكاليف المعاملات وحساسية المقارنات المنشورة
يسأل سؤال البحث عن النتائج التي تصمد أمام تكاليف المعاملات. مجموعة ادعاء واحدة فقط تتناول هذا مباشرة عبر تغيير افتراضات التكلفة. على مجموعات بيانات تحتوي 424 سهماً من مكونات S&P 500 و185 سهماً من مكونات CSI 300 من 2010 إلى 2017، أدت خوارزميات التعلم الآلي التقليدية بشكل أفضل في معظم مؤشرات الاتجاه، بينما أدت نماذج DNN بشكل أفضل عند أخذ تكاليف المعاملات بعين الاعتبار [12]. هذه مقارنة محددة ومؤرَّخة بين سوقين، تغطي مجموعتي مؤشرات أسهم منفصلتين؛ ولا تعمَّم على سياسات التعلم المعزز، إذ إن النماذج المقارَنة وُصفت بأنها خوارزميات تعلم آلي ونماذج DNN، وليست وكلاء DRL.
كان أداء التداول في استراتيجيات التعلم الآلي المُقيَّمة حساساً للتغيرات في تكاليف المعاملات [12]. يلاحظ المصدر نفسه أن الدراسات السابقة غالباً ما استخدمت اختبارات رجعية قصيرة، ومجموعات بيانات صغيرة، وميزات محدودة، ولا تكاليف معاملات، ولا اختبارات دلالة إحصائية [12]. هذا تحذير ينطبق على نطاق واسع: أي نتيجة تداول تُذكر دون بيان افتراض تكلفة المعاملات الخاص بها ينبغي التعامل معها كنتيجة مؤقتة، لأن ترتيب الأساليب يمكن أن ينقلب بمجرد إضافة التكاليف، كما حدث بين دقة الاتجاه والأداء المعدَّل حسب التكلفة في هذه الدراسة نفسها.
لا يُبلغ أي من الادعاءات الخاصة بـ DRL في هذه المجموعة (DDPG مقابل Dow Jones والحد الأدنى من التباين [8]، نتائج تباين وسحب التجميع [6]، وكيل الترميز الذاتي-LSTM [10]) عن مقارنة مضبوطة قبل وبعد تكلفة المعاملات. تُدمِج FinRL بالفعل تكلفة المعاملات كأحد قيود التداول [3]، لذا فإن البنية التحتية لتشغيل مثل هذه المقارنة موجودة، لكن مجموعة الادعاءات لا تحتوي على نتيجة DRL منشورة تعزل تأثير التكلفة بالطريقة التي فعلتها دراسة S&P 500 / CSI 300 للتعلم الآلي التقليدي.
الخلاصة العملية لباني النظام هي أن حساسية تكلفة المعاملات موثَّقة كظاهرة عامة في استراتيجيات التداول القائمة على التعلم الآلي [12]، وكقيد منمذج داخل FinRL [3]، لكن مجموعة الادعاءات لا تسمح لنا بالقول ما إذا كان أي رقم عائد DRL منشور محدد سيصمد أمام تغيير افتراضات التكلفة الخاصة بورقته. يجب أن يُجري باني النظام هذا الفحص بنفسه، لا أن يفترضه من هذه الأوراق.
احتمالات التنبؤ المعايَرة وتكاملات ميزات أخرى
يسأل سؤال البحث كيف يمكن لسياسة مُدرَّبة أن تُدمِج احتمالات تنبؤ معايَرة (calibrated forecast probabilities) كميزات حالة أو خطوط أساس مكافأة. مجموعة الادعاءات لا تحتوي على أسلوب يبني صراحةً احتمالات تنبؤ معايَرة داخل حالة أو مكافأة DRL للتداول. أقرب ما يوجد إلى هذه الفكرة هو نشر حي يجمع بين عدة أنواع من الإشارات. ينفّذ RL Trading Agent خط أنابيب شامل يغطي استيعاب البيانات، وتدريب PPO، والاختبار الرجعي، ونشر تداول ورقي حي لستة أسهم باستخدام بيانات سوق حية، وتحليل مشاعر NLP، وكشف نظام السوق (market-regime detection) [14]. يُظهر هذا دمج إشارات المشاعر والنظام مع سياسة PPO في خط أنابيب عامل، لكن الادعاء لا يصف هذه الإشارات كاحتمالات معايَرة، ولا يصفها كخطوط أساس مكافأة بمعنى مصطلح إعادة تشكيل المكافأة (reward-shaping)؛ بل يصفها كمدخلات لنشر شامل.
في موضع آخر، يقتصر تعريف حالة MDP المستخدم عبر سلسلة FinRL على أسعار الأسهم ومقتنيات الأسهم والرصيد النقدي المتبقي [8]. هذا هو تمثيل الحالة الأساسي الذي يبدأ منه باني النظام؛ أي ميزة تنبؤ محتملة ستكون إضافة إلى متجه الحالة هذا، لكن لا يحدد أي ادعاء في هذه المجموعة كيف ينبغي قياس أو تطبيع أو التحقق من معايرة مثل هذه الإضافة.
نظراً لعدم وجود ادعاء يجيب مباشرة عن سؤال دمج التنبؤ المعايَر، لا يمكن لهذه المذكرة الإبلاغ عن نتيجة هنا، سوى أقرب لبنة بناء متاحة: نشر PPO لستة أسهم الذي يستوعب بالفعل إشارات غير سعرية (المشاعر، النظام) إلى جانب بيانات السوق [14]، وتعريف حالة السعر/المقتنيات/النقد القياسي الذي سيمتد منه [8]. سيحتاج أي باني نظام يريد دمج التنبؤ المعايَر إلى تصميم والتحقق من هذه الآلية بنفسه؛ إنها فجوة في السجل المنشور الحالي الذي تغطيه هذه الادعاءات، وليست وصفة موثَّقة.
تهم هذه الفجوة لأن الإجابة المباشرة أعلاه تشير بالفعل إلى نقص عام في الاتساق في أدبيات تداول DRL [5]؛ غياب وصفة من التنبؤ المعايَر إلى الحالة أو التنبؤ المعايَر إلى المكافأة في مجموعة الادعاءات هذه هو مثال محدد على عدم الاتساق ذاك، وليس خصوصية لبحثنا.
متطلبات خط الأنابيب على مستوى الأعمال: البيانات، وواجهات البرمجة، والبنية التحتية
يسأل سؤال البحث أيضاً عما يحتاجه خط أنابيب على مستوى الأعمال من بيانات، وواجهات برمجة تطبيقات، وبنية تحتية. تصف عدة ادعاءات أجزاء من مثل هذا الخط مباشرة. يمكن لـ FinRL محاكاة الأسواق باستخدام البيانات التاريخية وواجهات برمجة تطبيقات التداول الحي عند تفاصيل زمنية متعددة [4]، وهذا يغطي جانبي الاختبار الرجعي واستيعاب البيانات الحية في نظام إنتاجي. تتبع FinRL-Meta نموذج DataOps وتستخدم خط أنابيب تنسيق بيانات آلياً لتوفير مئات بيئات السوق [1]، وهذا يعالج جانب هندسة البيانات: تحويل بيانات السوق الخام إلى بيئات جاهزة للاستخدام على نطاق واسع.
على صعيد البنية التحتية الحاسوبية، تدعم FinRL-Meta المحاكاة والتدريب متعدد المعالجات باستخدام آلاف أنوية وحدة معالجة الرسوميات [7]، وبشكل منفصل، حسّنت المحاكاة المتوازية الضخمة على وحدة معالجة رسوميات واحدة مع 2,048 بيئة متوازية سرعة أخذ العينات بمقدار يصل إلى 1,746 ضعفاً مقارنة ببيئة واحدة [6]. يصف هذان الادعاءان مستويين مختلفين من التوازي (آلاف أنوية وحدة معالجة الرسوميات عبر مجموعة حاسوبية مقابل 2,048 بيئة على وحدة معالجة رسوميات واحدة) وينبغي عدم اعتبارهما توصية بنية تحتية واحدة؛ ينبغي على باني النظام اختيار المستوى الذي يناسب ميزانيته وتحديد الادعاء الذي يأتي منه.
على صعيد النشر الشامل، ينفّذ RL Trading Agent خط أنابيب شامل يغطي استيعاب البيانات، وتدريب PPO، والاختبار الرجعي، ونشر تداول ورقي حي لستة أسهم باستخدام بيانات سوق حية، وتحليل مشاعر NLP، وكشف نظام السوق [14]. هذا هو الادعاء الوحيد في المجموعة الذي يسمّي صراحةً نشر التداول الورقي الحي، ويفعل ذلك لمجموعة من ستة أسهم. إنه قالب مفيد لشكل خط أنابيب إنتاجي (استيعاب، تدريب، اختبار رجعي، تداول ورقي) لكن الادعاء لا يُبلغ عن أرقام أداء أو تكاليف بنية تحتية لذلك النشر.
على صعيد بروتوكول التحقق، أقرب شيء إلى مواصفة تحقق تقدمي (walk-forward) هو بروتوكول النوافذ المتدحرجة الموصوف بالفعل: تدريب النماذج واختبارها 1,010 مرة باستخدام نوافذ متدحرجة بطول تدريب 30 يوماً واختبار 55 يوماً [6]. هذه وصفة ملموسة وقابلة لإعادة الاستخدام للتحقق التقدمي، لكنها طُبِّقت على 30 سهماً من Dow Jones خلال 2020-2023 [6] وينبغي عدم افتراض انتقالها دون تغيير إلى بيانات العملات المشفرة أو الفوركس دون إعادة التحقق، إذ إن مجموعة الادعاءات لا تُبلغ عن تشغيلها على تلك الأسواق.
الحدود والأسئلة المفتوحة
لا يُبلغ أي من الادعاءات عن تجربة مضبوطة تعزل تأثير التحيز الاستشرافي (look-ahead bias) أو تحيز الناجين على عائد سياسة DRL؛ العبارة المباشرة الوحيدة هي أن البيانات التاريخية يمكن أن تحتوي على تحيز الناجين وأن النماذج يمكن أن تفرط في التطابق، وقد وردت كصعوبة عامة في بناء بيئات RL المالية [1]. لا يمكن لباني النظام حالياً الإشارة إلى رقم منشور يوضح مقدار العائد الذي تخسره استراتيجية DRL بمجرد إزالة تحيز الناجين.
نتيجة حساسية تكلفة المعاملات خاصة بنماذج التعلم الآلي التقليدية وDNN على مجموعتي مؤشرات أسهم من 2010 إلى 2017 [12]؛ ولا تشمل سياسة DRL، لذا لا يمكن استخدامها للادعاء بأن عائد أي خوارزمية DRL معينة سيصمد أو لن يصمد أمام التكاليف الواقعية. بشكل منفصل، تُظهر قيود FinRL للتكلفة والسيولة وتجنب المخاطرة [3] أن الآلية موجودة لتشغيل مثل هذا الاختبار، لكن لا يُبلغ أي ادعاء في هذه المجموعة عن نتيجة تشغيله.
دمج احتمالات التنبؤ المعايَرة، المطلوب صراحةً في سؤال البحث، لا يوجد له أسلوب مباشر موصوف في هذه الادعاءات؛ أقرب دليل متاح هو خط أنابيب حي يضيف إشارات المشاعر والنظام إلى وكيل PPO [14]، وهو نوع مختلف من الميزة عن تنبؤ احتمالي معايَر. أي شخص يبني هذا الدمج يتجاوز ما هو منشور هنا، ولا يعيد إنتاج وصفة موثَّقة.
أخيراً، أداء سياسة RL حساس لفرط المعلمات، والبيئات غير المستقرة، والبذور العشوائية [6]، ويعاني المجال ككل من نقص في الاتساق يعيق البحث والتطوير [5]. مجتمعةً، تعني هذه أن أي رقم مُبلَّغ عنه منفرد، بما في ذلك الأرقام المستشهد بها في هذه المذكرة، ينبغي التعامل معه كمشروط بنافذة الاختبار الرجعي الدقيقة والبذرة ونموذج التكلفة الخاص به، وأن تُعاد التحقق منه قبل الوثوق به لسوق أو فترة جديدة.
كيف يُبنى
كيف تبنيه، أو كيف تستخدمه
- اختر طبقة الإطار. استخدم FinRL-Meta لتنسيق البيانات وبناء البيئات، إذ تتبع نموذج DataOps مع خط أنابيب تنسيق بيانات آلياً وتوفر مئات بيئات السوق [1]، واستخدم FinRL للخوارزميات ودوال المكافأة والقيود المُضافة فوقها [3]. احتفظ بهذين الاهتمامين منفصلين في قاعدة الشيفرة الخاصة بك، مما يعكس الفصل الذي تجريه FinRL-Meta نفسها بين معالجة البيانات وتصميم الاستراتيجية [7].
- اختر خوارزمية من المجموعة المدعومة. تقدم FinRL خوارزميات مضبوطة بدقة هي DQN وDDPG وPPO وSAC وA2C وTD3 [3]. ابدأ بتلك التي يمكنك إعادة إنتاج صياغة التداول المنشورة الخاصة بها من البداية إلى النهاية؛ DDPG لديه أكثر MDP وقاعدة تحديث تحديداً في مجموعة الادعاءات هذه [8].
- عرّف الحالة والإجراء والمكافأة كما هو محدد تماماً. ابنِ الحالة كأسعار الأسهم، ومقتنيات الأسهم، والرصيد النقدي المتبقي [8]؛ ابنِ الإجراءات كبيع، شراء، احتفاظ [8]؛ اجعل المكافأة التغير في قيمة المحفظة بعد الإجراء [8]. هيّئ المقتنيات وتقديرات قيمة الإجراء إلى صفر والسياسة بشكل متجانس عبر الإجراءات [8].
- نفّذ قيد النقد والرصيد. حدّث النقد وفق b_{t+1}=b_t+p_t^T a_t وارفض أو قصّ إجراءات الشراء التي ستجعل الرصيد الناتج سالباً [8]. هذا القيد جزء من البيئة، وليس الوكيل، لذا اختبره بشكل مستقل بصفقات اصطناعية قبل التدريب.
- أضف احتكاكات التداول. اضبط تكلفة المعاملات وسيولة السوق وتجنب المخاطرة كقيود بيئية بالطريقة التي تفعلها FinRL [3]، وغيّر معلمة تكلفة المعاملات عمداً، إذ إن حساسية التكلفة ثبت أنها تعكس ترتيب أنواع النماذج في دراسة واحدة على الأقل [12].
- إذا استخدمت وكيلاً قائماً على القيمة، أضف إعادة تشغيل تجريبي وشبكة هدف. خزّن الانتقالات وأخذ عينات دفعات صغيرة عشوائية، واستخدم شبكة Q هدف منفصلة تُحدَّث دورياً من الشبكة الرئيسية من أجل الاستقرار [9]. إذا اشتُبه في المبالغة في التقدير، انتقل إلى Double DQN، الذي يستخدم شبكة ثانية لتقليل خطأ التقدير المتراكم [9].
- إذا استخدمت DDPG، أضف آلية الناقد-الممثل والشبكة الهدف. استخدم إطار عمل ناقد-ممثل مع شبكات هدف وإعادة تشغيل تجريبي للتعامل مع مساحات الحالة/الإجراء الكبيرة، وتثبيت التدريب، وتقليل ارتباط العينات [8].
- درّب باستخدام بروتوكول تحقق تقدمي، لا تقسيماً واحداً. استخدم نوافذ متدحرجة، على سبيل المثال نوافذ تدريب 30 يوماً واختبار 55 يوماً مكررة مرات عديدة (استخدمت الدراسة المرجعية 1,010 تكرار) [6]، بدلاً من تقسيم تدريب/اختبار واحد، لأن أداء RL حساس للبذور وعدم استقرار البيئة [6].
- قلّل التباين باستخدام تجميع (ensemble). درّب عدة وكلاء (على سبيل المثال PPO وSAC وDDPG) وأخذ متوسط احتمالات إجراءاتهم؛ قلّل هذا الانحراف المعياري لعائد الاختبار إلى نحو نصف الوكلاء المكوِّنين في دراسة واحدة مُبلَّغ عنها [6]، وقلّل الحد الأقصى للسحب بمقدار يصل إلى 4.17% وحسّن نسبة شارب بمقدار يصل إلى 0.21 في تجارب الأسهم والعملات المشفرة [6]. تذكّر أن الوكلاء الأساسيين قد لا يزالون يواجهون اختناق أخذ عينات حتى بعد التجميع [6].
- وسّع التدريب بمحاكاة متوازية إذا احتجت إلى بذور عديدة أو بحث فرط معلمات كبير. حسّنت المحاكاة المتوازية الضخمة مع 2,048 بيئة على وحدة معالجة رسوميات واحدة سرعة أخذ العينات بمقدار يصل إلى 1,746 ضعفاً مقارنة ببيئة واحدة في إعداد واحد مُبلَّغ عنه [6]؛ تدعم FinRL-Meta بشكل منفصل التعدد المعالجاتي عبر آلاف أنوية وحدة معالجة الرسوميات [7]. اختر المستوى الذي يناسب ميزانيتك الحاسوبية وقِس تسريعك الخاص بدلاً من افتراض انتقال هذه الأرقام.
- اختبر رجعياً مقابل خطوط أساس مسمّاة، لا مقابل تشغيلاتك السابقة فقط. قارن مقابل تخصيص المحفظة بأقل تباين التقليدي ومؤشر سوق مثل Dow Jones Industrial Average، خطي الأساس المستخدمين في دراسة DDPG واحدة [8]، وأبلغ عن كل من العائد الخام وملخص تباين/سحب/شارب بالطريقة التي تفعلها دراسة التجميع [6].
- انتقل إلى التداول الورقي فقط بعد اجتياز الفحوصات أعلاه. استخدم واجهات برمجة تطبيقات التداول الحي عند التفاصيل الزمنية التي تدربت عليها [4]، وهيكل النشر كاستيعاب، تدريب، اختبار رجعي، ثم تداول ورقي حي، وهو الشكل المستخدم في نشر عامل واحد لستة أسهم يضيف أيضاً إشارات مشاعر ونظام [14].
الشيفرة
الشيفرة: تنفيذ عامل
ينفّذ البرنامج النصي أدناه، على مخطط قاعدة بيانات SQLite الخاص بالمذكرة، الآليتين المحددتين بالكامل ضمن الادعاءات واللتين يمكن لباني النظام إعادة إنتاجهما من البداية إلى النهاية: (1) بيئة تداول سهم واحد قائمة على MDP بحالة السعر/المقتنيات/النقد، وإجراءات الشراء/البيع/الاحتفاظ، ومكافأة تغير قيمة المحفظة، وقيد رصيد غير سالب للشراء [8]؛ و(2) تجميع صغير من وكلاء Q-learning جدوليين (tabular) مستقلي البذرة يُؤخذ متوسط احتمالات إجراءاتهم، اتباعاً لفكرة التجميع المستخدمة لتقليل تباين عائد الاختبار [6]. تذكر كل دالة في توثيقها (docstring) أي ادعاء تنفذه. تُقرأ المدخلات من جدول `bars` لرمز واحد وإطار زمني واحد؛ وإذا لم يحتوِ `data.sqlite` (أو `QOURAT_DB`) على صفوف مطابقة، تُولَّد بيانات أسعار يومية اصطناعية بحيث يعمل البرنامج النصي دائماً. تُطبع المخرجات: العائد التراكمي والانحراف المعياري للعائد لكل وكيل منفرد، وللتجميع، ولخط أساس الشراء والاحتفاظ (خط الأساس بأسلوب مؤشر السوق المستخدم في [8])؛ بالإضافة إلى حلقة تحقق تقدمي عبر نوافذ متدحرجة تتبع فكرة نافذة التدريب/الاختبار في [6]. في التشغيل مع 600 شريط (bars) حقيقي لـ AAPL بإطار 1d من جدول bars المطبوع أدناه، الانحراف المعياري لعائد التجميع (0.016267) أعلى من الانحراف المعياري للوكيل المنفرد (0.014445)، وعائد خط أساس الشراء والاحتفاظ (0.075819) يتجاوز عائد التجميع (0.021929)؛ هذا لا يعيد إنتاج الاتجاه المُبلَّغ عنه في [6]، الذي أظهر تقليل تباين التجميع وتحسن الأداء المعدَّل حسب المخاطرة في دراسة أكبر بكثير بوكلاء شبكة عصبية، و1,010 دورة تدريب/اختبار، و30 سهماً من Dow Jones. يستخدم التشغيل بأكمله عدداً صغيراً من الحلقات (episodes) والنوافذ بحيث ينتهي على وحدة معالجة مركزية (CPU) في أقل بكثير من ثلاث دقائق.
import os
import sqlite3
import math
import random
import numpy as np
import pandas as pd
DB_PATH = os.environ.get("QOURAT_DB", "data.sqlite")
SYMBOL = "AAPL"
TF = "1d"
RNG_SEED = 0
def load_bars(db_path, symbol, tf):
"""Read daily bars for one symbol/timeframe from the bars table.
Input: sqlite file path, symbol string, timeframe string.
Output: pandas DataFrame sorted by ts with a 'close' column.
If no rows are found, generate a synthetic random-walk price series
so the script can still run end to end without network access.
"""
closes = None
if os.path.exists(db_path):
try:
con = sqlite3.connect(db_path)
q = "SELECT ts, close FROM bars WHERE symbol=? AND tf=? ORDER BY ts"
df = pd.read_sql_query(q, con, params=(symbol, tf))
con.close()
if len(df) >= 120:
closes = df["close"].astype(float).values
except Exception:
closes = None
if closes is None:
rng = np.random.default_rng(RNG_SEED)
n = 400
rets = rng.normal(loc=0.0003, scale=0.012, size=n)
price = 100.0 * np.cumprod(1.0 + rets)
closes = price
return closes
class TradingEnv:
"""Single-stock trading environment.
Implements [8]: state is price, holdings, cash.
Implements [8]: actions are sell/buy/hold, reward is change in
portfolio value after an action.
Implements [8]: holdings and action-value estimates start at zero.
Implements [8]: cash update b_{t+1} = b_t + p_t^T a_t, and buying
is only allowed if the resulting balance stays non-negative.
"""
def __init__(self, prices, initial_cash=10000.0, trade_size=10):
self.prices = prices
self.n_steps = len(prices) - 1
self.initial_cash = initial_cash
self.trade_size = trade_size
self.reset()
def reset(self):
self.t = 0
self.cash = self.initial_cash
self.holdings = 0.0
self.prev_value = self._portfolio_value()
return self._state()
def _portfolio_value(self):
return self.cash + self.holdings * self.prices[self.t]
def _state(self):
return np.array([self.prices[self.t], self.holdings, self.cash])
def step(self, action):
price = self.prices[self.t]
if action == 2:
cost = price * self.trade_size
if self.cash - cost >= 0:
self.cash -= cost
self.holdings += self.trade_size
elif action == 0:
if self.holdings >= self.trade_size:
self.cash += price * self.trade_size
self.holdings -= self.trade_size
self.t += 1
new_value = self._portfolio_value()
reward = new_value - self.prev_value
self.prev_value = new_value
done = self.t >= self.n_steps
return self._state(), reward, done
def discretize_state(state, prices):
"""Turn the continuous state into a small discrete bucket so a tabular
Q-table can be used. Buckets: holdings sign (none/some). This is an
implementation choice needed to make a tabular Q-learner run in under
three minutes on a CPU; the state variables themselves (price, holdings,
cash) follow [8].
"""
price, holdings, cash = state
holdings_bucket = 1 if holdings > 0 else 0
return holdings_bucket
class QLearningAgent:
"""A simple tabular Q-learning agent used as one ensemble member.
Implements the action-value Bellman update from [8]:
Q(s,a) is updated using the temporal-difference learning rule.
Implements [8]: action-value estimates start at zero.
"""
def __init__(self, n_states=2, n_actions=3, alpha=0.1, gamma=0.95, epsilon=0.2, seed=None):
self.n_states = n_states
self.n_actions = n_actions
self.alpha = alpha
self.gamma = gamma
self.epsilon = epsilon
self.rng = np.random.default_rng(seed)
self.q_table = np.zeros((n_states, n_actions))
def get_action(self, state, explore=True):
if explore and self.rng.random() len(prices):
break
train_prices = prices[start:train_end]
test_prices = prices[train_end:test_end]
train_env = TradingEnv(train_prices)
test_env = TradingEnv(test_prices)
agents = []
for i in range(n_ensemble):
agent = QLearningAgent(seed=RNG_SEED + w * 10 + i)
train_agent(agent, train_env, n_episodes=n_episodes)
agents.append(agent)
for agent in agents:
ret = evaluate_agent(agent, TradingEnv(test_prices))
single_returns.append(ret)
ens_ret = evaluate_ensemble(agents, TradingEnv(test_prices))
ensemble_returns.append(ens_ret)
bh_ret = buy_and_hold_baseline(test_prices)
baseline_returns.append(bh_ret)
return single_returns, ensemble_returns, baseline_returns
if __name__ == "__main__":
prices = load_bars(DB_PATH, SYMBOL, TF)
print(f"Loaded {len(prices)} bars for {SYMBOL} {TF}")
single_returns, ensemble_returns, baseline_returns = walk_forward_validation(
prices, n_windows=3, train_size=100, test_size=50, n_ensemble=3, n_episodes=50
)
if len(single_returns) > 0 and len(ensemble_returns) > 0 and len(baseline_returns) > 0:
single_mean = np.mean(single_returns)
single_std = np.std(single_returns)
ensemble_mean = np.mean(ensemble_returns)
ensemble_std = np.std(ensemble_returns)
baseline_mean = np.mean(baseline_returns)
baseline_std = np.std(baseline_returns)
print("\nSingle agents:")
print(f" Cumulative return (mean): {single_mean:.6f}")
print(f" Return std deviation: {single_std:.6f}")
print("\nEnsemble:")
print(f" Cumulative return (mean): {ensemble_mean:.6f}")
print(f" Return std deviation: {ensemble_std:.6f}")
print("\nBuy-and-hold baseline:")
print(f" Cumulative return (mean): {baseline_mean:.6f}")
print(f" Return std deviation: {baseline_std:.6f}")
else:
print("Not enough data for walk-forward validation.")
ما الذي سنبنيه
ما الذي كنا سنبنيه
كنا سنبني إطار تقييم تحقق تقدمي (walk-forward) فوق FinRL، مقتصراً على فئة أصول واحدة (أسهم أمريكية) ونموذج تكلفة واحد، لاختبار ما إذا كان تجميع ثلاثة وكلاء FinRL (PPO، SAC، DDPG) يقلل من تباين عائد الاختبار ويحسّن نسبة شارب والسحب مقارنة بكل وكيل منفرد ومقارنة بالشراء والاحتفاظ، اتباعاً لبروتوكول التجميع والنوافذ المتدحرجة الموصوف في [6]. خلال أسبوعين، سيربط الشخص الأول خط أنابيب تنسيق بيانات FinRL-Meta [1] بمجموعة ثابتة من 30 سهماً أمريكياً سائلاً وينفّذ حلقة نافذة تدريب 30 يوماً/اختبار 55 يوماً المتدحرجة [6]؛ وسيضبط الشخص الثاني قيود تكلفة المعاملات والسيولة وتجنب المخاطرة الخاصة بـ FinRL [3] والخوارزميات الثلاث [3]، ثم يبني تجميع متوسط احتمالات الإجراءات [6].
سنحكم على المشروع بثلاثة أرقام، كل منها مقابل خط أساس مسمّى: العائد التراكمي وانحرافه المعياري عبر النوافذ للتجميع مقابل كل وكيل منفرد (الأرقام المستهدف تجاوزها: الانحراف المعياري للوكلاء المنفردين أنفسهم، اتباعاً لتقليل التباين المُبلَّغ عنه بنسبة تقارب اثنين إلى واحد في [6])؛ والحد الأقصى للسحب ونسبة شارب للتجميع مقابل كل وكيل منفرد (الأرقام المستهدف تجاوزها: القيم لكل وكيل، اتباعاً لتقليل السحب المُبلَّغ عنه بمقدار يصل إلى 4.17% وتحسن شارب يصل إلى 0.21 في [6])؛ والعائد التراكمي مقابل خط أساس شراء واحتفاظ بسيط على نفس المجموعة والنافذة، اتباعاً لمقارنة خط أساس مؤشر السوق في [8].
التكلفة: يتطلب هذا جهازاً واحداً مزوداً بوحدة معالجة رسوميات لبضعة أيام من التدريب عبر جميع النوافذ والوكلاء، ضمن ميزانية وحدة معالجة رسوميات واحدة بارتياح نظراً لأن 2,048 بيئة متوازية أُبلغ عن تشغيلها على وحدة معالجة رسوميات واحدة في عمل ذي صلة [6]؛ ولا يلزم حساب وساطة حية إذ يبقى المشروع عند الاختبار الرجعي، لا التداول الورقي.
الادعاءات والمراجعة
الادعاءات والمراجعة
- factمدعوم
FinRL-Meta is an openly accessible, data-centric library that processes dynamic real-world market datasets into gym-style market environments.
[1] Dynamic Datasets and Market Environments for Financial Reinforcement Learning, abstract DOI 10.48550/arxiv.2304.13174“The financial market is a particularly challenging playground for deep reinforcement learning due to its unique feature of dynamic datasets. Building high-quality market environments for training financial reinforcement learning (FinRL) agents is difficult due to major factors su…”
- methodمدعوم
FinRL-Meta follows a DataOps paradigm and uses an automatic data-curation pipeline to provide hundreds of market environments.
[1] Dynamic Datasets and Market Environments for Financial Reinforcement Learning, abstract DOI 10.48550/arxiv.2304.13174“The financial market is a particularly challenging playground for deep reinforcement learning due to its unique feature of dynamic datasets. Building high-quality market environments for training financial reinforcement learning (FinRL) agents is difficult due to major factors su…”
- limitationمدعوم
Financial reinforcement learning environments are difficult to build because financial data have a low signal-to-noise ratio and historical data can contain survivorship bias, while models can overfit.
[1] Dynamic Datasets and Market Environments for Financial Reinforcement Learning, abstract DOI 10.48550/arxiv.2304.13174“The financial market is a particularly challenging playground for deep reinforcement learning due to its unique feature of dynamic datasets. Building high-quality market environments for training financial reinforcement learning (FinRL) agents is difficult due to major factors su…”
- methodمدعوم
FinRL-Meta provides examples reproducing popular research papers as starting points for designing new trading strategies.
[1] Dynamic Datasets and Market Environments for Financial Reinforcement Learning, abstract DOI 10.48550/arxiv.2304.13174“The financial market is a particularly challenging playground for deep reinforcement learning due to its unique feature of dynamic datasets. Building high-quality market environments for training financial reinforcement learning (FinRL) agents is difficult due to major factors su…”
- methodمدعوم
FinRL-Meta deploys its library on cloud platforms so users can visualize results and assess relative performance through community-wise competitions.
[1] Dynamic Datasets and Market Environments for Financial Reinforcement Learning, abstract DOI 10.48550/arxiv.2304.13174“The financial market is a particularly challenging playground for deep reinforcement learning due to its unique feature of dynamic datasets. Building high-quality market environments for training financial reinforcement learning (FinRL) agents is difficult due to major factors su…”
- factمرفوض
FinRL supports stock-market simulations at multiple time granularities for NASDAQ-100, DJIA, S&P 500, HSI, SSE 50, and CSI 300.
[3] FinRL: A Deep Reinforcement Learning Library for Automated Stock Trading in Quantitative Finance, section FinRL: A Deep Reinforcement Learning Library for Automated Stock Trading in Quantitative Finance“FinRL is featured with completeness, hands-on tutorial and reproducibility that favors beginners: (i) at multiple levels of time granularity, FinRL simulates trading environments across various stock markets, including NASDAQ-100, DJIA, S&P 500, HSI, SSE 50, and CSI 300; (ii) org…”
- methodمدعوم مع تحفظات
FinRL uses a layered, modular architecture containing fine-tuned DQN, DDPG, PPO, SAC, A2C, and TD3 algorithms.
[3] FinRL: A Deep Reinforcement Learning Library for Automated Stock Trading in Quantitative Finance, section FinRL: A Deep Reinforcement Learning Library for Automated Stock Trading in Quantitative FinancePassage states 'FinRL provides fine-tuned state-of-the-art DRL algorithms (DQN, DDPG, PPO, SAC, A2C, TD3, etc.),' using 'etc.' indicating more than listed; claim drops this qualifier.“FinRL is featured with completeness, hands-on tutorial and reproducibility that favors beginners: (i) at multiple levels of time granularity, FinRL simulates trading environments across various stock markets, including NASDAQ-100, DJIA, S&P 500, HSI, SSE 50, and CSI 300; (ii) org…”
- methodمدعوم
FinRL provides commonly-used reward functions and standard evaluation baselines to reduce debugging work and promote reproducibility.
[3] FinRL: A Deep Reinforcement Learning Library for Automated Stock Trading in Quantitative Finance, section FinRL: A Deep Reinforcement Learning Library for Automated Stock Trading in Quantitative Finance“FinRL is featured with completeness, hands-on tutorial and reproducibility that favors beginners: (i) at multiple levels of time granularity, FinRL simulates trading environments across various stock markets, including NASDAQ-100, DJIA, S&P 500, HSI, SSE 50, and CSI 300; (ii) org…”
- methodمدعوم
FinRL configures virtual environments with stock-market datasets, trains neural-network trading agents, and analyzes extensive backtests through trading performance.
[3] FinRL: A Deep Reinforcement Learning Library for Automated Stock Trading in Quantitative Finance, section FinRL: A Deep Reinforcement Learning Library for Automated Stock Trading in Quantitative Finance“As deep reinforcement learning (DRL) has been recognized as an effective approach in quantitative finance, getting hands-on experiences is attractive to beginners. However, to train a practical DRL trading agent that decides where to trade, at what price, and what quantity involv…”
- methodمدعوم
FinRL incorporates transaction cost, market liquidity, and the investor's degree of risk-aversion as trading constraints.
[3] FinRL: A Deep Reinforcement Learning Library for Automated Stock Trading in Quantitative Finance, section FinRL: A Deep Reinforcement Learning Library for Automated Stock Trading in Quantitative Finance“As deep reinforcement learning (DRL) has been recognized as an effective approach in quantitative finance, getting hands-on experiences is attractive to beginners. However, to train a practical DRL trading agent that decides where to trade, at what price, and what quantity involv…”
- factمدعوم
FinRL can simulate markets using historical data and live trading APIs at multiple time granularities.
[4] FinRL: Deep Reinforcement Learning Framework to Automate Trading in Quantitative Finance, section FinRL: Deep Reinforcement Learning Framework to Automate Trading in Quantitative Finance“Embodied as a three-layer architecture with modular structures, FinRL implements fine-tuned state-of-the-art DRL algorithms and common reward functions, while alleviating the debugging workloads. Thus, we help users pipeline the strategy design at a high turnover rate. At multipl…”
- factمدعوم
FinRL provides step-by-step tutorials for stock trading, portfolio allocation, and cryptocurrency trading.
[4] FinRL: Deep Reinforcement Learning Framework to Automate Trading in Quantitative Finance, section FinRL: Deep Reinforcement Learning Framework to Automate Trading in Quantitative Finance“Embodied as a three-layer architecture with modular structures, FinRL implements fine-tuned state-of-the-art DRL algorithms and common reward functions, while alleviating the debugging workloads. Thus, we help users pipeline the strategy design at a high turnover rate. At multipl…”
- methodمدعوم
FinRL reserves user-import interfaces so that users can extend the framework.
[4] FinRL: Deep Reinforcement Learning Framework to Automate Trading in Quantitative Finance, section FinRL: Deep Reinforcement Learning Framework to Automate Trading in Quantitative Finance“Embodied as a three-layer architecture with modular structures, FinRL implements fine-tuned state-of-the-art DRL algorithms and common reward functions, while alleviating the debugging workloads. Thus, we help users pipeline the strategy design at a high turnover rate. At multipl…”
- limitationمدعوم
In a stock-trading study using daily OHLCV data for 30 Dow Jones stocks from 2020–2023, PPO, SAC, DDPG, and an ensemble model each exhibited high variance in cumulative testing returns.
[6] Revisiting Ensemble Methods for Stock Trading and Crypto Trading Tasks at ACM ICAIF FinRL Contest 2023-2024, section 1. Introduction“An empirical study is conducted to show policy instability. In the stock trading task, we use Proximal Policy Optimization (PPO) (John et al., 2017), Soft Actor-Critic (SAC) (Haarnoja et al., 2018), Deep Deterministic Policy Gradient (DDPG) (Lillicrap et al., 2016), and an ens…”
- methodمدعوم
The stock-trading study trained and tested models 1,010 times using rolling windows with 30-day training and 55-day testing windows.
[6] Revisiting Ensemble Methods for Stock Trading and Crypto Trading Tasks at ACM ICAIF FinRL Contest 2023-2024, section 1. Introduction“An empirical study is conducted to show policy instability. In the stock trading task, we use Proximal Policy Optimization (PPO) (John et al., 2017), Soft Actor-Critic (SAC) (Haarnoja et al., 2018), Deep Deterministic Policy Gradient (DDPG) (Lillicrap et al., 2016), and an ens…”
- resultمدعوم
In the stock-trading study, the ensemble model averaged the action probabilities of three agents and had a testing-return standard deviation of approximately half that of its component agents.
[6] Revisiting Ensemble Methods for Stock Trading and Crypto Trading Tasks at ACM ICAIF FinRL Contest 2023-2024, section 1. Introduction“An empirical study is conducted to show policy instability. In the stock trading task, we use Proximal Policy Optimization (PPO) (John et al., 2017), Soft Actor-Critic (SAC) (Haarnoja et al., 2018), Deep Deterministic Policy Gradient (DDPG) (Lillicrap et al., 2016), and an ens…”
- uncertaintyمدعوم
The stock-trading study reported that component-agent training may still face a sampling bottleneck despite the ensemble's reduction of policy instability.
[6] Revisiting Ensemble Methods for Stock Trading and Crypto Trading Tasks at ACM ICAIF FinRL Contest 2023-2024, section 1. Introduction“An empirical study is conducted to show policy instability. In the stock trading task, we use Proximal Policy Optimization (PPO) (John et al., 2017), Soft Actor-Critic (SAC) (Haarnoja et al., 2018), Deep Deterministic Policy Gradient (DDPG) (Lillicrap et al., 2016), and an ens…”
- resultمدعوم
In stock and cryptocurrency trading experiments, massively parallel simulation on one GPU with 2,048 parallel environments improved sampling speed by up to 1,746× relative to a single environment.
[6] Revisiting Ensemble Methods for Stock Trading and Crypto Trading Tasks at ACM ICAIF FinRL Contest 2023-2024, abstract arXiv:2501.10709v1“Reinforcement learning has demonstrated great potential for performing financial tasks. However, it faces two major challenges: policy instability and sampling bottlenecks. In this paper, we revisit ensemble methods with massively parallel simulations on graphics processing units…”
- resultمدعوم
The ensemble models in the stock and cryptocurrency experiments reduced maximum drawdown by up to 4.17% and improved the Sharpe ratio by up to 0.21.
[6] Revisiting Ensemble Methods for Stock Trading and Crypto Trading Tasks at ACM ICAIF FinRL Contest 2023-2024, abstract arXiv:2501.10709v1“Reinforcement learning has demonstrated great potential for performing financial tasks. However, it faces two major challenges: policy instability and sampling bottlenecks. In this paper, we revisit ensemble methods with massively parallel simulations on graphics processing units…”
- limitationمدعوم
RL policy performance is sensitive to hyperparameters, unstable environments, and random seeds.
[6] Revisiting Ensemble Methods for Stock Trading and Crypto Trading Tasks at ACM ICAIF FinRL Contest 2023-2024, section 1. Introduction“However, two major challenges are encountered: policy instability and the sampling bottleneck. The challenge of policy instability significantly impacts agents’ performance and reliability in RL (Chan et al., 2020). Policy instability for many algorithms can come from value func…”
- limitationمدعوم
A cryptocurrency-market survey identifies a lack of consistency in the DRL trading community as an impediment to research and development.
[5] Deep Reinforcement Learning for Trading—A Critical Survey, abstract DOI 10.3390/data6110119“Deep reinforcement learning (DRL) has achieved significant results in many machine learning (ML) benchmarks. In this short survey, we provide an overview of DRL applied to trading on financial markets with the purpose of unravelling common structures used in the trading community…”
- factمدعوم
Financial reinforcement learning (FinRL) applies reinforcement learning to financial tasks including algorithmic trading, portfolio management, and option pricing.
[6] Revisiting Ensemble Methods for Stock Trading and Crypto Trading Tasks at ACM ICAIF FinRL Contest 2023-2024, section 1. Introduction“Advancements in reinforcement learning (RL) have led to significant breakthroughs across various domains, notably in finance, where decision-making is crucial (Hambly et al., 2023). Financial reinforcement learning (FinRL) (Liu et al., 2020; Liu et al., 2022b) focuses on applyi…”
- methodمدعوم
FinRL-Meta separates financial data processing from the design pipeline for deep reinforcement learning strategies and provides open-source data-engineering tools for financial big data.
[7] FinRL-Meta: A Universe of Near-Real Market Environments for Data-Driven Deep Reinforcement Learning in Quantitative Finance, abstract DOI 10.48550/arxiv.2112.06753“Deep reinforcement learning (DRL) has shown huge potentials in building financial market simulators recently. However, due to the highly complex and dynamic nature of real-world markets, raw historical financial data often involve large noise and may not reflect the future of mar…”
- methodمدعوم
FinRL-Meta provides hundreds of market environments for different trading tasks and supports multiprocessing simulation and training using thousands of GPU cores.
[7] FinRL-Meta: A Universe of Near-Real Market Environments for Data-Driven Deep Reinforcement Learning in Quantitative Finance, abstract DOI 10.48550/arxiv.2112.06753“Deep reinforcement learning (DRL) has shown huge potentials in building financial market simulators recently. However, due to the highly complex and dynamic nature of real-world markets, raw historical financial data often involve large noise and may not reflect the future of mar…”
- methodمدعوم
The stock-trading process is modeled as a Markov Decision Process whose state contains stock prices, stock holdings, and remaining cash balance.
[8] Practical Deep Reinforcement Learning Approach for Stock Trading, section 2.1 Problem Formulation for Stock Trading“Considering the stochastic and interactive nature of the trading market, we model the stock trading process as a Markov Decision Process (MDP) as shown in Fig. 1, which is specified as follows: • State s=[p,h,b]s=[p,h,b]: a set that includes the information of the prices of stock…”
- factمدعوم
The stock-trading action set includes selling, buying, and holding, while the reward is the change in portfolio value after an action.
[8] Practical Deep Reinforcement Learning Approach for Stock Trading, section 2.1 Problem Formulation for Stock Trading“Considering the stochastic and interactive nature of the trading market, we model the stock trading process as a Markov Decision Process (MDP) as shown in Fig. 1, which is specified as follows: • State s=[p,h,b]s=[p,h,b]: a set that includes the information of the prices of stock…”
- methodمدعوم
The stock-trading formulation initializes holdings and action-value estimates to zero and initializes the policy uniformly across actions before learning through environmental interaction.
[8] Practical Deep Reinforcement Learning Approach for Stock Trading, section 2.1 Problem Formulation for Stock Trading“Figure 1: One starting portfolio value with three actions leading to three possible portfolio values where actions have probabilities that sum up to one. Note that "hold" can lead to different portfolio values if the stock prices change. Before being exposed to the environment, p…”
- methodمدعوم
The action-value function is updated using the expected immediate reward plus the discounted expected action value in the next state according to the Bellman equation.
[8] Practical Deep Reinforcement Learning Approach for Stock Trading, section 2.1 Problem Formulation for Stock Trading“Figure 1: One starting portfolio value with three actions leading to three possible portfolio values where actions have probabilities that sum up to one. Note that "hold" can lead to different portfolio values if the stock prices change. Before being exposed to the environment, p…”
- methodمدعوم
The stock environment updates cash as b_{t+1}=b_t+p_t^T a_t and constrains buying actions so that the resulting portfolio balance is non-negative.
[8] Practical Deep Reinforcement Learning Approach for Stock Trading, section 2.1 Problem Formulation for Stock Trading“Selling: kk (k∈[1,h[d]]k\in[1,h[d]], where d=1,…,Dd=1,...,D) shares can be sold from the current holdings, where kk must be an integer. In this case, ht+1=ht−kh_{t+1}=h_{t}-k. • Holding: k=0k=0 and it leads to no change in hth_{t}. • Buying: kk shares can be bought and it leads …”
- methodمدعوم
The described DDPG trading agent uses an actor-critic framework, target networks, and experience replay to model large state and action spaces, stabilize training, and reduce sample correlation.
[8] Practical Deep Reinforcement Learning Approach for Stock Trading, section 1 Introduction“Motivated by the above challenges, we explore a deep reinforcement learning algorithm, namely Deep Deterministic Policy Gradient (DDPG) [9], to find the best trading strategy in the complex and dynamic stock market. This algorithm consists of three key components: (i) actor-criti…”
- resultمدعوم
The described DDPG approach achieved higher return than both traditional min-variance portfolio allocation and the Dow Jones Industrial Average.
[8] Practical Deep Reinforcement Learning Approach for Stock Trading, section 1 Introduction“Motivated by the above challenges, we explore a deep reinforcement learning algorithm, namely Deep Deterministic Policy Gradient (DDPG) [9], to find the best trading strategy in the complex and dynamic stock market. This algorithm consists of three key components: (i) actor-criti…”
- methodمدعوم
Deep Q-Network training stores previous states, actions, rewards, and next states in experience replay, samples them randomly in small batches, and uses a target Q-network to estimate future rewards.
[9] Application of deep reinforcement learning for Indian stock trading automation, section 2.1 Deep Q-Network“Deep Q-Network is a classical and outstanding algorithm of Deep Reinforcement Learning and it’s model architecture is shown in Figure 1. It is a model-free reinforcement learning that can deal with sequential decision tasks. The goal of the learning is to learn an optimal policy …”
- methodمدعوم
In DQN, the target Q-network is periodically copied from the main Q-network because using separate networks increases training stability under highly correlated and rapidly arriving data.
[9] Application of deep reinforcement learning for Indian stock trading automation, section 2.1 Deep Q-Network“where, QtargetQ_{target} is the target Q value obtained using the Bellman Equation and θ\theta denotes the parameters of the Q-Network. In DQN there are two Q-Networks: main Q-Network and target Q-Network. The target Q-Network is different from the main Q-Network which is be…”
- methodمدعوم
Double DQN addresses DQN's tendency to overestimate Q-values by using another neural network to reduce the influence of accumulated estimation error.
[9] Application of deep reinforcement learning for Indian stock trading automation, section 2.1 Deep Q-Network“where, QtargetQ_{target} is the target Q value obtained using the Bellman Equation and θ\theta denotes the parameters of the Q-Network. In DQN there are two Q-Networks: main Q-Network and target Q-Network. The target Q-Network is different from the main Q-Network which is be…”
- methodمدعوم
The Indian stock-trading study trains DQN, Double DQN, and Dueling Double DQN agents for holding, buying, and selling and validates them on unseen data from a later period.
[9] Application of deep reinforcement learning for Indian stock trading automation, section 1 Introduction“In the present paper Deep Reinforcement Learning is applied to Indian stock market on ten randomly selected datsets to automate the stock trading and to maximize the profit. Model is trained with historical stock data to predict the stock trading strategy by using Deep Q-Network …”
- methodمدعوم
The described trading agent combines stacked denoising autoencoders for market representation learning, long short-term memory networks for financial time-series dependence, position-controlled actions, and n-step rewards.
[10] Deep Robust Reinforcement Learning for Practical Algorithmic Trading, abstract DOI 10.1109/access.2019.2932789“In algorithmic trading, feature extraction and trading strategy design are two prominent challenges to acquire long-term profits. However, the previously proposed methods rely heavily on domain knowledge to extract handcrafted features and lack an effective way to dynamically adj…”
- resultمدعوم
The described deep reinforcement learning trading agent reportedly outperformed its baselines and achieved stable risk-adjusted returns in both stock and futures markets.
[10] Deep Robust Reinforcement Learning for Practical Algorithmic Trading, abstract DOI 10.1109/access.2019.2932789“In algorithmic trading, feature extraction and trading strategy design are two prominent challenges to acquire long-term profits. However, the previously proposed methods rely heavily on domain knowledge to extract handcrafted features and lack an effective way to dynamically adj…”
- limitationمدعوم مع تحفظات
Trading performance in the evaluated machine-learning strategies was sensitive to changes in transaction costs, and the passage notes that earlier studies often used short backtests, small datasets, limited features, no transaction costs, and no statistical significance tests.
[12] An Empirical Study of Machine Learning Algorithms for Stock Daily Trading Strategy, abstract DOI 10.1155/2019/7816154Passage states 'trading performance of all ML algorithms is sensitive to the changes of transaction cost' and criticizes earlier studies for 'short backtesting period' and 'no consideration of transaction cost,' but does not explicitly state 'no statistical significance tests' was a flaw of earlier studies—only that their own results lacked it.“According to the forecast of stock price trends, investors trade stocks. In recent years, many researchers focus on adopting machine learning (ML) algorithms to predict stock price trends. However, their studies were carried out on small stock datasets with limited features, shor…”
- resultمدعوم
On datasets containing 424 S&P 500 component stocks and 185 CSI 300 component stocks from 2010 to 2017, traditional machine-learning algorithms performed better on most directional indicators, while DNN models performed better when transaction costs were considered.
[12] An Empirical Study of Machine Learning Algorithms for Stock Daily Trading Strategy, abstract DOI 10.1155/2019/7816154“According to the forecast of stock price trends, investors trade stocks. In recent years, many researchers focus on adopting machine learning (ML) algorithms to predict stock price trends. However, their studies were carried out on small stock datasets with limited features, shor…”
- methodمدعوم
The RL Trading Agent implements an end-to-end pipeline covering data ingestion, PPO training, backtesting, and live paper-trading deployment for six stocks using live market data, NLP sentiment analysis, and market-regime detection.
[14] Connor-Appleton/RL-Trading-Agent (Reinforcement learning stock trading agent built with PPO, FinBERT sentiment analysis, and live Alpaca paper trading dep), readme lines L1-L16 @ 1b609c66a4f2“# RL Trading Agent A reinforcement learning stock trading agent built from scratch using Proximal Policy Optimization (PPO). The agent learns to manage a portfolio of 6 stocks using live market data, NLP sentiment analysis, and market regime detection — deployed to a live paper …”
المصادر
المصادر
- [1]Xiao-Yang Liu, Ziyi Xia, Hongyang Yang, Jiechao Gao, Daochen Zha, Ming Fang Zhu. Dynamic Datasets and Market Environments for Financial Reinforcement Learning. arXiv (Cornell University), 2023.
- [2]Xiao-Yang Liu, Ziyi Xia, Jingyang Rui, Jiechao Gao, Hongyang Yang, Ming Fang Zhu. FinRL-Meta: Market Environments and Benchmarks for Data-Driven Financial Reinforcement Learning. RePEc: Research Papers in Economics, 2022.
- [3]Xiao-Yang Liu, Hongyang Yang, Qian Chen, Runjia Zhang, Liuqing Yang, Bowen Xiao, Christina Dan Wang. FinRL: A Deep Reinforcement Learning Library for Automated Stock Trading in Quantitative Finance. arXiv, 2020.
- [4]Xiao-Yang Liu, Hongyang Yang, Jiechao Gao, Christina Dan Wang. FinRL: Deep Reinforcement Learning Framework to Automate Trading in Quantitative Finance. arXiv, 2021.
- [5]Adrian Millea. Deep Reinforcement Learning for Trading—A Critical Survey. Data, 2021.
- [6]Nikolaus Holzer, Keyi Wang, Kairong Xiao, Xiao-Yang Liu Yanglet. Revisiting Ensemble Methods for Stock Trading and Crypto Trading Tasks at ACM ICAIF FinRL Contest 2023-2024. arXiv, 2025.
- [7]Xiaoyang Liu, Jingyang Rui, Jiechao Gao, Liuqing Yang, Hongyang Yang, Zhaoran Wang. FinRL-Meta: A Universe of Near-Real Market Environments for Data-Driven Deep Reinforcement Learning in Quantitative Finance. RePEc: Research Papers in Economics, 2021.
- [8]Xiao-Yang Liu, Zhuoran Xiong, Shan Zhong, Hongyang Yang, Anwar Walid. Practical Deep Reinforcement Learning Approach for Stock Trading. arXiv, 2018.
- [9]Supriya Bajpai. Application of deep reinforcement learning for Indian stock trading automation. arXiv, 2021.
- [10]Yang Li, Wanshan Zheng, Zibin Zheng. Deep Robust Reinforcement Learning for Practical Algorithmic Trading. IEEE Access, 2019.
- [11]Santosh Kumar Sahu, Anil Mokhade, Neeraj Dhanraj Bokde. An Overview of Machine Learning, Deep Learning, and Reinforcement Learning-Based Techniques in Quantitative Finance: Recent Progress and Challenges. Applied Sciences, 2023.
- [12]Dongdong Lv, Shuhan Yuan, Meizi Li, Yang Xiang. An Empirical Study of Machine Learning Algorithms for Stock Daily Trading Strategy. Mathematical Problems in Engineering, 2019.
- [13]Nicole Hui Lin Kan, Qi Ping Cao, Chai Hiok Quek. Learning and processing framework using Fuzzy Deep Neural Network for trading and portfolio rebalancing. Applied Soft Computing, 2024.
- [14]Connor-Appleton. Connor-Appleton/RL-Trading-Agent (Reinforcement learning stock trading agent built with PPO, FinBERT sentiment analysis, and live Alpaca paper trading dep). GitHub, 2026.
- [15]finrl.readthedocs.io. Welcome to FinRL Library! — FinRL 0.3.1 documentation.
- [16]Deep Pandey, Qi Yu. Learn to Accumulate Evidence from All Training Samples: Theory and Practice. arXiv, 2023.
- [17]Alfonso Guarino, Luca Grilli, Domenico Santoro, Francesco Messina, Rocco Zaccagnino. To learn or not to learn? Evaluating autonomous, adaptive, automated traders in cryptocurrencies financial bubbles. Neural Computing and Applications, 2022.
- [18]Abdul Wahab, Raksha Kumaraswamy, Martha White. Value Bonuses using Ensemble Errors for Exploration in Reinforcement Learning. arXiv, 2026.