API گزینه های QuantCoect

ساخت وبلاگ

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

گزینه ها را اضافه کنید

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

 

روش مولفه های
Addoption (اساسی ، وضوح ، FillDataForward) زیرین (رشته): وضوح نماد سهام اصلی: تیک ، دوم ، دقیقه ، ساعت یا روزانه. پیش فرض Minute Filldataforward (BOOL) است: اگر درست باشد ، آخرین داده های موجود را حتی اگر هیچ یک از آن زمان بریده نشده باشد ، برمی گرداند. مقدار پیش فرض درست است.
DEF Initialize (self): self. setStartDate (2017 ، 1 ، 1) # تنظیم تاریخ شروع Self. SetEndDate (2017 ، 6 ، 30) # تنظیم تاریخ پایان Self. setCash (50000) # تنظیم استراتژی ارزش پول نقد = self. addequity ("goog") # سهام زیربنایی را اضافه کنید: گزینه google = self. addoption ("goog") # گزینه مربوط به سهام زیرنویس خود را اضافه کنید. symbol = option. symbol 

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

قراردادهای فیلتر

پس از افزودن گزینه های موجود برای سهام زیرین خاص ، می توانید معیارهای فیلتر را با روش SetFilter تنظیم کنید تا قراردادها را با استفاده از مقادیر مشخص شده MIN و MAX اعتصاب و محدوده انقضا مورد نیاز برای یک نماد معین بکشید.

 

روش مولفه های
setFilter (minstrike ، maxstrike ، minexpiry ، maxexpiry) Minstrike ، MaxStrike: حداقل و حداکثر رتبه اعتصاب نسبت به قیمت بازار حداقل انقضا ، حداکثر انقضا: دامنه زمان انقضاء شامل ، به عنوان مثال ، 10 قراردادهای منقضی شده در کمتر از 10 روز را حذف می کند

در اینجا پارامترهای Minstrike و MaxStrike چند برابر نسبی با توجه به قیمت بازار هستند. ما از Google (NASDAQ: GOOG) به عنوان نمونه برای توصیف معیارهای فیلتر استفاده می کنیم. اگر امروز 01/03/2017 باشد ، قیمت بازار سهام زیرین 776 دلار است ، قیمت اعتصاب گزینه های GOOG 2. 5 دلار است. سپس SetFilter (-1 ، +2 ، 0 ، 90) ابتدا به قراردادهای پول با اعتصاب K = 777. 5 $ نگاه می کند (در اینجا K 777. 5 نزدیکترین چند برابر به قیمت زیر 775 است زیرا بندرت گزینه ATM دقیقاً خواهد بود). سپس SetFilter به دنبال گزینه هایی با اعتصاب بین و از جمله (777. 5 - 2. 5 * 1 ، 777. 5 + 2. 5 * 2) خواهد بود. زمان انقضاء این گزینه ها در طی 90 روز از این پس محدود شده است.

برای اعتصاب ، مبادله به طور معمول قیمت اعتصاب را انتخاب می کند که در آن می توان گزینه ها را نوشت تا در فاصله 2. 50 دلار ، 5 دلار یا 10 دلار قرار بگیرند. به طور معمول این فاصله 2. 50 دلار است که قیمت سهام بین 5 تا 25 دلار ، 5 دلار باشد که قیمت سهام بین 25 تا 200 دلار و 10 دلار برای قیمت سهام بالاتر از 200 دلار باشد. بنابراین باید پارامترهای Minstrike و MaxStrike را با دقت انتخاب کنید در صورتی که هیچ قراردادی وجود نداشته باشد که معیارهای فیلتر را برآورده کند اگر دامنه خیلی کوچک باشد ، کمتر از حداقل واحدهای قیمت اعتصاب تغییر می کند.

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

# قراردادها را با اعتصاب بین (قیمت بازار - 10 ، قیمت بازار + 10) گزینه کنید. PetFilter (-10،10) # قراردادهایی را که بیش از 30 روز منقضی می شود فیلتر کنید اما بیش از 60 روز گزینه نیست.) ، timedelta (60)) # قراردادها را با اعتصاب بین (اعتصاب ATM - 10 * ارزش فضای اعتصاب ، قیمت بازار + 10 * ارزش فضای اعتصاب) و با روزهای انقضا کمتر از 180 روز گزینه.، 0 ، 180) 

قراردادها را انتخاب کنید

برای API QuantCoect ، کلاس Slice ساختار داده ای را برای همه داده های الگوریتم در یک مرحله زمانی واحد فراهم می کند. بنابراین برای درخواست داده های گزینه برای این برش ، نیاز به استفاده از Property Slice. OptionChains دارید.

Optionchains مجموعه ای از گزینه های گزینه ای است که توسط نماد زیرین گزینه کلید است. عناصر موجود در slice. OptionChains دارای کلید Properties (مقدار نماد زیرین) مقدار (زنجیره گزینه) هستند.

OptionChain یک زنجیره کل از قراردادهای گزینه را برای یک امنیت اساسی نشان می دهد. به عبارت دیگر ، این لیستی از قراردادهای گزینه است.

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

 

خواص قرارداد گزینه شرح
x. symbol. value بازنمایی رشته نماد قرارداد گزینه
X. AskPrice ، X. BidPrice قیمت ها را بپرسید و پیشنهاد دهید
x. expiry تاریخ انقضا
X. Tike قیمت اعتصاب
X. ImpliedVolatility نوسانات ضمنی
X. Greeks نامه یونانیان
x. right درست خریداری شده X. Right = OptionRight. Call (0) [حق خرید] X. Right = OptionRight. put (1) [حق فروش]
X. UnderlyinglastPrice آخرین قیمت امنیتی اساسی در
X. UnderlyingsMbol سمبل امنیت اساسی

ما می توانیم جزئیات قرارداد را پس از فیلتر کردن با قاب داده پایتون چاپ کنیم تا این خصوصیات را نشان دهیم. فرض کنید امروز 01/03/2017 است. قیمت سهام در 01/03/2017 09:31:00 776. 01 دلار در هر سهم است. در اینجا ما برای فیلتر کردن قراردادها از SetFilter (-1 ، 1 ، +0 ، 60) استفاده می کنیم.

def OnData(self, slice: Slice) >هیچکدام: زنجیره = slice. optionchains. get (self. symbol) اگر زنجیره ای: self. log (f "قیمت زیرین:") df = pd. dataframe ([[x. right ، x. strike ، x. expiry ، x. BIDPRICE ، X. ASKPRICE] برای X در زنجیره] ، index = [x. symbol. value برای x در زنجیره] ، ستون ها = ["نوع (تماس 0 ، قرار دادن 1)" ، "اعتصاب" ، "انقضا" ، بپرسیدقیمت '،' قیمت پیشنهاد ']) self. log (str (df)) 
سمبل تایپ کنید (با 0 تماس بگیرید ، 1) ضربه انقضاء از قیمت بپرسید قیمت مناقصه
GOOG 170217C00780000 0 780. 0 2017-02-17 26. 4 27. 9
GOOG 170120P00782500 1 782. 5 2017-01-20 14. 7 16. 3
GOOG 170120C00782500 0 782. 5 2017-01-20 9.4 10. 2
GOOG 170120P00780000 1 780. 0 2017-01-20 13. 4 15. 0
GOOG 170120C00780000 0 780. 0 2017-01-20 10. 6 11. 5
GOOG 170217P00780000 1 780. 0 2017-02-17 28. 9 30. 8
GOOG 170120P00777500 1 777. 5 2017-01-20 12. 2 13. 7
GOOG 170120C00777500 0 777. 5 2017-01-20 11. 8 12. 9

در اینجا ما مثالی از نحوه یافتن دستگاههای خودپرداز ، ITM OTM برای تجارت را ارائه می دهیم. ابتدا باید مطابق نمادی که در مرحله اولیه اضافه کردیم ، گزینه Chain را از گزینه های گزینه استخراج کنیم. ثانیاً ، ما با استفاده از خصوصیات زیربنایی و اعتصاب ، قراردادهای ATM ، ITM و OTM را استخراج می کنیم. توجه داشته باشید در اینجا اعتصاب گزینه های دستگاههای خودپرداز دقیقاً مشابه قیمت بازار سهام زیربنایی نیست ، بنابراین در اینجا ما ابتدا قراردادها را با ارزش های مطلق تفاوت بین زیربنایی و اعتصاب مرتب می کنیم. سپس قرارداد را با حداقل ارزش مطلق به عنوان قرارداد ATM انتخاب می کنیم.

chain = slice.OptionChains.get(self.symbol) if chain: # differentiate the call and put options call = [x for x in chain if x.Right == OptionRight.Call] put = [x for x in chain if x.Right == OptionRight.Put] # choose ITM call contracts contracts = [x for x in call if x.UnderlyingLastPrice - x.Strike>0] # یا قراردادهای قراردادهای ATM را انتخاب کنید = مرتب شده (زنجیره ای ، کلید = Lambda X: ABS (X. UnderlyingLastPrice - X. Strike)) [0] # یا انتخاب قراردادهای CALL CALL OTM = [x برای x در تماس اگر x. underlyinglastprice تماس بگیرید- X. Strike<0] # sort the contracts by their expiration dates contracts = sorted(contracts, key = lambda x: x.Expiry, reverse = True) 

سرانجام ، ما با استفاده از نماد قرارداد گزینه ها را تجارت می کنیم.

اگر len (قراردادها) == 0: ادامه دهید # قراردادها را با دورترین نماد انقضاء = قراردادها [0] . symbol self. marketorder (نماد ، 1) self. marketoncloseorder (نماد ، -1) ادامه دهید 

خلاصه

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

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

الگوریتم

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

استراتژی های مؤثر فارکس...
ما را در سایت استراتژی های مؤثر فارکس دنبال می کنید

برچسب : نویسنده : توران میرهادی بازدید : <-PostHit-> تاريخ : پنجشنبه 9 شهريور 1402 ساعت: 23:12