استفاده از پایتون برای ایجاد یک استراتژی تجاری نوآورانه و دستیابی به نتایج بهتر

ساخت وبلاگ

یک راهنمای مفید برای ایجاد یک استراتژی تجاری غیر متعارف با ترکیب چندین شاخص در پایتون

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

در این مقاله ، ما از پایتون برای ایجاد یک استراتژی تجاری نوآورانه با ترکیب دو شاخص قدرتمند که نوسان ساز تصادفی و میانگین همگرایی/واگرایی در حال حرکت (MACD) با هدف نهایی ریشه کن کردن سیگنال های دروغین به همان اندازه ممکن و دستیابی به پیشرفت بهتر خواهیم بود ، استفاده خواهیم کرد. نتایج. بدون آزار و اذیت بیشتر ، اجازه دهید وارد مقاله شویم!

قبل از ادامه کار ، اگر می خواهید استراتژی های معاملاتی خود را بدون هیچ گونه برنامه نویسی پشت سر بگذارید ، راه حلی برای آن وجود دارد. این backtestzone است. این یک بستر برای پشتوانه هر تعداد استراتژی معاملاتی در انواع مختلف دارایی های قابل تجارت به صورت رایگان و بدون برنامه نویسی است. می توانید بلافاصله با استفاده از پیوند در اینجا از ابزار استفاده کنید: https://www. backtestzone.com/

نوسان ساز تصادفی

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

مقادیر نوسان ساز تصادفی همیشه به دلیل عملکرد عادی سازی آن بین 0 تا 100 قرار دارد. سطح بیش از حد و سطح بیش از حد به ترتیب 70 و 30 در نظر گرفته می شود اما می تواند از یک شخص به شخص دیگر متفاوت باشد. نوسان ساز تصادفی شامل دو مؤلفه اصلی است:

  • %K Line: این خط مهمترین و اصلی ترین جزء اندیکاتور اسیلاتور تصادفی است. در غیر این صورت به عنوان شاخص سریع تصادفی شناخته می شود. تنها هدف این خط بیان وضعیت فعلی بازار است (خرید یا بیش فروش). این خط با کم کردن کمترین قیمتی که سهام در یک دوره زمانی مشخص از قیمت بسته شدن سهام به آن رسیده است محاسبه می شود و سپس این تفاوت بر ارزش محاسبه شده با تفریق کمترین قیمتی که سهام به تعداد مشخصی رسیده است تقسیم می شود. دوره هایی از بالاترین قیمت سهاممقدار نهایی با ضرب مقدار محاسبه شده از مراحل فوق در 100 به دست می آید. روش محاسبه خط %K با محبوب ترین تنظیم 14 به عنوان تعداد دوره ها را می توان به صورت زیر نشان داد:
  • خط %D: در غیر این صورت به عنوان نشانگر تصادفی آهسته شناخته می شود، چیزی جز میانگین متحرک خط %K برای یک دوره مشخص نیست. همچنین به عنوان نسخه صاف خط %K شناخته می شود زیرا نمودار خطی خط %D صاف تر از خط %K به نظر می رسد. تنظیم استاندارد خط %D 3 به عنوان تعداد نقطه است.

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

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

مؤلفه های ٪ k و خط d ٪ D که قبلاً در مورد آنها بحث کردیم به ترتیب به رنگ آبی و نارنجی ترسیم شده اند. همچنین می توانید دو خط نقطه سیاه اضافی را در بالا و زیر خط ٪ k و ٪ d مشاهده کنید. این یک جزء اضافی از نوسان ساز تصادفی است که به عنوان باند شناخته می شود. این گروهها برای برجسته کردن منطقه بیش از حد و بیش از حد استفاده می شوند. اگر هر دو خط k و ٪ D از بالای باند بالا عبور کنند ، سهام در نظر گرفته می شود که بیش از حد مورد استفاده قرار می گیرد. به همین ترتیب ، هنگامی که هر دو خط k و ٪ d از زیر باند پایین عبور می کنند ، سهام در نظر گرفته می شود.

قبل از حرکت به MACD ، ضروری است بدانید که میانگین متحرک نمایی (EMA) به چه معنی است. EMA نوعی میانگین در حال حرکت (MA) است که به طور خودکار وزن بیشتری را (چیزی جز اهمیت) به جدیدترین نقطه داده و وزن کمتری به نقاط داده در گذشته های دور اختصاص می دهد. به عنوان مثال ، یک مقاله سؤال شامل 10 ٪ از یک سؤال یک علامت ، 40 ٪ از سه سؤال علامت گذاری و 50 ٪ از سؤالات پاسخ طولانی است. از این مثال ، می توانید مشاهده کنید که ما بر اساس سطح اهمیت ، وزنهای منحصر به فرد را به هر بخش از مقاله اختصاص می دهیم (احتمالاً به سؤالات پاسخ طولانی اهمیت بیشتری نسبت به سؤالات یک علامت داده می شود).

اکنون ، MACD یک نشانگر پیشرو در روند است که با کم کردن دو میانگین متحرک نمایی (یکی با طولانی تر و دیگری دوره های کوتاه تر) محاسبه می شود. در یک شاخص MACD سه مؤلفه قابل توجه وجود دارد.

  • خط MACD: این خط تفاوت بین دو میانگین متحرک نمایی داده شده است. برای محاسبه خط MACD ، یک EMA با یک دوره طولانی تر به عنوان طول آهسته و یک EMA دیگر با یک دوره کوتاه تر که به عنوان طول سریع شناخته می شود محاسبه می شود. محبوب ترین طول سریع و کند به ترتیب 12 ، 26 است. مقادیر نهایی خط MACD را می توان با کم کردن طول آهسته EMA از EMA با طول سریع به دست آورد. فرمول محاسبه خط MACD را می توان به شرح زیر نشان داد:
  • خط سیگنال: این خط میانگین حرکت نمایی خط MACD برای یک دوره زمانی معین است. محبوب ترین دوره برای محاسبه خط سیگنال 9 است. از آنجا که ما به طور متوسط از خط MACD استفاده می کنیم ، خط سیگنال نرم تر از خط MACD خواهد بود.
  • هیستوگرام: همانطور که از نام آن پیداست ، یک هیستوگرام عمداً ترسیم شده است تا تفاوت بین خط MACD و خط سیگنال را نشان دهد. این یک مؤلفه عالی است که برای شناسایی روندها مورد استفاده قرار می گیرد. فرمول محاسبه هیستوگرام را می توان به شرح زیر نشان داد:

اکنون که ما دقیقاً درک کرده ایم که MACD دقیقاً چیست. بیایید نمودار MACD را برای ایجاد شهود در مورد شاخص تجزیه و تحلیل کنیم.

در این طرح دو صفحه وجود دارد: پانل بالا طرح قیمت های نزدیک اپل است و صفحه پایین مجموعه ای از توطئه های اجزای MACD محاسبه شده است. بیایید بشکنیم و هر مؤلفه را ببینیم.

اولین و قابل مشاهده ترین مؤلفه در پانل پایین بدیهی است که طرح مقادیر هیستوگرام محاسبه شده است. می توانید توجه داشته باشید که هر زمان که بازار روند منفی را نشان می دهد و هر زمان که بازار روند مثبتی را نشان می دهد ، قرمز می شود. این ویژگی از نقشه هیستوگرام هنگام شناسایی روند بازار بسیار مفید می شود. طرح هیستوگرام هر زمان که تفاوت بین خط MACD و خط سیگنال بسیار زیاد باشد ، بزرگتر می شود و قابل توجه است که طرح هیستوگرام در مواقعی کوچک می شود که تفاوت بین دو مؤلفه دیگر را نشان می دهد ، نسبتاً کوچکتر است.

دو مؤلفه بعدی خط MACD و خط سیگنال هستند. خط MACD طرح خط خاکستری است که تفاوت بین EMA با طول آهسته و EMA با طول سریع قیمت سهام اپل را نشان می دهد. به طور مشابه ، طرح خط به رنگ آبی خط سیگنال است که نشان دهنده EMA خط MACD است. همانطور که قبلاً بحث کردیم ، به نظر می رسد خط سیگنال بیشتر نسخه صاف خط MACD است زیرا با میانگین مقادیر خود خط MACD محاسبه می شود.

استراتژی تجارت

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

اگر خط ٪ k و ٪ d زیر 30 و خط MACD و سیگنال کمتر ا ز-2 باشد ، طولانی می رویم (سهام را بخریم). به همین ترتیب ، اگر خط ٪ k و ٪ d از بالای 70 عبور کند ، کوتاه می رویم (سهام را بفروشیم) ، و هر دو مؤلفه شاخص MACD از 2 بیشتر هستند. استراتژی تجارت ما را می توان به شرح زیر نشان داد:

خودشه! این قسمت تئوری ما را نتیجه می گیرد و بیایید به قسمت برنامه نویسی برویم که در آن ما از Python استفاده خواهیم کرد تا ابتدا شاخص ها را از ابتدا بسازیم ، استراتژی معاملاتی مورد بحث را بسازیم ، استراتژی را روی داده های سهام اپل بسازیم و در نهایت نتایج را با نتیجه ETF SPY مقایسه کنیمبشربیایید برخی از برنامه نویسی را انجام دهیم! قبل از حرکت ، یادداشتی در مورد سلب مسئولیت: تنها هدف این مقاله آموزش مردم است و باید به عنوان یک قطعه اطلاعاتی در نظر گرفته شود اما نه به عنوان مشاوره سرمایه گذاری یا همینطور.

پیاده سازی در پایتون

بخش کد نویسی به مراحل مختلف به شرح زیر طبقه بندی می شود:

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

مرحله 1: واردات بسته ها

وارد کردن بسته های مورد نیاز به محیط پایتون یک مرحله غیرقابل پرش است. بسته های اولیه Panda ها برای کار با داده ها، NumPy برای کار با آرایه ها و توابع پیچیده، Matplotlib برای اهداف رسم و درخواست هایی برای برقراری تماس های API هستند. بسته های ثانویه ریاضی برای توابع ریاضی و Termcolor برای سفارشی سازی فونت (اختیاری) خواهند بود.

پیاده سازی پایتون:

اکنون که تمام بسته های مورد نیاز را به پایتون خود وارد کرده ایم. بیایید داده های تاریخی اپل را با نقطه پایانی API دوازده داده جمع آوری کنیم.

مرحله 2: استخراج داده های سهام از دوازده داده

در این مرحله، می خواهیم داده های سهام تاریخی اپل را با استفاده از یک نقطه پایانی API ارائه شده توسط twelvedata.com استخراج کنیم. قبل از آن، یک یادداشت در twelvedata.com: Twelve Data یکی از پیشروترین ارائه دهندگان داده بازار است که دارای مقادیر زیادی نقطه پایانی API برای همه انواع داده های بازار است. تعامل با API های ارائه شده توسط Twelve Data بسیار آسان است و یکی از بهترین اسناد را دارد. همچنین، مطمئن شوید که یک حساب کاربری در twelvedata.com دارید، تنها در این صورت می توانید به کلید API خود (عنصر حیاتی برای استخراج داده ها با یک API) دسترسی پیدا کنید.

پیاده سازی پایتون:

خروجی:

توضیح کد: اولین کاری که انجام دادیم این بود که تابعی به نام «get_historical_data» تعریف کردیم که نماد سهام («نماد») و تاریخ شروع داده های تاریخی («start_date») را به عنوان پارامتر می گیرد. در داخل تابع، ما کلید API و URL را تعریف کرده و آنها را در متغیر مربوطه خود ذخیره می کنیم. سپس، داده های تاریخی را با فرمت JSON با استفاده از تابع «get» استخراج می کنیم و آن را در متغیر «raw_df» ذخیره می کنیم. پس از انجام برخی فرآیندها برای تمیز کردن و قالب بندی داده های خام JSON، آن ها را در قالب یک دیتافریم تمیز Pandas برمی گردانیم. در نهایت، ما تابع ایجاد شده را فراخوانی می کنیم تا داده های تاریخی اپل را از ابتدای سال 2010 جمع آوری کرده و در متغیر "aapl" ذخیره کنیم.

مرحله 3: محاسبه نوسانگر تصادفی

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

پیاده سازی پایتون:

خروجی:

توضیح کد: ما ابتدا تابعی به نام "get_stoch_osc" را تعریف می کنیم که یک سهام بالا ("بالا") ، پایین ("پایین") ، بسته شدن داده های قیمت ("نزدیک") و دوره های برگشت خط ٪ k را می گیرد ("K_LOOKBACK") و ٪ D ("D_LOOKBACK") به ترتیب به عنوان پارامترها. در داخل عملکرد ، ما ابتدا با استفاده از توابع "نورد" ، "حداقل" و "حداکثر" که توسط بسته های پانداس ارائه شده و مقادیر را در "Lowest_Low" در حال محاسبه کمترین پایین و بالاترین نقاط داده بالا برای تعداد مشخصی از دوره ها هستیم و مقادیر را ذخیره می کنیم و مقادیر آن را ذخیره می کنیم. متغیرهای '، و "بالاترین_ هه".

سپس محاسبه خط k می آید که در آن فرمول را در کد خود جایگزین می کنیم و خوانش ها را در متغیر "k_line" ذخیره می کنیم ، و به دنبال آن ، ما خط ٪ d را محاسبه می کنیم که چیزی نیست جز گرفتن SMA از خط ٪ kقرائت برای تعداد مشخصی از دوره ها. سرانجام ، ما مقادیر را برمی گردانیم و این تابع را برای ذخیره خوانش های نوسان ساز تصادفی اپل با 14 و 3 به عنوان دوره برگشت به ترتیب از خط ٪ K و ٪ D فراخوانی می کنیم.

مرحله 4: محاسبه MACD

در این مرحله ، ما قصد داریم تمام مؤلفه های شاخص MACD را از داده های تاریخی استخراج شده اپل محاسبه کنیم.

پیاده سازی پایتون:

خروجی:

توضیح کد: اولا ، ما تابعی به نام "GET_MACD" را تعریف می کنیم که قیمت سهام ("قیمت") ، طول EMA کند ("کند") ، طول EMA سریع ("سریع") و دوره را می گیرد. از خط سیگنال ("صاف").

در داخل عملکرد ، ما ابتدا با استفاده از عملکرد "EWM" که توسط پاندا ارائه شده و آنها را به ترتیب در متغیرهای "EMA1" و "EMA2" ذخیره می کنیم ، EMA های سریع و آهسته را محاسبه می کنیم.

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

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

مرحله 5: ایجاد استراتژی تجارت:

در این مرحله ، ما قصد داریم نوسان ساز تصادفی مورد بحث و حرکت متوسط همگرایی/واگرایی (MACD) را در پایتون اجرا کنیم.

پیاده سازی پایتون:

توضیح کد: اول ، ما تابعی به نام "bb_stoch_strategy" را تعریف می کنیم که قیمت سهام ("قیمت ها") ، ٪ k خواندن خط ("k") ، ٪ d خواندن خط ("D") ، خط MACD (MACD') ، و خط سیگنال (' MacD_Signal ') به عنوان پارامترها.

در داخل عملکرد ، ما در حال ایجاد سه لیست خالی (buy_price ، sell_price و stoch_macd_signal) هستیم که در آن مقادیر هنگام ایجاد استراتژی تجارت ضمیمه می شوند.

پس از آن ، ما استراتژی تجارت را از طریق یک حلقه برای اجرای آن اجرا می کنیم. در داخل حلقه ، ما شرایط خاصی را پشت سر می گذاریم و اگر شرایط راضی باشد ، مقادیر مربوطه به لیست های خالی اضافه می شود. اگر شرط خرید سهام برآورده شود ، قیمت خرید به لیست "buy_price" اضافه می شود و ارزش سیگنال به عنوان 1 نماینده برای خرید سهام ضمیمه می شود. به همین ترتیب ، اگر شرط فروش سهام برآورده شود ، قیمت فروش به لیست "sell_price" اضافه می شود و ارزش سیگنال به عنوا ن-1 نماینده برای فروش سهام ضمیمه می شود. سرانجام ، ما لیست های ضمیمه شده با مقادیر را برمی گردانیم. سپس ، ما در حال فراخوانی عملکرد ایجاد شده و مقادیر را در متغیرهای مربوطه آنها ذخیره می کنیم.

مرحله 6: ایجاد موقعیت ما

در این مرحله ، ما قصد داریم لیستی را ایجاد کنیم که اگر سهام را در اختیار نداریم یا سهام خود را نگه نداریم ، 1 را نشان می دهد.

پیاده سازی پایتون:

خروجی:

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

در داخل حلقه دوم ، ما در مورد مقادیر لیست "سیگنال" تکرار می شویم و مقادیر لیست "موقعیت" در مورد اینکه چه شرایط راضی می شود ، ضمیمه می شوند. اگر سهام خود را نگه داریم یا اگر سهام خود را نداشته باشیم یا سهام خود را نداریم ، مقدار موقعیت 1 باقی مانده است. سرانجام ، ما در حال انجام برخی از دستکاری های داده برای ترکیب همه لیست های ایجاد شده در یک DataFrame هستیم.

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

مرحله 7: پشتی

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

پیاده سازی پایتون:

خروجی:

توضیح کد: اول ، ما بازده سهام اپل را با استفاده از عملکرد "Diff" ارائه شده توسط بسته NUMPY محاسبه می کنیم و ما آن را به عنوان یک DataFrame در متغیر "AAPL_RET" ذخیره کرده ایم. در مرحله بعد ، ما برای محاسبه بازده هایی که از استراتژی تجارت خود به دست آوردیم ، یک حلقه را برای تکرار مقادیر متغیر "AAPL_RET" می گذرانیم و این مقادیر بازده به لیست "Stoch_Macd_strategy_ret" اضافه می شود. در مرحله بعد ، ما لیست "stoch_macd_strategy_ret" را به یک dataframe تبدیل می کنیم و آن را در متغیر "stoch_macd_strategy_ret_df" ذخیره می کنیم.

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

سرانجام ، ما در حال چاپ کل بازدهی هستیم که با سرمایه گذاری یک صد هزار نفر در استراتژی تجارت خود دریافت کردیم و مشخص می شود که ما در حدود ده و نیم سال سود تقریبی یک میلیون ، صد و نود هزار دلار کسب کرده ایمبا درصد سود 1189 ٪. عالیه! اکنون ، بیایید بازده خود را با SPY ETF (ETF طراحی شده برای ردیابی شاخص بازار سهام S& P 500) مقایسه کنیم.

مرحله 8: مقایسه ETF جاسوسی

این مرحله اختیاری است، اما به شدت توصیه می شود زیرا می توانیم ایده خوبی از عملکرد استراتژی معاملاتی ما در برابر معیار (SPY ETF) داشته باشیم. در این مرحله، داده های SPY ETF را با استفاده از تابع «get_historical_data» که ایجاد کرده ایم استخراج می کنیم و بازدهی را که از ETF SPY دریافت می کنیم با بازده استراتژی تجاری خود در اپل مقایسه می کنیم.

ممکن است مشاهده کرده باشید که در تمام مقالات معاملاتی الگوریتمی من، نتایج استراتژی را نه با خود شاخص بازار S& P 500 بلکه با ETF SPY مقایسه کرده ام و این به این دلیل است که اکثر ارائه دهندگان اطلاعات سهام (مانند Twelve Data) این کار را انجام نمی دهند. داده های شاخص S& P 500 را ارائه می دهد. بنابراین، من چاره ای جز رفتن با ETF SPY ندارم. اگر خوش شانس هستید که داده های شاخص بازار S& P 500 را به دست آورید، توصیه می شود به جای هر ETF از آن برای مقایسه استفاده کنید.

پیاده سازی پایتون:

خروجی:

توضیح کد: کد استفاده شده در این مرحله تقریباً شبیه به کد مورد استفاده در مرحله بک تست قبلی است، اما به جای سرمایه گذاری در اپل، با اجرای نکردن هیچ استراتژی معاملاتی در SPY ETF سرمایه گذاری می کنیم. از خروجی، می توانیم ببینیم که استراتژی معاملاتی ما 902% از ETF SPY بهتر عمل کرده است. این عالی است!

افکار نهایی!

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

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

با حمایت مالی: EOD Historical Data یکی از پیشروها در بازار APIهای مالی است که طیف گسترده ای از APIها را شامل می شود، از APIهای پایه مانند داده های بازار پایان روز گرفته تا APIهای بسیار قابل تنظیم مانند API اخبار مالی و API غربالگر سهام. همه API های آنها به گونه ای طراحی شده اند که استفاده از آنها در طبیعت آسان است تا مبتدیان بتوانند بدون هیچ مانعی با آنها کار کنند. من شخصاً از APIهای EOD Historical Data استفاده کرده ام و بر اساس تجربه ام، APIهای آنها برای آماتورها و همچنین حرفه ای ها مناسب است و برای پروژه های جانبی و ساخت برنامه های کاربردی در سطح سازمانی استفاده می شود.

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

برچسب : نویسنده : مرجان شیرمحمدی بازدید : 37 تاريخ : چهارشنبه 31 خرداد 1402 ساعت: 20:28