یک روش سریع و آسان برای ساخت و آزمایش استراتژی های معاملات سهام

ساخت وبلاگ

پشتی ، داده ها ، معیارها ، اجرای زنده و مشکلات

توجه داشته باشید از ویرایشگران Data Science: در حالی که ما به نویسندگان مستقل اجازه می دهیم مقالات را مطابق با قوانین و دستورالعمل های خود منتشر کنند ، ما سهم هر نویسنده را تأیید نمی کنیم. شما نباید بدون اینکه به دنبال مشاوره حرفه ای باشید ، به آثار نویسنده اعتماد کنید. برای جزئیات بیشتر به اصطلاحات خواننده ما مراجعه کنید.

توسعه استراتژی تجارت الگوریتمی

Backtesting مشخصه تجارت کمی است. Backtesting داده های بازار تاریخی یا مصنوعی را به خود اختصاص داده و سودآوری استراتژی های تجارت الگوریتمی را آزمایش می کند. این موضوع مستلزم تخصص در آمار ، علوم کامپیوتر ، ریاضیات ، امور مالی و اقتصاد است. این دقیقاً به همین دلیل است که در بنگاه های تجاری کمی کمی نقش های خاصی برای افراد با دانش عظیم (معمولاً در سطح دکترا) از افراد مربوطه وجود دارد. ضرورت تخصص را نمی توان از بین برد زیرا استراتژی های تجاری برنده (یا به ظاهر برنده) را از بازندگان جدا می کند. هدف من برای این مقاله این است که آنچه را که من یک فرآیند پشتی ابتدایی را در چند بخش مختلف می دانم تقسیم کنم ...

  • I. موتور پشتی
  • ii. مدیریت داده های تاریخی و مصنوعی
  • iiiمعیارهای پشتی
  • IVاجرای زنده
  • V. مشکلات در توسعه استراتژی

موتور پشتی

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

من تصمیم گرفتم یک تابع بسازم تا بتوانم جنبه های مختلف پشتی را در پرواز پارامتر کنم (و در نهایت یک خط لوله بسازم). کلاس بعدی Backtrader که باید در مورد آن بحث کنیم ، کلاس استراتژی است. اگر به عملکردی که من برای ایجاد نمونه Cerebro ساخته ام نگاه کنید ، خواهید دید که این یک استراتژی به عنوان یک ورودی طول می کشد - این انتظار یک کلاس استراتژی Backstrader یا زیر کلاس است. زیر کلاسهای کلاس استراتژی دقیقاً همان چیزی است که ما برای ساختن استراتژی های خودمان استفاده خواهیم کرد. اگر به پلی مورفیسم و تازه کننده وراثت نیاز دارید یا نمی دانید این به چه معنی است که مفاهیم من در ماده 3 پایتون را در کمتر از 3 دقیقه ببینید. بیایید یک استراتژی برای Backtest خود بسازیم ...

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

  • قیمت روز باز است
  • قیمت روز نزدیک
  • قیمت روز پایین
  • قیمت روز بالا
  • حجم روز

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

سوال بزرگ در ذهن شما در حال حاضر باید این باشد که داده ها از کجا آمده اند؟

پاسخ به این سؤال در ساختار کتابخانه Backstrader است. قبل از اجرای Cerebro Housing Function ، تمام استراتژی هایی را که می خواهیم از آن استفاده کنیم ، اضافه خواهیم کرد و یک فید داده - بقیه از آنها مراقبت می شود زیرا SuperClass استراتژی سریال Data را در اختیار دارد.

این زندگی ما را بسیار آسان می کند.

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

هر روز یک نمره Z برای آن محاسبه می شود (تعداد انحرافات استاندارد از میانگین) بر اساس بزرگی آن که ما سهام خود را خریداری یا می فروشیم. لطفاً توجه داشته باشید ، بله ، من از نزدیک روز برای تصمیم گیری استفاده می کنم ، اما من همچنین از نزدیک روز به عنوان قیمت ورود به تجارت خود استفاده می کنم - استفاده از روزهای بعدی عاقلانه تر خواهد بود.

مرحله بعدی اضافه کردن استراتژی به عملکرد ما به عنوان نمونه Cerebro…

در کد فوق ، استراتژی ارائه شده به عملکرد را به نمونه Cerebro اضافه می کنم. این فراتر از محدوده مقاله است اما احساس کردم که آن را وارد می کنم. اگر استراتژی مورد نیاز ما به داده های اضافی (برخی از مدل های AI) نیاز داشته باشیم ، می توانیم آن را در پارامتر ARGS ارائه دهیم و آن را به زیر کلاس استراتژی اضافه کنیم.

در مرحله بعد ، ما باید منبع داده های تاریخی یا مصنوعی را پیدا کنیم.

مدیریت داده های تاریخی و مصنوعی

من از داده های بازار تاریخی و مصنوعی به طور مترادف استفاده می کنم زیرا برخی از محققان داده های مصنوعی را غیرقابل تشخیص (و بنابراین به عنوان مولد آن فراوان تر است) از سایر داده های بازار پیدا کرده اند. برای اهداف این مثال ما از فید داده های Yahoofinance که توسط Backtrader تهیه شده است استفاده خواهیم کرد و مجدداً اجرای فوق العاده آسان را انجام خواهیم داد ...

تقریباً مسخره است که افزودن یک فید داده به پشتی ما چقدر آسان است. شیء Data از کلاس Backtraders Yahoofinancedata برای بازیابی داده ها بر اساس نماد ، FromDate و Todate استفاده می کند. پس از آن ، ما به سادگی آن داده ها را به نمونه Cerebro اضافه می کنیم. زیبایی واقعی در معماری Backtrader متوجه می شود که داده ها به طور خودکار در داخل قرار می گیرند و از طریق هر استراتژی اضافه شده به نمونه Cerebro تکرار می شوند.

معیارهای پشتی

معیارهای متنوعی وجود دارد که برای ارزیابی عملکرد یک استراتژی تجارت استفاده می شود ، ما در این بخش چند مورد را پوشش خواهیم داد. باز هم ، Backtrader افزودن آنالایزر یا معیارهای عملکرد را بسیار آسان می کند. اول ، بیایید ارزش اولیه نقدی را برای نمونه مغزی خود تعیین کنیم ...

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

نسبت شارپ

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

چندین سقوط و فرضیات. این مبتنی بر عملکرد تاریخی است ، فرض می کند توزیع های عادی ، و اغلب می تواند برای مقایسه نادرست اوراق بهادار مورد استفاده قرار گیرد. با این حال ، این هنوز اصلی برای هر استراتژی یا نمونه کارها است.

شماره کیفیت سیستم

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

بیایید اکنون این معیارها را به Cerebro اضافه کنیم و پشتی را اجرا کنیم ...

اکنون ، تنها کاری که باید انجام دهیم این است که کد بالا را اجرا کنیم و ما عملکرد استراتژی خود را بر اساس معیارهایی که مشخص کردیم دریافت می کنیم ...

در اینجا خروجی است ...

اجرای زنده

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

فارکس اسلامی...
ما را در سایت فارکس اسلامی دنبال می کنید

برچسب : نویسنده : هدایت هاشمی بازدید : 63 تاريخ : دوشنبه 7 فروردين 1402 ساعت: 17:20