السلام عليكم (ثريد طويل شوي)
الكل لاحظ التطور التكنولوجي اللي صار في البورصات العالمية ودخول الذكاء الاصطناعي والمعادلات الرياضية والتقنية في مجال التداول
ومن بداية ٢٠٢٠ قررت انني احاول اركب الموجة واتعلم اللي اقدر عليه قبل لا تصل هذه البرامج الى اسواقنا بشكل ملحوظ
الكل لاحظ التطور التكنولوجي اللي صار في البورصات العالمية ودخول الذكاء الاصطناعي والمعادلات الرياضية والتقنية في مجال التداول
ومن بداية ٢٠٢٠ قررت انني احاول اركب الموجة واتعلم اللي اقدر عليه قبل لا تصل هذه البرامج الى اسواقنا بشكل ملحوظ
في البداية عشان نكون واضحين... اذا تبي تصير ناجح في هذا المجال لازم تكون ملم في الرياضيات والبرمجة وطبعا في مجال الاستثمار
وانا اعترف بانني مو خبير رياضيات ولا برمجة كمبيوتر ولا زلت في اول الطريق
وانا اعترف بانني مو خبير رياضيات ولا برمجة كمبيوتر ولا زلت في اول الطريق
في البداية اخترت لغة python للبرمجة لانه يعتبر سهل وبنفس الوقت تقدر تستعين بالعديد من المكتبات البرمجية (libraries) اللي راح تبسط وتختصر لك البرمجة بشكل كبير. ركزت بشكل اساسي على قواعد اللغة (syntax) وبعض الوظائف مثل (loops) و (objects)
وبعد بايثون راجعت مادة الرياضيات اللي خذيناها في الجامعة وخصوصا (linear algebra) و الاحصاء لتعلم (martices - vectors - hypothesis testing - regressions)
وبعد ذلك قررت اتعلم مبادئ الذكاء الاصطناعي والبرامج المختلفة مثل (classification - clustering - regression) وغيرها من البرامج المتقدمة
بالنسبة لي الهدف كان فقط تعلم الحد الادنى في مجال الاستثمار عبر الذكاء الاصطناعي والمرحلة الثانية يكون التعليم عبر التطبيق الفعلي (trial and error)
ولله الحمد اعتقد انني وصلت الى مرحلة الحد الادنى وحاولت اطبق اللي تعلمته على اسهم البنك الوطني وبيتك وكانت تجربتي كالتالي:
ولله الحمد اعتقد انني وصلت الى مرحلة الحد الادنى وحاولت اطبق اللي تعلمته على اسهم البنك الوطني وبيتك وكانت تجربتي كالتالي:
اخر عامود هو (if function) في اكسل وهو (binary output) بمعنى اذا السهم ارتفع عن الاقفال السابق راح تكون النتيجة 1 واذا نفس الاقفال السابق او اقل راح تكون النتيجة 0
اضفت هذا العامود لانني راح اطبق (classification algorithms) والتي باذن الله راح يتوقع لي بيرتفع السهم او لا؟
اضفت هذا العامود لانني راح اطبق (classification algorithms) والتي باذن الله راح يتوقع لي بيرتفع السهم او لا؟
لاحظ البرنامج راح يحدد حركة السهم اذا بيرتفع او لا... هناك عدة برامج اخرى تعطيك سعر السهم المتوقع بالفلس وباذن الله راح اشتغل عليها في وقت لاحق
والحين وصلنا الى التطبيق الفعلي:
اول شي راح نستفيد من المكتبات البرمجية (libraries) عبر استخدام (Jupyter Notebook) وراح نعتمد البرامج التالية:
Numpy للمعادلات الرياضية
Matplotlib للرسومات البيانية
Pandas لتحليل البيانات
شخصيا تعودت احطهم في كل مرة حتى اذا ما استخدمهم
اول شي راح نستفيد من المكتبات البرمجية (libraries) عبر استخدام (Jupyter Notebook) وراح نعتمد البرامج التالية:
Numpy للمعادلات الرياضية
Matplotlib للرسومات البيانية
Pandas لتحليل البيانات
شخصيا تعودت احطهم في كل مرة حتى اذا ما استخدمهم
وبالنسبة للذكاء الاصطناعي استخدمت مكتبة Sci-kit Learn
اول شي نسويه هو تحديد شنو راح يتوقع البرنامج (dependent variable - y vector) ومن وين راح يتعلم (features - x matrix)
وبعدين لازم نقسم قاعدة بيانات الى قسمين:
الاول للتعليم وقد يشكل ٨٠٪
الثاني للاختبار ويمثل ال٢٠٪ المتبقية
اول شي نسويه هو تحديد شنو راح يتوقع البرنامج (dependent variable - y vector) ومن وين راح يتعلم (features - x matrix)
وبعدين لازم نقسم قاعدة بيانات الى قسمين:
الاول للتعليم وقد يشكل ٨٠٪
الثاني للاختبار ويمثل ال٢٠٪ المتبقية
والان وصلنا الى مرحلة التعليم لل٨٠٪ المختارة ليطبق البرنامج ما تعلمه على ال٢٠٪ ليكون بمثابة اختبار لجودة البرنامج
تصور انك قاعد تدرس لان وراك امتحان
المرحلة الاخيرة هي الاختبار الفعلي للبرنامج وننتظر النتائج
تصور انك قاعد تدرس لان وراك امتحان
المرحلة الاخيرة هي الاختبار الفعلي للبرنامج وننتظر النتائج
برامج الذكاء الاصطناعي التي استخدمتها في هذه الدراسة:
Support Vector Machines (linear)
Support Vector Machines (non-linear)
Random Forest Classifier
Support Vector Machines (linear)
Support Vector Machines (non-linear)
Random Forest Classifier
ملاحظة:
هذه دراسة بسيطة وسطحية جدا وعلى سبيل المثال هذه البرامج يجب تضبيطها parameter tuning حتى تعطينا نتائج افضل
والبيانات المختارة (features) سطحية جدا ويفضل ان تشمل متوسطات متحركة ونسب التذبذب وايضا بعض البيانات الفنية مثل MACD و RSI و مكررات اخرى مهمة
هذه دراسة بسيطة وسطحية جدا وعلى سبيل المثال هذه البرامج يجب تضبيطها parameter tuning حتى تعطينا نتائج افضل
والبيانات المختارة (features) سطحية جدا ويفضل ان تشمل متوسطات متحركة ونسب التذبذب وايضا بعض البيانات الفنية مثل MACD و RSI و مكررات اخرى مهمة
وضعت لكل برنامج دراسة للبنك الوطني وبيتك وحددت اداء البرنامج في التعليم (train) وفي الاختبار (test)
في الSVM لاحظنا النتائج متقاربة وهذا شي ايجابي ولكن نسبة النجاح تتراوح بين ٦٠-٧٠ ٪ وتعتبر نسبة متدنية نوعا ما وقد يكون بسبب الfeatures
في الSVM لاحظنا النتائج متقاربة وهذا شي ايجابي ولكن نسبة النجاح تتراوح بين ٦٠-٧٠ ٪ وتعتبر نسبة متدنية نوعا ما وقد يكون بسبب الfeatures
برنامج Random Forest يعطي انطباع بانه ناجح ولكن لاحظ الفرق الكبير بين التعليم والاختبار
وهذا يدل على مشكلة يعاني منها الكثيرون وهي overfitting والمتعلقة بحجم البيانات المختارة وجودتها
تنويه : برنامج Random Forest من الاساس يعاني من overfitting ولكنه ممتاز جدا مع التطبيق السليم
وهذا يدل على مشكلة يعاني منها الكثيرون وهي overfitting والمتعلقة بحجم البيانات المختارة وجودتها
تنويه : برنامج Random Forest من الاساس يعاني من overfitting ولكنه ممتاز جدا مع التطبيق السليم
المرحلة المقبلة باذن الله راح تكون في reinforcement learning and deep learning والمستخدمة بشكل اساسي في اسواق المال وبعد ذلك نركز على اختيار البيانات (feature selection) و ضبط المعايير المستخدمة (parameter tuning)
نسأل الله التوفيق
انتهى
نسأل الله التوفيق
انتهى
جاري تحميل الاقتراحات...