هذه مجموعة من دفاتر ملاحظات Jupyter بناءً على موضوعات مختلفة في مجال التمويل الكمي.
بالكاد! :)
هذه مجرد مجموعة من المواضيع والخوارزميات التي في رأيي مثيرة للاهتمام.
فهو يحتوي على العديد من المواضيع التي لا تحظى بشعبية كبيرة في الوقت الحاضر، ولكنها يمكن أن تكون قوية جدًا. عادةً، لا تحظى موضوعات مثل أساليب PDE، أو عمليات Lévy، أو طرق Fourier أو مرشح Kalman بشعبية كبيرة بين الممارسين، الذين يفضلون العمل باستخدام أدوات أكثر معيارية.
الهدف من هذه الدفاتر هو تقديم هذه المواضيع المثيرة للاهتمام، من خلال إظهار تطبيقها العملي من خلال تنفيذ لغة بايثون التفاعلية.
ليس للمبتدئين المطلقة.
تتطلب هذه المواضيع معرفة أساسية في حساب التفاضل والتكامل العشوائي والرياضيات المالية والإحصاء. المعرفة الأساسية ببرمجة بايثون ضرورية أيضًا.
في هذه الدفاتر لن أشرح ما هو خيار الاتصال، أو ما هي العملية العشوائية، أو المعادلة التفاضلية الجزئية.
ومع ذلك، في كل مرة سأقدم فيها مفهومًا، سأضيف أيضًا رابطًا إلى صفحة الويكي المقابلة أو إلى دليل مرجعي. وبهذه الطريقة، سيتمكن القارئ من فهم ما أتحدث عنه على الفور.
هذه الملاحظات مخصصة لطلاب العلوم أو الاقتصاد أو التمويل الذين تابعوا دورة جامعية واحدة على الأقل في الرياضيات والإحصاء المالي.
يجب أن يكون الطلاب أو الممارسون الذين يدرسون أنفسهم قد قرأوا على الأقل كتابًا تمهيديًا عن الرياضيات المالية.
أولاً، هذا ليس كتاباً!
كل دفتر ملاحظات (تقريبًا) مستقل عن الآخرين. لذلك يمكنك تحديد دفتر الملاحظات الذي تهتم به فقط!
- Every notebook contains python code ready to use!
ليس من السهل العثور على أمثلة على الإنترنت للنماذج المالية المطبقة في لغة بايثون والتي تكون جاهزة للاستخدام وموثقة جيدًا.
أعتقد أن المبتدئين في التمويل الكمي سيجدون هذه الدفاتر مفيدة جدًا!
علاوة على ذلك، تعتبر دفاتر Jupyter تفاعلية، أي أنه يمكنك تشغيل التعليمات البرمجية داخل دفتر الملاحظات. ربما هذه هي أفضل طريقة للدراسة!
إذا قمت بفتح دفتر ملاحظات باستخدام Github أو NBviewer، فقد لا يتم عرض الصيغ الرياضية بشكل صحيح في بعض الأحيان. لهذا السبب، أقترح عليك استنساخ/تنزيل المستودع.
لا!
سأقوم بتحميل المزيد من دفاتر الملاحظات من وقت لآخر.
في الوقت الحالي، أنا مهتم بمجالات العمليات العشوائية ومرشح كالمان والإحصائيات وغير ذلك الكثير. سأضيف المزيد من الدفاتر المثيرة للاهتمام حول هذه المواضيع في المستقبل.
إذا كان لديك أي نوع من الأسئلة، أو إذا وجدت بعض الأخطاء، أو لديك اقتراحات للتحسينات، فلا تتردد في الاتصال بي.
1.1) طرق بلاك سكولز العددية (التوزيع اللوغاريتمي الطبيعي، تغيير القياس، مونت كارلو، طريقة ذات الحدين) .
1.2) محاكاة وإحصائيات SDE (توليد المسارات، فترات الثقة، اختبار الفرضيات، الحركة البراونية الهندسية، عملية كوكس-إنجرسول-روس، طريقة أويلر ماروياما، تقدير المعلمات)
1.3) طرق انعكاس فورييه (صيغة الانعكاس، الانعكاس العددي، تسعير الخيارات، FFT، صيغة لويس)
1.4) SDE، نموذج هيستون (الحركات البراونية المترابطة، مسارات هيستون، توزيع هيستون، الوظيفة المميزة، تسعير الخيارات)
1.5) عمليات SDE، Lévy (Merton، Variance Gamma، NIG، إنشاء المسار، تقدير المعلمة)
2.1) بلاك سكولز PDE (تقدير PDE، الطريقة الضمنية، البرنامج التعليمي للمصفوفة المتفرقة)
2.2) الخيارات الغريبة (الخيارات الثنائية، خيارات الحاجز، الخيارات الآسيوية)
2.3) الخيارات الأمريكية (PDE، التمرين المبكر، طريقة ذات الحدين، Longstaff-Schwartz، Perpetual put)
3.1) Merton Jump-Diffusion PIDE (التقطيع الضمني الصريح، الالتواء المنفصل، قيود النموذج، مونت كارلو، انعكاس فورييه، صيغة شبه مغلقة)
3.2) تباين جاما PIDE (PIDE التقريبي لنشر القفزة، مونت كارلو، انعكاس فورييه، مقارنة مع بلاك سكولز)
3.3) PIDE غاوسي معكوس عادي (PIDE انتشار القفزة التقريبية، مونت كارلو، انعكاس فورييه، خصائص مقياس ليفي)
4.1) التسعير مع تكاليف المعاملات (نموذج ديفيس-باناس-زاريفوبولو، مشكلة التحكم المفرد، عدم المساواة المتغيرة HJB، تسعير اللامبالاة، الشجرة ذات الحدين، العروض)
4.2) ابتسامة التقلب ومعايرة النموذج (ابتسامة التقلب، طرق مكتشف الجذر، طرق المعايرة)
5.1) الانحدار الخطي ومرشح كالمان (تنظيف بيانات السوق، طرق الانحدار الخطي، تصميم مرشح كالمان، اختيار المعلمات)
5.2) تتبع الارتباط التلقائي كالمان - عملية AR(1) (عملية الانحدار التلقائي، طرق التقدير، مرشح كالمان، كالمان الأكثر سلاسة، تتبع الارتباط التلقائي المتغير)
5.3) تتبع التقلبات (محاكاة هيستون، اختبار الفرضيات، تركيب التوزيع، طرق التقدير، GARCH(1,1)، مرشح كالمان، كالمان أكثر سلاسة)
6.1) عملية وتطبيقات Ornstein-Uhlenbeck (تقدير المعلمات، وقت الضرب، Vasicek PDE، مرشح كالمان، استراتيجية التداول)
7.1) MVO الكلاسيكي (متوسط تحسين التباين، البرمجة التربيعية، فقط الصيغة الطويلة والقصيرة والمغلقة)
A.1) الملحق: المعادلات الخطية (LU، جاكوبي، غاوس سايدل، SOR، توماس)
A.2) الملحق: تحسين الكود (cython، C code)
A.3) الملحق: مراجعة نظرية عمليات ليفي (التعريفات الأساسية والمهمة، اشتقاق PIDE التسعيري)
البيئة الافتراضية:
أشرح هنا كيفية إنشاء بيئة افتراضية باستخدام Anaconda ومع وحدة python venv.
يمكنك إعادة إنشاء بيئة conda الافتراضية التي تم اختبارها باستخدام:
conda env create -f environment.yml
pip install -e .
يقوم السطر الأول بإعادة إنشاء البيئة الافتراضية وتثبيت كافة الحزم.
مع السطر الثاني نقوم فقط بتثبيت الحزمة المحلية FMNM
.
إذا كنت تريد إنشاء بيئة جديدة باستخدام أحدث إصدار من لغة بايثون، فيمكنك القيام بما يلي:
conda create -n FMNM python
conda activate FMNM
PACKAGES= $( tr ' n ' ' ' < list_of_packages.txt | sed " s/arch/arch-py/g " )
conda install ${PACKAGES[@]}
pip install -e .
حيث نستبدل في السطر الثالث arch
اسم الحزمة بـ arch-py
، وهو الاسم الذي تستخدمه conda.
إذا كنت تفضل إنشاء venv
يستخدم python 3.11.4، فيمكنك القيام بذلك على النحو التالي:
python3.11.4 -m venv --prompt FMNM python-venv
source python-venv/bin/activate
python3 -m pip install --upgrade pip
pip install --requirement requirements.txt
pip install -e .
إذا كنت تفضل استخدام إصدار python المثبت بالفعل في نظامك، فما عليك سوى تشغيله
pip install --requirement list_of_packages.txt
pip install -e .
ثم أدخل في Shell jupyter-notebook
أو jupyter-lab
:
ومع ذلك، إذا كنت تستخدم إصدارات قديمة، فقد تكون هناك مشكلات في التوافق.
عامل ميناء:
نقوم هنا بتشغيل دفاتر الملاحظات باستخدام jupyterlab:
يمكنك استخدام docker-compose لإنشاء حاوية:
docker-compose up --build -d
ثم أوقف الحاوية بها
docker-compose down
وافتح المتصفح على http://localhost:8888/lab
بدلا من ذلك، يمكنك
docker build -t fmnm .
docker run --rm -d -p 8888:8888 --name Numeric_Finance fmnm