تجارت گزینه با استفاده از شاخص های فنی در پایتون

ساخت وبلاگ

تجزیه و تحلیل پیچیدگی های زمان و فضا در یک الگوریتم ساده

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

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

واردات پاندا به عنوان PDyfinance را به عنوان yf وارد کنیداز Talib Import RSI ، Bbands ، MACD# لیستی از سهام سهام را تعریف کنیدTickers = ['aapl' ، 'goog' ، 'amzn' ، 'msft']# بازیابی داده های سهامStock_data = yf. download (تیکرها ، شروع = '2020-01-01' ، پایان = '2020-12-31')# قیمت های نزدیک را برای هر سهام استخراج کنیدclose_prices = stock_data ['Close']# شاخص قدرت نسبی (RSI) را برای هر سهام محاسبه کنیدRSI = RSI (close_prices)# باندهای بولینگر را برای هر سهام محاسبه کنیدبالا ، وسط ، پایین = bbands (close_prices)# واگرایی میانگین همگرایی متحرک (MACD) را برای هر سهام محاسبه کنیدMACD ، سیگنال ، hist = macd (close_prices)# برای ذخیره شاخص های فنی یک DataFrame جدید ایجاد کنیدشاخص ها = pd. dataframe ()# آستانه گروههای RSI ، MACD و BOLLINGER را تنظیم کنیدRSI_THRESHOLD = 70BB_THRESHOLD = 0. 05macd_threshold = 0# یک لیست خالی را برای ذخیره سهام هایی که آستانه را منتقل می کنند ، اولیه کنیدselected_stocks = []# بیش از سهام تکرار کنیدبرای تیک در تیک ها:# بررسی کنید که آیا RSI بالاتر از آستانه استif indicators['RSI'][ticker]>RSI_THRESHOLD:# بررسی کنید که آیا فاصله بین قیمت نزدیک و باند بولینگر فوقانی کمتر از آستانه استif (شاخص ها ['فوقانی BB'] [Ticker] - close_prices [Ticker]) / close_prices [Ticker]# بررسی کنید که آیا MACD بالاتر از آستانه استif indicators['MACD'][ticker]>macd_threshold:# اگر سهام از هر سه چک عبور می کند ، آن را به لیست سهام انتخاب شده اضافه کنیدSelected_stocks. Append (تیک)# سهام انتخاب شده را چاپ کنیدچاپ (select_stocks)

این مثال از 3 مقدار آستانه برای هر یک از شاخص ها استفاده می کند. ما از همان فرآیند مانند گذشته استفاده می کنیم اما اکنون در حال اضافه کردن یک چک دیگر هستیم تا بررسی کنیم که MACD سهام بالاتر از 0 است. اگر سهام از هر سه چک عبور کند (RSI ، Bollinger Bands ، MACD) سپس آن سهام را به لیست انتخاب شده اضافه می کنیمسهامسرانجام ، ما سهام انتخاب شده را چاپ می کنیم که برای تجارت گزینه مناسب در نظر گرفته می شود.

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

از نظر پیچیدگی فضا: پیچیدگی فضایی این الگوریتم o (n) است زیرا ما از لیستی برای ذخیره سهام انتخاب شده استفاده می کنیم. با افزایش تعداد سهام ، میزان فضای مورد نیاز برای ذخیره سهام انتخاب شده نیز به صورت خطی افزایش می یابد. علاوه بر این ، ما همچنین از DataFrame برای ذخیره شاخص های فنی برای همه سهام استفاده می کنیم که این امر به پیچیدگی کلی فضایی الگوریتم نیز کمک می کند. با این حال ، این پیچیدگی فضایی ضروری است زیرا به ما امکان می دهد به راحتی به شاخص های فنی برای هر سهام دسترسی پیدا کنیم و مقایسه کنیم.

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

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

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

  1. میانگین های متحرک (MA)
  2. شاخص قدرت نسبی (RSI)
  3. گروههای بولینگر
  4. نوسان ساز تصادفی
  5. MACD (حرکت میانگین واگرایی همگرایی)
  6. اصلاح فیبوناچی
  7. نقاط محوری
  8. ichimoku kinko hyo
  9. ROC (نرخ تغییر)
  10. ADX (شاخص جهت متوسط)

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

ویدیو های آموزشی فارکس...
ما را در سایت ویدیو های آموزشی فارکس دنبال می کنید

برچسب : نویسنده : محبوب امانی بازدید : 67 تاريخ : چهارشنبه 18 مرداد 1402 ساعت: 15:10