استراتژی معاملاتی خود را با تنها 3 خط پایتون پشت سر بگذارید

ساخت وبلاگ

معرفی FastQuant ، یک چارچوب ساده پشتی برای سرمایه گذاران محور داده

از زمانی که من شروع به سرمایه گذاری در کالج کردم ، در معرض روش های مختلف تحلیل سهام قرار گرفتم - تجزیه و تحلیل فنی و تجزیه و تحلیل اساسی. من حتی در مورد این تکنیک ها کتاب و مقالات بی شماری خوانده ام.

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

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

بسیاری از استراتژی های ممکن برای استفاده وجود دارد ، اما هیچ راهی منظم برای انتخاب یکی وجود ندارد. در عمل ، بیشتر معاملات هنوز به عنوان تصمیمات "احساس روده" پایان می یابد که توسط داده ها هدایت نمی شوند.

بنابراین چگونه می توانیم این استراتژی ها را ارزیابی کنیم؟ما می توانیم این کار را با مقایسه بازده مورد انتظار سرمایه گذاری (ROI) انجام دهیم که می توانیم از هر رویکرد بدست آوریم. بهترین راه برای انجام این کار ، با روشی به نام backtesting است - جایی که یک استراتژی با شبیه سازی چگونگی انجام آن در صورت استفاده از آن در گذشته ارزیابی می شود.

در حال حاضر ، در حال حاضر تعداد کمی از چارچوب های پشتی در آنجا وجود دارد ، اما بیشتر آنها به دانش پیشرفته در مورد برنامه نویسی نیاز دارند. این معمولی برای اجرای ساده سلام جهان است که به همان اندازه نیاز داشته باشد~30 خط کد.

برای پر کردن این شکاف ، تصمیم گرفتم با هدف ایجاد پشتوانه به جریان اصلی با استفاده از آن به همان اندازه ساده تر ، FastQuant ایجاد کنم. با FastQuant ، ما می توانیم استراتژی های معاملاتی را با تعداد کمی از 3 خط کد پشت سر بگذاریم!

FastQuant در اصل یک بسته بندی برای چارچوب محبوب Backtrader است که به ما امکان می دهد روند پس زمینه را از نیاز به حداقل 30 خط کد در Backtrader ، به اندازه 3 خط کد در FastQuant به طور قابل توجهی ساده کنیم.

برای بقیه این مقاله ، من از طریق داده های تاریخی Jollibee Food Corp. (JFC) ، شما را از طریق نحوه استفاده از یک استراتژی متوسط متقاطع متحرک ساده (SMAC) پیاده می کنم.

همچنین ، اگر شما علاقه مند به انجام این نوع تجزیه و تحلیل بدون حتی نیاز به کدگذاری هستید ، Hawksight را امتحان کنید ، این ابزار جدیدی که اخیراً ساخته ام تا بتواند تجزیه و تحلیل سرمایه گذاری پیشرفته را در دسترس تر کند - حتی برای غیر رمزگذار!

بیا شروع کنیم!

اولین استراتژی ما را پشت سر بگذارید

FastQuant را نصب کنید

این به سادگی استفاده از نصب PIP است!

داده های سهام را دریافت کنید

عملکرد GET_STOCK_DATA را از FastQuant وارد کنید و از آن برای کشیدن داده های سهام Jollibee Food Corp. (JFC) از 1 ژانویه 2018 تا 1 ژانویه 2019 استفاده کنید. توجه داشته باشید که ما ستون هایی داریم که مربوط به تاریخ (DT) و قیمت بسته شدن است (قیمت)بستن).

استراتژی معاملاتی خود را پشت سر بگذارید

Backtest یک استراتژی متقاطع متوسط حرکت ساده (SMAC) از طریق داده های تاریخی سهام Jollibee Food Corp. (JFC) با استفاده از عملکرد Backtest Fastquant.

در یک استراتژی SMAC ، دوره سریع (fast_period) به دوره ای که برای میانگین حرکت سریع استفاده می شود ، اشاره دارد ، در حالی که دوره آهسته (آهسته_پریود) به دوره مورد استفاده برای میانگین حرکت آهسته اشاره دارد. هنگامی که میانگین حرکت سریع از میانگین حرکت آهسته از پایین به پایین عبور می کند ، این یک سیگنال "خرید" محسوب می شود ، در حالی که اگر از بالا از بالا عبور کند ، این یک سیگنال "فروش" محسوب می شود. برای کسب اطلاعات بیشتر در مورد نحوه عملکرد این کار ، لطفاً توضیحات را در یکی از مقالات قبلی من بررسی کنید.

برای شروع ، اجازه دهید به ترتیب Fast_Period و Slow_period را به ترتیب 15 و 40 آغاز کنیم.

باید مقدار نمونه کارها نهایی را در زیر در پایین سیاههها مشاهده کنید. این ارزش را می توان تفسیر کرد که چقدر پولی شما در پایان دوره پشتی ارزش داشت (در این مورد 1 ژانویه 2019). اگر تفاوت بین "ارزش نمونه کارها نهایی" و "ارزش شروع نمونه کارها" خود را بدست آورید ، این درآمد مورد انتظار شما برای همان دوره بر اساس پشتی شما خواهد بود (در این مورد PHP 411. 83).

همه اینها را با هم جمع کنید - پشتی در 3 خط پایتون

کد زیر نشان می دهد که چگونه می توانیم تمام مراحل فوق را فقط در 3 خط پایتون انجام دهیم:

استراتژی SMAC ما را بهبود بخشید

دوره سریع و دوره آهسته را افزایش دهید

این نشان می دهد که چگونه تغییرات کوچک می تواند به سرعت یک استراتژی برنده را به یک بازنده تبدیل کند. مقدار نمونه کارها نهایی ما از PHP 100،412 به PHP 83،947 (کاهش 16،465 PHP) کاهش یافت ، پس از افزایش هر دو Fast_Period و Slow_period به 30 و 50.

در حالی که دوره سریع یکسان است ، دوره آهسته را کاهش دهید

در این حالت ، عملکرد استراتژی ما در واقع بهبود یافته است! ارزش نمونه کارها نهایی ما از PHP 100،412 به PHP 102،273 (افزایش 1،861 PHP) افزایش یافت ، پس از کاهش دوره آهسته به 35 و نگه داشتن دوره سریع در 15.

جدول زیر عملکرد 3 استراتژی SMAC ما را مقایسه می کند:

غلبه بر محدودیت های پشتی

حال ، آیا این بدان معنی است که ما باید پیش برویم و JFC را با استفاده از بهترین استراتژی SMAC انجام دهیم؟شاید هنوز نه

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

در زیر دو مورد از محدودیت های Backtesting و به دنبال آن حفاظت برای غلبه بر آنها وجود دارد:

بیش از حد

این به وضعیتی اشاره دارد که "پارامترهای بهینه" که شما به دست آورده اید بیش از حد متناسب با الگوهای یک دوره زمانی قبلی است. این بدان معنی است که سودآوری مورد انتظار استراتژی شما در آینده به سودآوری واقعی در آینده ترجمه نمی شود.

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

تعصب به جلو نگاه کنید

این تعصب ناشی از استفاده از اطلاعات در طول پشتی شما است که در دوره زمانی مورد آزمایش قرار نمی گرفت. به عنوان مثال ، شما می توانید اثربخشی یک استراتژی را در مورد JFC آزمایش کنید که فرض می کند که شما می دانید در مورد عملکرد مالی آن (به عنوان مثال درآمد خالص) یک ماه قبل از اینکه واقعاً در دسترس عموم باشد. این به شما اعتماد به نفس غیرقابل اعتماد به استراتژی شما می دهد که بعداً می تواند پول زیادی را برای شما از دست بدهد.

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

اینها تنها 2 مورد از محدودیت های زیادی است که با پشتی به وجود می آید. من قصد دارم مقاله ای بنویسم که در آینده با جزئیات بیشتری در مورد این موارد بحث می کند ، بنابراین با ما همراه باشید!

پس از پرداختن به محدودیت های فوق ، ما باید در استراتژی انتخابی خود اطمینان بیشتری داشته باشیم. با این حال ، به یاد داشته باشید که در حالی که ما می توانیم با استراتژی خود اطمینان بیشتری داشته باشیم ، عملکرد آن در دنیای واقعی غیب هرگز مطمئناً 100 ٪ نخواهد بود.

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

به پارامترهای پیش فرض Fastquant توجه داشته باشید

عملکرد "get_stock_data"

برای اینکه عملکرد "get_stock_data" را تا حد امکان برای استفاده ساده انجام دهیم ، ما آن را طراحی کرده ایم تا فقط قیمت بسته شدن سهام را برگردانیم (که برای اکثر استراتژی های معاملاتی استفاده می شود) ، که از قالب "C" (C = قیمت بسته شدن) پیروی می کند. اما ، اگر می خواهید نقاط داده قیمت گذاری بیشتری داشته باشید (به عنوان مثال OHLCV برای "باز" ، "بالا" ، "کم" ، "نزدیک" ، "حجم") ، فقط آرگومان "قالب" را در "get_stock_data" تنظیم کنید. قالب داده

مثال زیر برای قالب (OHLCV) برای سهام تسلا:

توجه: این ویژگی فرمت باید برای سهام بین المللی ذکر شده در یاهو بودجه پایدار باشد. برای نمادهای PSE ، توصیه می کنیم به قالب پیش فرض "C" چسبیده باشید.

عملکرد "backtest"

برای عملکرد "Backtest" ، ما همچنین مقادیر مربوط به نسبت پول نقد خود را که هنگام خرید (buy_prop) به عنوان 1 (100 ٪) استفاده می کنید ، فرض می کنیم ، نسبت سهام خود را که شما می فروشید (sell_prop) به عنوان 1 (100 ٪) ،و کمیسیون در هر معامله (کمیسیون) 0. 75 ٪ است. می توانید با تنظیم مقادیر در استدلال ها در پرانتز ، این پیش فرض ها را ویرایش کنید.

به عنوان مثال در زیر که من به عنوان Backtest tesla با فرض خرید_پروپ = 50 ٪ ، sell_prop = 50 ٪ و کمیسیون_پر_ transaction = 1 ٪.

استراتژی های بیشتری برای FastQuant کمک می کند

به یاد داشته باشید که FastQuant استراتژی های زیادی دارد که در کتابخانه استراتژی های موجود خود وجود دارد. 8 نوع استراتژی برای انتخاب تاکنون وجود دارد - از جمله متقاطع متوسط حرکت ساده (SMAC) ، شاخص قدرت نسبی (RSI) و حتی یک استراتژی مبتنی بر تجزیه و تحلیل احساسات!

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

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

اگر می خواهید مستقیماً با ما ارتباط برقرار کنید ، می توانید در Discord Hawksight نیز به ما برسید. در مورد FastQuant در #بازخورد-سواران و #کانال های گزارش اشکال بپرسید.

برای این مقاله بعدی در این سری Fastquant ، من در مورد نحوه استفاده از جستجوی شبکه برای بهینه سازی خودکار استراتژی های معاملاتی خود ، بیش از صدها ترکیب پارامتر بحث خواهم کرد!

با تشکر از خواندن این مقاله ، و لطفاً در صورت داشتن هرگونه سؤال بیشتر در مورد FastQuant یا هر چیز دیگری که مربوط به استفاده از علوم داده برای امور مالی هستید ، در زیر اظهار نظر کنید یا از طریق ایمیل با من تماس بگیرید (lorenzo. [email protected]) ، توییتر یا LinkedIn!

آیا می خواهید این کار را بدون برنامه نویسی انجام دهید؟

اگر می خواهید این نوع تجزیه و تحلیل را ساده تر کنید بدون اینکه اصلاً کدگذاری کنید (یا می خواهید از درد انجام تمام تنظیمات مورد نیاز خودداری کنید) ، می توانید Hawksight را امتحان کنید-این ابزار جدید بدون کد که اخیراً ساخته امبرای دموکراتیزه کردن سرمایه گذاری های محور داده.

ما به تازگی راه اندازی Beta Open را راه اندازی کردیم تا هرکسی بتواند ثبت نام کند و از این ابزار به صورت رایگان استفاده کند. به امید اینکه این نوع تحلیل های قدرتمند را برای افراد بیشتری در دسترس قرار دهد!

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

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

برچسب : نویسنده : سعید شیخ‌زاده بازدید : <-PostHit-> تاريخ : دوشنبه 8 خرداد 1402 ساعت: 22:14