استراتژی معاملات دوتایی: ارائه یک مدل در اکسل

“معاملات دوتایی (pair trading)”، یک استراتژی معاملاتی است که یک موقعیت معاملاتی خرید روی یک سهم/دارایی را با یک موقعیت معاملاتی جبرانی در سهم/دارایی دیگری که از نظر آماری به هم مرتبط هستند مچ می کند. معاملات دوتایی یک استراتژی “بازگشت به میانگین” است که در آن ما پیش بینی می کنیم که قیمت ها به روند تاریخی خودشان باز می گردند.

چه کسانی از این مدل اکسل می توانند بهره ببرند؟

افرادی که به معاملات الگوریتمی و عددی علاقه مندند و کسانی که می خواهند درباره آربیتراژ آماری بیاموزند.

این مدل چگونه به شما کمک می کند؟

این مدل اکسل به شما کمک می کند تا:

  • کاربرد بازگشت به میانگین را بیاموزید.
  • معاملات دوتایی را درک کنید.
  • پارامترهای معاملاتی را بهینه سازید.
  • بازده های معنادار آربیتراژی را درک کنید.

چرا باید فایل اکسل مدل معاملاتی را دانلود کنید؟

از آنجایی که منطق معاملاتی در سلولهای برگه اکسل کدنویسی شده است، با دانلود و تحلیل فایل ها به اختیار خودتان، بهتر می توانید مدل را بفهمید. نه فقط این، بلکه می توانید با اعداد بازی کنید تا نتایج بهتری به دست آورید. ممکن است پارامترهای مناسبی بیایید که سودهای بالاتری نسبت به پارامترهای مشخص شده در این مقاله فراهم آوردند.

معاملات دوتایی

توضیح مدل

در این مثال، ما زوج MSCI و Nifty را که هر دو شاخص های بازار سهام هستند در نظر می گیریم. ما استراتژی بازگشت به میانگین را روی این زوج پیاده سازی می کنیم. بازگشت به میانگین، یک مشخصه سری زمانی های مانا است. از آنجایی که ما مدعی هستیم که این زوجی که انتخاب کرده ایم، دارای ویژگی بازگشت به میانگین است، در ابتدا باید تست کنیم که آیا مانا هست یا خیر.

نمودار، پراکندگی نسبت لگاریتمی Nifty به MSCI را نشان می دهد. از ابتدا، این مشخصه بازگشت به میانگین، با مقدار میانگین برابر با ۲٫۰۸۸ ظاهر می شود اما ما از آزمون دیکی فولر برای تست مانایی      استفاده می کنیم. نتایج جدول خروجی تحت عنوان Cointegration، نشان می دهد که سری های قیمتی  مانا هستند و در نتیجه دارای مشخصه بازگشت به میانگین می باشند. آماره آزمون دیکی فولر و P-value که به طور معناداری کم (<0.05) است، فرض ما را تایید می کنند.

با تشخیص این که بازگشت به میانگین، برای زوج انتخابی درست بوده، ما با مشخص کردن فروض و پارامترهای ورودی، کار را ادامه می دهیم.

فروض

  1. برای ساده سازی، ما تفاوت مظنه خرید و فروش را نادیده می گیریم.
  2. قیمت ها در بازه های ۵ دقیقه ای موجود هستند و تنها در قیمت پایانی ۵ دقیقه ای معامله می کنیم.
  3. از آنجایی که این داده ها گسسته هستند، جبران کردن موقعیت معاملاتی در انتهای کندل یعنی در قیمت در پایان ۵ دقیقه، اتفاق می افتد.
  4. تنها در جلسه رسمی معاملاتی (T) معامله انجام می شود.
  5. هزینه معاملاتی برای Nifty برابر با ۰٫۳۷۵$ و برای MSCI برابر با ۱٫۱۰$ می باشد.
  6. ودیعه هر معامله ۹۹۰$ (تقریب زده می شود به ۱۰۰۰$) است.

پارامترهای ورودی

لطفا توجه داشته باشید که همه مقادیری که برای پارامترهای ورودی در زیر آورده شده اند، قابل تنظیم هستند.

  • میانگین ۱۰ کندل (هر کندل مساوی قیمت ۵ دقیقه ای است) در نظر گرفته شود.
  • نمره “z”، برابر با ۲+ برای خرید و ۲- برای فروش است.
  • حد ضرر مساوی با ۱۰۰$ و حد سود مساوی با ۲۰۰$ مشخص شده.
  • اندازه سفارش برای معاملات MSCI برابر با ۵۰ (۱ لات) و برای Nifty برابر با ۶ (۳ لات) می باشد.

داده های بازار و پارامترهای معاملاتی از سطر ۱۲ام به بعد در برگه اکسل شامل شده است. در نتیجه وقتی به ستون D ارجاع می شود، مشخص است که ارجاع از D12 شروع می شود.

توضیح ستون ها در مدل اکسل

ستون C قیمت MSCI را نشان می دهد.

ستون D قیمت Nifty را نشان می دهد.

ستون E نسبت لگاریتمی Nifty به MSCI است.

ستون F میانگین ۱۰ کندل را محاسبه می کند. از آنجایی که ۱۰ مقدار برای محاسبه میانگین مورد نیاز است، هیچ مقداری از F12 تا F22 وجود ندارد.
فرمول =IF(A23>$C$3, AVERAGE(INDEX($E$13:$E$1358, A23-$C$3):E22), “”) بدین معنیست که تنها اگر نمونه داده های بیشتر از ۱۰ (یعنی مقدار مشخص شده در سلول C3) وجود داشته باشد، باید میانگین محاسبه شود، در غیر این صورت سلول باید خالی بماند. سلول F22 را در نظر بگیرید. سلول متناظرش یعنی A22 مقدار ۱۰ را دارد. به دلیل آنکه A22>$C$3 نادرست است، ورودی این سلول جای خالی می باشد. سلول بعدی یعنی F23 دارای مقدار است زیرا A23>$C$3.

بخش بعدی فرمول، AVERAGE(INDEX($E$13:$E$1358, A23-$C$3):E22)، مقدار میانگین ۱۰ کندل آخر داده های ستون E (همانطور که در سلول C3 اشاره شد.) را محاسبه می کند.

منطق مشابهی برای ستون G که در آن انحراف معیار محاسبه شده است وجود دارد.

نمره “z” در ستون H محاسبه شده است. فرمول محاسبه نمره “z” برابرست با : z= (x-μ)/(σ). در اینجا x یک نمونه است (ستون E)، μ مقدار میانگین است (ستون F) و σ انحراف معیار است (ستون G).

ستون I سیگنال معاملاتی را نشان می دهد. همانطور که در پارامترهای ورودی اشاره شد، اگر نمره “z” کمتر از ۲- برود، ما خرید انجام می دهیم و اگر بالای ۲+ برود، می فروشیم. وقتی می گوییم خرید، ما یک موقعیت معاملاتی خرید در ۳ لات  Nifty و یک موقعیت معاملاتی فروش در یک لات MSCI داریم. به طور مشابه، وقتی می گوییم فروش، ما یک موقعیت معاملاتی خرید ۱ لات MSCI و یک موقعیت معاملاتی فروش ۳ لات Nifty داریم که این گونه موقعیت معاملاتی را جبران می کنیم. ما همیشه یک موقعیت معاملاتی باز داریم.

برای درک این موضوع، دو سیگنال معاملاتی “خرید” و “فروش” را در نظر بگیرید. برای سیگنال خرید، همانطور که قبلا توضیح داده شد، ما ۳ لات قرارداد آتی Nifty می خریم و ۱ لات قرارداد آتی  MSCI می فروشیم. زمانی که موقعیت معاملاتی باز شد، ما این موقعیت را با استفاده از ستون Status یعنی ستون M دنبال می کنیم. در هر سطر جدید در حالی که موقعیت همچنان باز است، چک می کنیم که آیا به حد ضرر (همانطور که در سلول C6 اشاره شده) یا حد سود (همانطور که در سلول C7 اشاره شده) رسیده یا خیر. حد ضرر، مقدار ۱۰۰$- را دارد یعنی از دست دادن ۱۰۰ دلار و حد سود مقدار ۲۰۰$ را دارد و به ترتیب در سلول های C6 و C7 قرار دارند. تا وقتی که موقعیت معاملاتی به هیچ یک از حد ضرر یا حد سود نرسیده، ما با همان معامله ادامه می دهیم و همه سیگنال هایی که در ستون I ظاهر می شوند را نادیده می گیریم. زمانی که معامله به حد ضرر یا حد سود رسید، دوباره شروع به بررسی کردن سیگنال های ستون I می کنیم و یک موقعیت معاملاتی جدید را به محضی که سیگنال خرید یا فروش در ستون I داشته باشیم باز می کنیم.

ستون M سیگنال های معاملاتی مبتنی بر پارامترهای مشخص شده ورودی را نشان می دهد. ستون I همچنان سیگنال های معاملاتی دارد و ستون M درباره وضعیت موقعیت معاملاتی مان به ما می گوید، یعنی آیا ما در موقعیت خرید یا فروش هستیم یا سود کسب کرده ایم و یا در حد ضرر خارج شده ایم. اگر از معامله خارج نشده باشیم، با تکرار مقدار ستون وضعیت (status) از کندل قبلی، ما موقعیت را به کندل بعدی می بریم. اگر در حرکت قیمت اتفاق بیفتد به طوری که حد سود یا حد ضرر مشخص شده را نقض کند، آنگاه ما موقعیت مان را جبران می کنیم؛ بدین صورت که به ترتیب با “TP” و”SL” علامت گذاری می کنیم.

ستون L به روزسازی قیمت ها (mark to market) را نشان می دهد. موقعیت معاملاتی پورتفوی را در انتهای دوره زمانی مشخص می کند. همانطور که در پارامترهای ورودی مشخص شده، ما ۱ لات MSCI و ۳ لات Nifty معامله می کنیم. در نتیجه وقتی ما معامله می کنیم، موقعیت معاملاتی مان برابر است با تفاوت قیمت متناسب (بستگی دارد که آیا ما خرید انجام داده ایم یا فروش) ضربدر تعداد لات ها.

ستون N وضعیت سود/زیان معامله را نشان می دهد. P/L تنها زمانی محاسبه می شود که ما موقعیت معاملاتی مان را جبران کرده باشیم.

ستون O سود تجمعی را محاسبه می کند.

نتایج

جدول نتایج دارای چند معیار عملکردی است. زیان ناشی از همه معاملات زیان ده برابر با ۳۶۹۹$ است و سود ناشی از معاملاتی که به حد سود رسیده اند برابر با ۹۲۸۰$ می باشد. در نتیجه کل P/L برابرست با: ۹۲۸۰$-۳۶۹۹$=۵۵۸۱$.

معاملات زیان ده، معاملاتی هستند که منجر به از دست دادن پول در موقعیت های معاملاتی می شوند. معاملات سودآور، معاملات موفقی هستند که با دستیابی به هدف، پایان می یابند. میانگین سود برابرست با نسبت کل سودها به کل تعداد معاملات.

خالص میانگین سود، بعد از کسر هزینه های معاملاتی که مقداری برابر با ۹۱٫۷۷$ را دارند، محاسبه می شود.

اکنون نوبت شماست!

  • ابتدا مدل را دانلود کنید.
  • پارامترها را تغییر دهید و نتایج بک تست را مطالعه کنید.
  • مدل را با قیمت های تاریخی دیگری اجرا کنید.
  • فرمول و استراتژی را تغییر دهید و پارامترها و اندیکاتورهای جدیدی اضافه کنید. با منطق بازی کنید! کشف کنید و بررسی نمایید!

2 Responses to “استراتژی معاملات دوتایی: ارائه یک مدل در اکسل”

  1. احمد مرتضوی گفت:

    با سلام و وقت بخیر
    لینک دانلود فایل اکسل را نتوانستم پیدا کنم. ممنون میشم اگه جهت دانلود راهنمایی بفرمایید یا فایل را به آدرس ایمیل ارسال نمایید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *