صحيح وخطأ
للقيمة المنطقية (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 TrueTrue أو 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 نقطة