σμ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ᵀμ = μ*∫Σ∂∞λ
σμ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
  • 日本語
  • 中文
مسار Python›الوحدة 1 · أساسيات Python للمحللين الكميين›الموضوع 1.4·~30 دمبتدئ

القيم المنطقية والمقارنات

الموضع في المسارالوحدة 1 من 11 · الموضوع 4 من 33
1.4 القيم المنطقية والمقارنات
—درجة المختبر— / 100إجمالي XP—التتابع—

صحيح وخطأ

للقيمة المنطقية (bool) قيمتان فقط: True وFalse بحرف كبير في البداية. تنتهي كل قاعدة تداول بواحدة منهما: «هل السوق متقاطع؟»، «هل نستطيع تحمّل هذا الأمر؟». مقارنة قيمتين تنتج قيمة منطقية، لذا فإن ask > bid ليس قرارًا بعد، بل قيمة يمكنك تخزينها وطباعتها ودمجها.

bid, ask = 184.25, 184.5
print(ask > bid)        # True
print(type(ask > bid))  # <class 'bool'>

عوامل المقارنة

تقارن Python باستخدام == (يساوي) و!= (لا يساوي) و< و<= و> و>=. علامة = المفردة تعني إسنادًا لا مقارنة، فـprice = 5 تخزّن قيمة بينما price == 5 تطرح سؤالًا. ويمكن تسلسل المقارنات: low <= price <= high تُقرأ كما في الرياضيات وتفحص الطرفين معًا.

# Comparison operators give True or False
price = 184.4
print(price == 184.4)         # True
print(price != 184.25)        # True
print(184.25 <= price < 185)  # True (chained)

دمج الشروط: and وor وnot

تكون a and b صحيحة فقط عندما يكون الاثنان صحيحين. وتكون a or b صحيحة إذا كان أحدهما صحيحًا على الأقل. وnot a تعكس القيمة. وبمجموعها تعبّر عن قواعد حقيقية مثل «السوق مفتوح والسهم غير موقوف ولدينا النقد».

# Combine conditions with and, or, not
market_open, halted, cash = True, False, 500.0
can_buy = market_open and not halted and cash >= 184.5
print(can_buy)               # True
print(halted or cash < 100)  # False

يعمل and وor بـالدارة المختصرة: تتوقف Python فور معرفة الجواب ولا تقيّم الباقي. وهذا مفيد كحارس: ضع الفحص الآمن أولًا ليعمل الفحص الخطِر فقط عندما يكون مسموحًا.

# Short-circuit: the division never runs when quantity is 0
quantity = 0
print(quantity > 0 and 100 / quantity > 1)  # False

قيمة الصدق

يمكن استخدام أي قيمة كشرط. تُعدّ 0 و0.0 والنص الفارغ "" وNone خاطئة، وكل ما عداها تقريبًا صحيح. تُظهر bool(value) كيف تقرأ Python القيمة. احذر: قد تُرجع quantity and price > 0 القيمة 0 بدل False، لذا اكتب المقارنة كاملة عندما تحتاج bool حقيقيًا.

# Zero, empty text and None count as False
print(bool(0), bool(0.0), bool(""), bool(None))  # False False False False
print(bool(200), bool("AAPL"))                    # True True
أرجع الشرط نفسهالمقارنة هي أصلًا True أو False. اكتب return quantity > 0 بدل if يُرجع True وفرع آخر يُرجع False: فهو أقصر ولا يمكن أن يناقض نفسه.

مقارنة الأعداد العشرية، و None

المقارنة == بين الأعداد العشرية محفوفة بالمخاطر بسبب أخطاء التقريب (راجع الأعداد الصحيحة والعشرية): استخدم math.isclose لمعنى «متساويان بما يكفي». تقارن == القيم؛ أما is فتسأل هل يشير اسمان إلى الكائن نفسه تمامًا، ولا تحتاجها إلا لشيء واحد: x is None لاختبار «لا قيمة».

# Floats need a tolerance; None is tested with "is"
import math

print(0.1 + 0.2 == 0.3)              # False
print(math.isclose(0.1 + 0.2, 0.3))  # True
fill_price = None
print(fill_price is None)            # True

التالي: الشروط، حيث تقرّر قيمة منطقية أي أسطر الشيفرة تُنفَّذ: if وelif وelse.

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

  • اكتشف السوق المتقاطع باستخدام is_crossed25 نقطة
  • تحقق من أن السعر داخل نطاق باستخدام within_band25 نقطة
  • اجمع شروط التداول باستخدام can_trade25 نقطة
  • تحقق من صحة أمر باستخدام is_valid_order25 نقطة
المستكشف · lab-4-1
▾ lab-4-1
…
bash · داخل المتصفح
learner@quantcraft:~/lab-4-1$
لم يتم تحميل Python بعدPythonLn 1, Col 1Spaces: 4UTF-8

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

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

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

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

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

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