Investor's wiki

محاكاة مونت كارلو

محاكاة مونت كارلو

ما هي محاكاة مونت كارلو؟

تُستخدم محاكاة مونت كارلو لنمذجة احتمالية النتائج المختلفة في عملية لا يمكن التنبؤ بها بسهولة بسبب تدخل المتغيرات العشوائية. إنها تقنية تستخدم لفهم تأثير المخاطر وعدم اليقين في نماذج التنبؤ والتنبؤ.

يمكن استخدام محاكاة مونت كارلو لمعالجة مجموعة من المشكلات في كل مجال تقريبًا مثل التمويل والهندسة وسلسلة التوريد والعلوم. يشار إليها أيضًا باسم محاكاة الاحتمالات المتعددة.

فهم محاكاة مونت كارلو

عند مواجهة حالة عدم يقين كبيرة في عملية إجراء توقع أو تقدير ، بدلاً من مجرد استبدال المتغير غير المؤكد برقم متوسط واحد ، قد تثبت محاكاة مونت كارلو أنها حل أفضل باستخدام قيم متعددة.

نظرًا لأن الأعمال والتمويل تعاني من متغيرات عشوائية ، فإن محاكاة مونت كارلو لديها مجموعة واسعة من التطبيقات المحتملة في هذه المجالات. يتم استخدامها لتقدير احتمالية تجاوز التكلفة في المشاريع الكبيرة واحتمال تحرك سعر الأصل بطريقة معينة.

تستخدمها شركات الاتصالات لتقييم أداء الشبكة في سيناريوهات مختلفة ، مما يساعدهم على تحسين الشبكة. يستخدمها المحللون لتقييم مخاطر تعثر الكيان ، ولتحليل المشتقات مثل الخيارات.

شركات التأمين وحفار آبار النفط يستخدمونها أيضًا. تمتلك محاكاة مونت كارلو عددًا لا يحصى من التطبيقات خارج نطاق الأعمال والتمويل ، مثل الأرصاد الجوية وعلم الفلك وفيزياء الجسيمات.

تاريخ محاكاة مونت كارلو

تمت تسمية عمليات محاكاة مونت كارلو على اسم وجهة المقامرة الشهيرة في موناكو ، نظرًا لأن الصدفة والنتائج العشوائية أساسية لتقنية النمذجة ، تمامًا مثل ألعاب مثل الروليت والنرد وآلات القمار.

تم تطوير هذه التقنية لأول مرة من قبل ستانيسلاف أولام ، عالم رياضيات عمل في مشروع مانهاتن. بعد الحرب ، وبينما كان يتعافى من جراحة الدماغ ، أمتع Ulam نفسه من خلال لعب عدد لا يحصى من ألعاب السوليتير. أصبح مهتمًا بالتخطيط لنتائج كل من هذه الألعاب من أجل مراقبة توزيعها وتحديد احتمالية الفوز. بعد أن شارك فكرته مع جون فون نيومان ، تعاون الاثنان لتطوير محاكاة مونت كارلو.

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

أساس محاكاة مونت كارلو هو أنه لا يمكن تحديد احتمالية النتائج المتغيرة بسبب التداخل العشوائي المتغير. لذلك ، تركز محاكاة مونت كارلو على تكرار العينات العشوائية باستمرار لتحقيق نتائج معينة.

تأخذ محاكاة مونت كارلو المتغير الذي يحتوي على عدم يقين وتخصص له قيمة عشوائية. ثم يتم تشغيل النموذج ويتم توفير النتيجة. تتكرر هذه العملية مرارًا وتكرارًا أثناء تعيين المتغير المعني بالعديد من القيم المختلفة. بمجرد اكتمال المحاكاة ، يتم حساب متوسط النتائج معًا لتقديم تقدير.

حساب محاكاة مونت كارلو في Excel

تتمثل إحدى طرق استخدام محاكاة مونت كارلو في نمذجة التحركات المحتملة لأسعار الأصول باستخدام برنامج Excel أو برنامج مشابه. هناك مكونان لحركة سعر الأصل: الانجراف ، وهو حركة اتجاهية ثابتة ، ومدخل عشوائي يمثل تقلبات السوق.

، يمكنك تحديد الانحراف والانحراف المعياري والتباين ومتوسط حركة السعر للأوراق المالية. هذه هي اللبنات الأساسية لمحاكاة مونت كارلو.

لتوقع مسار سعر محتمل واحد ، استخدم بيانات السعر التاريخية للأصل لإنشاء سلسلة من العوائد اليومية الدورية باستخدام اللوغاريتم الطبيعي (لاحظ أن هذه المعادلة تختلف عن صيغة النسبة المئوية المعتادة للتغيير):

<mtable rowspacing = "0.24999999999999992em "columnalign =" right left "columnspacing =" 0em "> <mstyle scriptlevel =" 0 "displaystyle =" true "> العائد اليومي الدوري </ mtext> = l < mi> n ( سعر اليوم </ mtext> سعر اليوم السابق </ mtext> < mo fence = "true">) <ترميز التعليقات التوضيحية = "application / x-tex"> \ start & amp؛ \ text = ln \ left (\ frac {\ text {Day & # x27؛ s Price}} {\ text {Previous Day & # x27؛ s Price}} \ right) \ \ end

بعد ذلك ، استخدم وظائف AVERAGE و STDEV.P و VAR.P على السلسلة الناتجة بأكملها للحصول على متوسط العائد اليومي والانحراف المعياري ومدخلات التباين ، على التوالي. الانجراف يساوي:

<mtable rowspacing = "0.24999999999999992em "columnalign =" right left "columnspacing =" 0em "> <mstyle scriptlevel =" 0 "displaystyle =" true "> Drift = متوسط ​​العائد اليومي </ mtext> < mo> - التباين </ mtext> 2 < mtd> < mrow> حيث: متوسط العودة اليومية = منتج من Excel </ mrow> دالة AVERAGE من سلسلة الإرجاع اليومية الدورية </ mtext> التباين </ mtext> = منتج من Excel <mstyle scriptlevel =" 0 "displaystyle =" true "> VAR.P دالة من سلسلة المرتجعات اليومية الدورية start & amp؛ \ text = \ text - \ frac {\ text } {2} \ & amp؛ \ textbf \ & amp؛ \ text = \ text { تم إنتاجه من Excel & # x27 ؛ s} \ & amp ؛ \ text {AVERAGE وظيفة من الدوري اليومي r سلسلة eturns} \ & amp؛ \ text {التباين} = \ text {مُنتَج من Excel & # x27؛ s} \ & amp؛ \ text {دالة VAR.P من سلسلة المرتجعات اليومية الدورية} \ \ end </ تعليق توضيحي> < span class = "vlist-r"> </ span> < span class = "col-align-l"> Drift = متوسط ​​العائد اليومي </ span> <span class =" mspace "style =" margin-right: 0.2222222222222222em؛ "> - <span class =" mspace "style =" margin-right: 0.22222222222222em؛ "> 2 <span class =" frac-line "style =" border-bottom-width: 0.04em؛ "> <span class =" pstrut "style =" height: 3em؛ "> التباين < / span> < / span> حيث: </ span> <span class =" pstrut "style =" height: 3.3603300000000003em؛ "> متوسط ​​العائد اليومي </ span> = تم إنتاجه من برنامج Excel دالة AVERAGE من سلسلة المرتجعات اليومية الدورية </ span> التباين </ span> = < span class = "mspace" style = "margin-right: 0.2777777777777778em؛"> مُنتج من برنامج Excel < span class = "mord"> دالة VAR.P من سلسلة المرتجعات اليومية الدورية </ span> < / span> </ sp و>

بدلاً من ذلك ، يمكن ضبط الانجراف على 0 ؛ يعكس هذا الاختيار اتجاهًا نظريًا معينًا ، لكن الاختلاف لن يكون كبيرًا ، على الأقل في الأطر الزمنية الأقصر.

بعد ذلك ، احصل على إدخال عشوائي:

<mtable rowspacing = "0.24999999999999992em "columnalign =" right left "columnspacing =" 0em "> <mstyle scriptlevel =" 0 "displaystyle =" true "> قيمة عشوائية </ mtext> = σ × NORMSINV (RAND ()) حيث: <mstyle scriptlevel =" 0 "displaystyle =" true "> </ mrow > σ = </ mo > الانحراف المعياري الناتج من برنامج Excel < mrow> STDEV.P دالة من سلسلة المرتجعات اليومية الدورية </ mtext> NORMSINV و RAND = وظائف Excel < / mtext> start & amp؛ text = \ سيجما \ مرات \ نص {NORMSINV (RAND ())} \ & amp؛ \ textbf \ & amp؛ \ sigma = \ text {الانحراف المعياري ، الناتج من Excel & # x27 ؛ s} \ & amp؛ \ text {STDEV.P دالة من سلسلة المرتجعات اليومية الدورية} \ & amp؛ \ text = \ text {وظائف Excel} \ \ end </ span> <span class =" vlist "style =" height: 4em؛ "> <span class =" pstrut "style =" height: 3em؛ "> قيمة عشوائية </ span> </ span > = <span class =" mord mathnormal "style =" margin-right: 0.03588em؛ "> σ <span class =" mspace "style =" margin-right: 0.2222222222222222 em؛ "> × <span class =" mspace "style =" margin-right: 0.22222222222222em؛ "> NORMSINV (RAND ()) حيث: </ span> σ <span class =" mspace "style =" margin-right: 0.2777777777777778em؛ "> = < span class = "mspace" style = "margin-right: 0.2777777777777778em؛"> الانحراف المعياري الناتج عن برنامج Excel < / span> دالة STDEV.P من سلسلة المرتجعات اليومية الدورية </ span> </ span> NORMSINV و RAND = وظائف Excel < / span>

معادلة سعر اليوم التالي هي:

<mtable rowspacing = "0.24999999999999992em "columnalign =" right left "columnspacing =" 0em "> <mstyle scriptlevel =" 0 "displaystyle =" true "> سعر اليوم التالي </ mtext> = سعر اليوم </ mtext> × e ( الانجراف </ mtext> + </ mo > قيمة عشوائية </ mtext> ) </ mtable > \ begin & amp؛ \ text {Next Day & # x27؛ s Price} = \ text {Today & # x27؛ s Price} \ times e ^ {(\ text + \ text )} \ \ end