σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft Academyخرائط الطريقالمسارات
Ctrl K
AO
+1.2k متعلّم
تسجيل الدخولانضم ↗
خرائط الطريقالمسارات
AO
+1.2k متعلّم
تسجيل الدخول
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft Academyخرائط الطريقالمسارات
Ctrl K
AO
+1.2k متعلّم
تسجيل الدخولانضم ↗
خرائط الطريقالمسارات
AO
+1.2k متعلّم
تسجيل الدخول
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
مسار SciPy›الوحدة 1 · الملاءمة والإيجاد›الموضوع 1.6·~45 دمتوسط

إيجاد الجذور يدويًا وبـ brentq

الموضع في المسارالوحدة 1 من 3 · الموضوع 6 من 8
1.6 إيجاد الجذور يدويًا وبـ brentq
—درجة المختبر— / 100إجمالي XP—التتابع—

ابحث عن العدد الذي يصفّر الخطأ

يسهل حساب سعر السند من العائد، أما العائد من السعر فلا. تحل f(y)=P(y)-سعر السوق=0 بالبحث. تتبع طريقة نيوتن المماس: من تخمين y تقفز إلى y-f(y)/f'(y)، وقرب الجواب يتضاعف عدد الأرقام الصحيحة تقريبًا في كل خطوة فتكفي بضع تكرارات، لكنها تحتاج المشتقة وقد تضل من بداية سيئة. أما التنصيف فيحتاج مجالًا [lo,hi] تتغير فيه إشارة f: ينصّفه مرة بعد مرة فلا يفشل، لكنه يكسب رقمًا ثنائيًا واحدًا في الخطوة، أي 40 خطوة لتقليص مجال عرضه 65 تحت 10⁻¹⁰. وتحتفظ طريقة برنت scipy.optimize.brentq بأمان المجال وتضيف خطوات استيفاء، وتحتاج عادة ما يقارب بضع تنصيفات من استدعاءات الدالة. ومع full_output=True تعيد أيضًا سجلًا يقول حقل function_calls فيه كم مرة قيّمت دالتك.

تقلب الأداة نفسها صيغة بلاك–شولز. يزداد سعر الخيار الشرائي مع التقلب فتطلب من brentq لكل سعر معلن قيمة σ في [10⁻⁴,5] التي تعيده. ولا يصح ذلك إلا إذا وقع السعر بدقة بين القيمة الجوهرية max(S-Ke^(-rT),0) وسعر السهم S؛ وخارج ذلك لا يوجد تقلب والجواب الصحيح NaN لا استثناء، كي لا يوقف سعر واحد سيئ ابتسامة كاملة. في 9 أكتوبر 2026 عائد الخزانة لعشر سنوات 5.24% فسند بكوبون سنوي 5% لعشر سنوات يكلف 97.121. يستعيد نيوتن العائد في 4 تكرارات وبرنت في 10 استدعاءات للدالة والتنصيف في 40. وتعود التقلبات الضمنية 10% و20% و40% و80% بدقة أفضل من 10⁻⁶. ومعرفة كلفة كل طريقة ومتى تفشل هي ما يتيح اختيار المناسبة لمنحنى كامل من السندات أو سلسلة خيارات.

  • نيوتن سريع لكنه يحتاج مشتقة وبداية معقولة: أخذ 4 خطوات هنا.
  • التنصيف لا يفشل لكنه بطيء: 40 خطوة لمجال عرضه 65.
  • استعمل brentq وعالج الحالات المستحيلة: مجال مع استيفاء، وNaN حين لا يوجد حل.

المختبر: ما الذي يُقيَّم

  • سعر سند10 نقطة
  • نيوتن يدويًا20 نقطة
  • التنصيف يدويًا15 نقطة
  • برنت مع scipy15 نقطة
  • ثلاثة حلّالات جنبًا إلى جنب10 نقطة
  • التقلبات الضمنية15 نقطة
  • دراسة البيانات الحقيقية15 نقطة
المستكشف · lab-sp-15
▾ lab-sp-15
▾ data
…
bash · داخل المتصفح
learner@quantcraft:~/lab-sp-15$
لم يتم تحميل Python بعدPythonLn 1, Col 1Spaces: 4UTF-8

هل تريد إعادة ضبط هذا الموضوع؟

سيعود كل ما في lab-sp-15 إلى الملفات الابتدائية وستُمسح الطرفية. ستفقد حلّك الحالي ولا يمكن التراجع عن ذلك.

سيُعاد ضبطه
  • main.py ← الشيفرة الابتدائية
  • سجل الطرفية ومخرجات الاختبارات
  • التغييرات غير المُرسلة
سيُحتفظ به
  • أفضل درجة في المختبر
  • نقاط XP والتتابع
  • تقدّم المحاضرة والملاحظات

سجّل الدخول لتشغيل الكود الخاص بك.

قراءة كل المحاضرات مجانية. أنشئ حسابًا أو سجّل الدخول لتشغيل الكود وتنفيذ الاختبارات وتسليم هذا المختبر.

  • بيئة تطوير داخل المتصفح مع طرفية bash — لا حاجة لتثبيت أي شيء
  • تصحيح فوري ونقاط خبرة ومكانك في المسار
إنشاء حسابتسجيل الدخول
أو
المتابعة عبر GitHub