پایتون برای امور مالی - آموزش تجارت الگوریتمی برای مبتدیان

ساخت وبلاگ

Python for Finance – Algorithmic Trading Tutorial for Beginners

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

الگوریتم های ریاضی باعث نوآوری و سرعت می شوند. آنها می توانند به ما در دستیابی به یک مزیت رقابتی در بازار کمک کنند.

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

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

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

  1. دانش آموز یا شخصی که قصد دارد یک تحلیلگر کمی (مقدار) در یک صندوق یا بانک شود.
  2. کسی که قصد دارد تجارت تجاری کمی خود را آغاز کند.

ما در این پست مباحث زیر را طی خواهیم کرد:

  • مبانی سهام و تجارت
  • استخراج داده ها از API quandl
  • تجزیه و تحلیل داده های اکتشافی در داده های قیمت گذاری سهام
  • میانگین حرکت
  • تدوین یک استراتژی تجارت با پایتون
  • تجسم عملکرد استراتژی

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

سهام چیست؟تجارت سهام چیست؟

سهام

سهام نمایندگی سهم در مالکیت یک شرکت است که با مبلغ مشخصی صادر می شود. این یک نوع امنیت مالی است که ادعای شما را بر روی دارایی و عملکرد یک شرکت تعیین می کند.

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

استراتژی تجارت و تجارت سهام

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

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

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

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

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

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

پایتون یکی از محبوب ترین زبانهای برنامه نویسی است که در میان امثال C ++ ، Java ، R و Matlab مورد استفاده قرار می گیرد. این امر به دلیل نحو آسان ، جامعه عظیم و پشتیبانی شخص ثالث ، به طور گسترده ای در تمام حوزه ها ، به ویژه در علم داده ، پذیرفته می شود.

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

استخراج داده ها از API quandl

به منظور استخراج داده های قیمت گذاری سهام ، ما از API Quandl استفاده خواهیم کرد. اما قبل از آن ، بیایید محیط کار را تنظیم کنیم. در اینجا چگونه:

  1. در ترمینال خود ، یک دایرکتوری جدید برای پروژه ایجاد کنید (هرچند که می خواهید نام ببرید):
  1. اطمینان حاصل کنید که Python 3 و VirtualEnV را روی دستگاه خود نصب کرده اید.
  2. با استفاده از VirtualEnV یک VirtualEnv جدید Python 3 ایجاد کرده و با استفاده از منبع /سطل /فعال سازی آن را فعال کنید.
  3. اکنون ، کتاب یادداشت Jupyter را با استفاده از PIP نصب کنید و در PIP نصب کنید و یادداشت نت را در ترمینال نصب کنید.
  4. به طور مشابه ، بسته های پاندا ، Quandl و Numpy را نصب کنید.
  5. دفترچه یادداشت Jupyter خود را از ترمینال اجرا کنید.

اکنون ، نوت بوک شما باید مانند تصویر زیر در زیر اجرا شود:

1-1

می توانید با کلیک بر روی کشویی جدید در سمت راست ، اولین نوت بوک خود را ایجاد کنید. اطمینان حاصل کنید که یک حساب کاربری در Quandl ایجاد کرده اید. مراحل ذکر شده در اینجا را دنبال کنید تا کلید API خود را ایجاد کنید.

پس از تنظیم همه ، اجازه دهید درست شیرجه بزنیم:

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

پس از وارد کردن بسته ها ، ما با استفاده از بسته quandl به API Quandl درخواست خواهیم کرد:

2-3

در اینجا ما برای 9 سال گذشته داده های قیمت گذاری سهام EOD مایکروسافت را داریم. تمام کاری که شما باید انجام دهید این بود که با روش GET از بسته quandl تماس بگیرید و نماد سهام ، MSFT و بازه زمانی برای داده های مورد نیاز خود را تهیه کنید.

این واقعاً ساده بود ، درست است؟بیایید پیش برویم تا این داده ها را درک و کشف کنیم.

تجزیه و تحلیل داده های اکتشافی در داده های قیمت گذاری سهام

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

با چاپ اطلاعات DataFrame ، می توانیم تمام آنچه را که موجود دارد مشاهده کنیم:

3-1

همانطور که در تصویر بالا مشاهده می شود ، DataFrame شامل DateTimeIndex است ، به این معنی که ما با داده های سری زمانی سر و کار داریم.

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

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

اصطلاحات مهم

با نگاهی به ستون های دیگر ، بیایید سعی کنیم درک کنیم که هر ستون چه چیزی را نشان می دهد:

  • باز/بسته - قیمت افتتاحیه/بسته شدن سهام را ضبط می کند
  • adj_open/adj_close - قیمت تعدیل شده/بسته شدن تعدیل شده ، قیمت سهام در هر روز معینی از معاملات است که برای توزیع هرگونه توزیع سود سهام ، تقسیم سهام و سایر اقدامات شرکتی که در هر زمان قبل از افتتاح روز بعد رخ داده است ، تجدید نظر شده است.
  • حجم - این تعداد سهام را که در هر روز معینی از معاملات معامله می شود ، ثبت می کند.
  • بالا/پایین - این بالاترین و کمترین قیمت سهام را در یک روز خاص از تجارت دنبال می کند.

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

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

4-1

مجدداً نمونه ()

از روش RESAMPLE () PANDAS () برای تسهیل کنترل و انعطاف پذیری در تبدیل فرکانس داده های سری زمانی استفاده می شود. ما می توانیم فواصل زمانی را برای نمونه برداری از داده ها به ماهانه ، سه ماهه یا سالانه مشخص کنیم و عملکرد مورد نیاز را بر روی آن انجام دهیم.

5-1

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

محاسبه بازده

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

ما برای این منظور PCT_CHANGE () را در اختیار داریم. در اینجا نحوه محاسبه بازده آورده شده است:

این بازده هایی را که سهام به صورت روزانه تولید می کند ، چاپ می کند. ضرب تعداد 100 باعث تغییر درصد می شود.

فرمول مورد استفاده در pct_change ():

اکنون ، برای محاسبه بازده ماهانه ، تنها کاری که باید انجام دهید این است:

پس از استفاده مجدد از داده ها به ماه ها (برای روزهای کاری) ، می توانیم آخرین روز تجارت را در ماه با استفاده از عملکرد Apply () دریافت کنیم.

اعمال () یک عملکرد را انجام می دهد و آن را در هر ردیف سری Pandas اعمال می کند. عملکرد Lambda یک تابع ناشناس در پایتون است که می تواند بدون نام تعریف شود و فقط در قالب زیر عباراتی می گیرد:

به عنوان مثال ، Lambda X: X * 2 یک تابع لامبدا است. در اینجا ، x استدلال است و x * 2 عبارتی است که ارزیابی و بازگردانده می شود.

میانگین حرکت در تجارت

مفهوم میانگین حرکت می تواند پایه و اساس استراتژی تجارت مبتنی بر حرکت ما را بسازد.

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

بیایید ببینیم که چگونه می توانیم میانگین نورد را در یک پنجره 50 روز محاسبه کنیم و پنجره را 1 روز بکشید.

متحرک()

این عملکرد جادویی است که ترفندهایی را برای ما انجام می دهد:

6-1

میانگین نورد را بیش از 50 روز (تقریباً 2 ماه) مشاهده خواهید کرد. میانگین حرکت به صاف کردن هرگونه نوسانات یا سنبله در داده ها کمک می کند و یک منحنی نرم تر برای عملکرد شرکت به شما می دهد.

ما می توانیم ترسیم و تفاوت را ببینیم:

7-1

اکنون می توانید میانگین نورد () را ترسیم کنید:

8-1

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

تدوین یک استراتژی معاملاتی

در اینجا قسمت نهایی و جالب ترین: طراحی و ساخت استراتژی تجارت. این یک راهنمای گام به گام برای تدوین یک استراتژی متقاطع متوسط حرکت ساده (SMAC) مبتنی بر حرکت خواهد بود.

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

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

3 نوع اصلی دوره بازگشت وجود دارد: کوتاه مدت ، میانی مدت و بلند مدت. ما باید 2 دوره بازپرداخت مختلف از یک سری زمانی خاص را تعریف کنیم.

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

حال ، بیایید ببینیم که کد این استراتژی چگونه به نظر می رسد:

بیایید ببینیم چه اتفاقی در اینجا می افتد. ما 2 دوره جستجو را ایجاد کرده ایم. دوره کوتاه Lookback Short_LB 50 روز است و دوره برگشت طولانی تر برای میانگین متحرک طولانی به عنوان یک LONG_LB 120 روز تعریف می شود.

ما یک DataFrame جدید ایجاد کرده ایم که برای ضبط سیگنال ها طراحی شده است. این سیگنالها هر زمان که میانگین متحرک کوتاه با استفاده از NP. where از میانگین حرکت طولانی عبور می کند ، تولید می شوند. در صورت ظهور این شرط ، 1. 0 را برای درست و 0. 0 اختصاص می دهد.

ستون های موقعیت های موجود در DataFrame به ما می گوید که آیا سیگنال خرید یا سیگنال فروش وجود دارد یا برای ماندن قرار دارد. ما اساساً تفاوت در ستون سیگنال ها را از ردیف قبلی با استفاده از Diff محاسبه می کنیم.

و در آنجا ما استراتژی خود را فقط در 6 مرحله با استفاده از پاندا اجرا کرده ایم. آسان ، اینطور نبود؟

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

اجرای سلول فوق در نوت بوک Jupyter می تواند نقشه ای مانند نمونه زیر را ارائه دهد:

9-1

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

یک سیگنال فروش توسط یک نشانگر نزولی سیاه مشخص شده است که در آن سقوط Short_mav در زیر Long_mav وجود دارد.

عملکرد استراتژی را روی Quantopian تجسم کنید

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

ما الگوریتمی را برای Backtest استراتژی SMA خود نوشتیم ، و در اینجا نتایج آمده است:

10-1

در اینجا توضیحی در مورد معیارهای فوق آورده شده است:

  • بازده کل: درصد کل بازده نمونه کارها از ابتدا تا انتهای پشتی.
  • بازده خاص: تفاوت بین بازده کل نمونه کارها و بازده مشترک.
  • بازده مشترک: بازده هایی که به عوامل خطر مشترک مربوط می شوند. 11 عامل خطر در بخش و 5 سبک وجود دارد که این بازده ها را تشکیل می دهند. نمودارهای قرار گرفتن در معرض بخش و قرار گرفتن در معرض سبک در بخش ریسک جزئیات بیشتری در مورد این عوامل ارائه می دهد.
  • شارپ: نسبت شارپ 6 ماهه. این یک اندازه گیری از سرمایه گذاری تنظیم ریسک است. این با تقسیم بازده اضافی نمونه کارها بر روی نرخ بدون ریسک توسط انحراف استاندارد نمونه کارها محاسبه می شود.
  • Max Drawdown: بزرگترین قطره تمام حرکت اوج به ترو در تاریخچه نمونه کارها.
  • نوسانات: انحراف استاندارد بازده نمونه کارها.

خود را در پشت خود قرار دهید زیرا استراتژی تجارت کمی خود را با موفقیت اجرا کرده اید!

از اینجا کجا برویم؟

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

منابع بیشتر

https://quantra. quantinsti.com/leaing-track/algorithmic-trading-for-everyone؟utm_source=harshit_tyagi& utm_medium=affiliate& utm_campaign=lt_everyone

Quantra یک مغز متفکر Quantinsti است. Quantra با طیف وسیعی از دوره های رایگان و پرداخت شده توسط کارشناسان این زمینه ، راهنمای کاملی را در مورد مجموعه ای از استراتژی های تجاری اساسی و پیشرفته ارائه می دهد.

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

منابع رایگان

برای کسب اطلاعات بیشتر در مورد الگوریتم های معاملاتی ، این وبلاگ ها را بررسی کنید:

  • - آنها طیف گسترده ای از الگوریتم های پشتی ، راهنماهای مبتدی و موارد دیگر را پوشش می دهند.- هر آنچه را که می خواهید در مورد سرمایه گذاری و امور مالی بدانید.- توضیحات دقیق ریاضی در مورد الگوریتم ها و جوانب مثبت و منفی آنها.

وارن بوفه می گوید که او روزانه حدود 500 صفحه می خواند ، که باید به شما بگوید که خواندن برای موفقیت در زمینه مالی ضروری است.

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

علم داده با خشن

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

  • این سریال تمام آموزش های کیفیت مورد نیاز/مورد نیاز را در مورد هر یک از مباحث و زیرمجموعه هایی مانند اصول پایتون برای علوم داده پوشش می دهد.
  • ریاضیات و مشتقات را توضیح داد که چرا ما آنچه را که در ML انجام می دهیم و یادگیری عمیق انجام می دهیم. در Google ، Microsoft ، Amazon و ETC و مدیرعامل شرکت های Big Data محور. برای اجرای مباحث آموخته شده تاکنون. در مورد گواهینامه های جدید ، Bootcamp و منابع برای ترک آن گواهینامه ها مانند این آزمون گواهینامه توسعه دهنده TensorFlow توسط Google اطلاعات کسب کنید.

اگر این آموزش مفید بود ، باید دوره های علوم داده و یادگیری ماشین من را در آکادمی Wiplane بررسی کنید. آنها جامع و در عین حال جمع و جور هستند و به شما کمک می کنند تا پایه و اساس کاملی از کار را برای نمایشگاه بسازید.< Pan> با این کانال ، من قصد دارم یک سری از سریال ها را پوشش دهم که کل فضای علوم داده را پوشش می دهد. در اینجا به همین دلیل است که شما باید در کانال مشترک شوید:

استراتژی برای تجارت گزینه های...
ما را در سایت استراتژی برای تجارت گزینه های دنبال می کنید

برچسب : نویسنده : فریبا کامران بازدید : 24 تاريخ : دوشنبه 22 خرداد 1402 ساعت: 11:54