حاسبة بلاك-شولز
خيار شراء لمدة سنة، سعر أصله وسعر تنفيذه 100، بفائدة 5 بالمئة وتقلب 20 بالمئة، تبلغ قيمته أكثر من 10 بقليل وفق بلاك شولز. أدخل بيانات السوق الخمس لتسعير أي خيار أوروبي. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- السعر الفوري
- 100
- سعر التنفيذ
- 100
- الوقت حتى الانتهاء
- 1
- معدل الفائدة
- 0.05
- التقلب
- 0.2
- نوع الخيار
- Call
- D1
- 0.35
- D2
- 0.15
- N d1
- 0.636830586
- N d2
- 0.5596177096
صيغة بلاك-شولز هي السعر بالشكل المغلق لخيار أوروبي شراء (كول) أو بيع (بوت) على أصل أساسي لا يوزّع أرباحاً. مع السعر الفوري اليوم، وسعر التنفيذ، والأجل حتى الاستحقاق بالسنوات، ومعدل خالٍ من المخاطر مركّب باستمرار، وتقلب ثابت، تعيد علاوة نظرية واحدة ما زالت الكتب وأوراق المكتب وأسئلة المقابلات تتّخذها مرجعاً. الأجل صفر ينهار إلى القيمة الذاتية؛ والتقلب صفر إلى العائد الحتمي المخصوم.
كيف تُحسب الكول والبوت الأوروبية وفق بلاك-شولز
يسعّر بلاك-شولز خياراً أوروبياً لا يُمارس إلا عند الاستحقاق على أصل أساسي لا يدفع ربحاً. المدخلات السوقية الخمس هي السعر الفوري S اليوم، والتنفيذ K، والأجل T بالسنوات، ومعدل خالٍ من المخاطر r مركّب باستمرار ومُدخل كعدد عشري (صفر فاصلة صفر خمسة تعني خمسة في المئة لا خمسة)، وتقلب سنوي ثابت σ كذلك كعدد عشري (صفر فاصلة اثنين تعني عشرين في المئة).
من تلك تكوّن الحاسبة d1 مساوياً للوغاريتم الطبيعي لـ S على K زائد r زائد نصف σ مربعاً، الكل مضروباً في T، مقسوماً على σ في جذر T؛ وd2 يساوي d1 ناقص σ في جذر T. N هي دالة التوزيع التراكمي الطبيعي المعياري، تُقيَّم بتقريب ثابت من Abramowitz وStegun لدالة الخطأ حتى تنتج المدخلات نفسها دائماً الأرقام نفسها. الكول تساوي S في N(d1) ناقص K في e مرفوعاً إلى ناقص rT في N(d2).
البوت تساوي K في e مرفوعاً إلى ناقص rT في N(−d2) ناقص S في N(−d1). هذان السعران يطيعان تكافؤ البوت-كول: الكول ناقص البوت يساوي S ناقص التنفيذ المخصوم. عندما يكون T صفراً تماماً تصبح الصيغة غير معرّفة (قسمة على جذر T) والسعر هو الذاتي: الأكبر بين S ناقص K وصفر للكول، والأكبر بين K ناقص S وصفر للبوت.
عندما يكون التقلب صفراً تماماً يكون الأصل حتمياً والسعر هو العائد المؤكد المخصوم، الأكبر بين موجب أو سالب S ناقص K في e مرفوعاً إلى ناقص rT. يُحسب الحدّان بشكل مغلق بدلاً من إرسال d1 إلى موجب أو سالب ما لا نهاية. يجب أن يكون السعر الفوري والتنفيذ موجبين بدقة لأن النموذج يأخذ لوغاريتم نسبتهما.
أين تجني حاسبة بلاك-شولز نفعها
يستخدم الطلاب ومرشحو المقابلات حاسبة بلاك-شولز لمضاهاة كول أو بوت أوروبية محلولة يدوياً بأوراكل حتمي، بدل جدول يعامل في صمت عشرين على أنها عشرون في المئة أو كعدد عشري ألفي في المئة. تحتاج أدوات المكتب ودفاتر البحث عقد parse صغيراً لعلامة أوروبية فانيلا حين لا يريدون سحب مكتبة تحليل كاملة لأجل خمسة أرقام. تستفيد مواقع المحتوى التي تتصدر بحث حاسبة بلاك شولز من ودجة حيّة يتطابق مسارها المجاني في المتصفح مع الأتمتة المدفوعة على الوحدة النقية نفسها.
التحقق الفاشل لا يستهلك رصيداً.
حالات الاستخدام
مراجعة الواجبات والمقابلات
قارنوا كولاً أو بوتاً أوروبياً محلولاً يدوياً من S وK وT وr وσ بعلاوة بلاك-شولز حتمية وبالحدود المعتادة d1 وd2.
تصحيح LMS وأوراق العمل
صحّحوا بنود تسعير الخيارات بأوراكل يرفض تقلباً أو أجلاً سالباً ولا يخترع سعراً عندما يكون النموذج غير معرّف.
علامات المكتب وتثبيتات CI
ثبّتوا علاوة أوروبية فانيلا في الدفاتر واختبارات الانحدار دون استيراد مكتبة تحليل مشتقات كاملة.
الأسئلة الشائعة
ماذا يحدث إذا كان التقلب أو الأجل حتى الاستحقاق سالباً؟
التقلب السالب والأجل السالب غير معرّفين في بلاك-شولز؛ وتلك الطلبات لا تُحاسب. الصفر مسموح في كليهما.
هل المعدل الخالي من المخاطر والتقلب نسب مئوية أم أعداد عشرية؟
أعداد عشرية. أدخلوا 0.05 لمعدل 5 في المئة و0.2 لتقلب 20 في المئة. إدخال 5 أو 20 يُعامل على أنه 500 في المئة و2000 في المئة، لا كتسعيرات سوق.
ماذا تعيد الحاسبة إلى جانب سعر الخيار؟
عندما يكون T وσ موجبين معاً تبلّغ أيضاً d1 وd2 وN(d1) وN(d2).
هل تصلح معادلة بلاك شولز للخيارات الأمريكية أو للأسهم التي توزع أرباحًا؟
ليس بهذا النموذج. تسعّر بلاك شولز خيارًا أوروبيًا لا يُنفَّذ إلا عند الاستحقاق، على أصل لا يوزع أرباحًا. إذا كان هناك تنفيذ مبكر أو توزيعات أرباح فأنت بحاجة إلى طريقة تسعير أخرى.
ما سعر خيار ينتهي اليوم أو تقلبه صفر؟
إذا لم يبقَ وقت، فالسعر هو القيمة الذاتية: مقدار ربح الخيار عند تنفيذه الآن، أو صفر. وإذا كان التقلب صفرًا فالنتيجة مؤكدة، فيكون السعر هو تلك الدفعة المؤكدة مخصومة بمعدل الفائدة.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/fin/black-scholes \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"spot":100,"strike":100,"time_to_expiry":1,"rate":0.05,"volatility":0.2,"option_type":"call"}'const res = await fetch("https://api.kit.forhosting.com/fin/black-scholes", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"spot": 100,
"strike": 100,
"time_to_expiry": 1,
"rate": 0.05,
"volatility": 0.2,
"option_type": "call"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fin/black-scholes",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"spot": 100,
"strike": 100,
"time_to_expiry": 1,
"rate": 0.05,
"volatility": 0.2,
"option_type": "call"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fin/black-scholes", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"spot":100,"strike":100,"time_to_expiry":1,"rate":0.05,"volatility":0.2,"option_type":"call"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"spot":100,"strike":100,"time_to_expiry":1,"rate":0.05,"volatility":0.2,"option_type":"call"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fin/black-scholes", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"spot": 100,
"strike": 100,
"time_to_expiry": 1,
"rate": 0.05,
"volatility": 0.2,
"option_type": "call"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fin.black_scholes",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
تنفّذ هذه القدرة تلك الهوية كمهمة parse خالصة: تبني d1 وd2، وتقيّم دالة التوزيع التراكمي الطبيعي المعياري، وتسلّم التوقع المخصوم تحت القياس المحايد للمخاطر بوصفه option_price. يُرفض التقلب السالب أو الأجل السالب بـ invalid_input ولا يُحاسبان، لأن النموذج لا يعرّفهما. تشغّل الوحدة النقية نفسها ودجة المتصفح المجانية ومسار الـ API بسعر $0.002 لكل استدعاء ناجح، فلا يختلف ضبط قاعة الدرس عن مسار الإنتاج في التقريب.
عقد الإدخال وشكل الرد وسلوك الخطأ
الصفر مسموح في كليهما: الاستحقاق اليوم ذاتي، والمسار المسطح عائد حتمي مخصوم. يجوز أن يكون المعدل صفراً أو سالباً بما يوافق تسعيرات سوق النقد الحديثة. أرسلوا بجسم JSON عبر POST ستة حقول إلزامية. spot هو السعر الحالي للأصل S؛ والأسماء البديلة S وspot_price وprice تشير إلى الحقل نفسه. strike هو K؛ والبدائل K وstrike_price. time_to_expiry هو T بالسنوات، فالواحد اثنا عشر شهراً وصفر فاصلة اثنين خمسة خيار ربع سنوي؛ والبدائل T وtime وyears. rate هو المعدل الخالي من المخاطر المركّب باستمرار كعدد عشري؛ والبدائل r وrisk_free_rate وinterest_rate. volatility هو σ كعدد عشري؛ والبدائل sigma وvol. option_type هو التعداد المغلق call أو put؛ والبدائل type وoption وkind. قد يصل كل حقل رقمي كعدد JSON أو سلسلة رقمية. الحقول الناقصة والسلاسل الفارغة والقيم غير المنتهية تفشل بـ invalid_input مع تسمية الحقل. التقلب السالب أو time_to_expiry السالب يفشل برسالة أن الحقل يجب ألا يكون سالباً، وتلك الإخفاقات لا تُحاسب. عند نجاح التحقق يعيد الجسم المدخلات الست، ويبلّغ discount_factor أي e مرفوعاً إلى ناقص rT، وintrinsic، وoption_price مقرّباً إلى ثماني خانات. عندما يكون T وσ موجبين بدقة يبلّغ أيضاً d1 وd2 وn_d1 وn_d2 حتى تُظهر ورقة الحدود الوسطية المعتادة؛ وتُحذف تلك المفاتيح الأربعة ولا تُجعل null عندما تنطبق الحدود بالشكل المغلق. مثال: S وK بمئة، وT بسنة، وr بصفر فاصلة صفر خمسة، وσ بصفر فاصلة اثنين، وoption_type يساوي call، يعطي كولاً أوروبياً عند النقد من الكتاب قرب عشرة فاصلة خمسة وأربعين، والبوت الموافق يتبع من تكافؤ البوت-كول.
أين تجني حاسبة بلاك-شولز نفعها
ترسل منصات التدريس وإضافات LMS الحقول spot وstrike وtime_to_expiry وrate وvolatility وoption_type، ثم تثبّت option_price وسطر d1 حتى يضع المصحح درجة للعلاوة النهائية وللحدود الوسطية معاً. تُسقط فرق المنتجات JSON نفسه في تثبيتات CI يجب ألا تنزاح إن بدّل أحد لاحقاً معاملات دالة الخطأ. ولأن التنفيذ parse خالص من المستوى A، تكلف كل استدعاء ناجح السعر الأساس المنشور $0.002 بلا رموز نموذج ولا شبكة صادرة. أبقوا rate وvolatility أعداداً عشرية، وtime_to_expiry وvolatility غير سالبين، وثبّتوا option_price المقرّب في الاختبارات، فتحصلون على علاوة أوروبية قابلة للتكرار للواجبات وضبط المكتب وعاملات الحافة دون إقامة محرّك تسعير خاص بكم.
أسئلة تقنية
كيف يُسعَّر خيار كول أو بوت أوروبي ببلاك-شولز؟
أرسلوا spot وstrike موجبين، وtime_to_expiry غير سالب بالسنوات، وrate وvolatility كأعداد عشرية، وoption_type يساوي call أو put. تعيد الواجهة option_price = S·N(d1) − K·e^(−rT)·N(d2) للكول، أو صيغة البوت مع N(−d1) وN(−d2).
كم تبلغ تكلفة حاسبة بلاك-شولز؟
أداة المتصفح مجانية. تستخدم طلبات API رصيد KIT المدفوع مسبقاً بسعر $0.002 لكل استدعاء ناجح؛ والإدخال غير الصالح لا يُحاسب.