یک جهان آینده به شما امکان می دهد یک سبد قرارداد را برای آینده ای واحد انتخاب کنید. Lean Models اشتراک های آینده را به عنوان جهانی از قراردادهای آینده مدل می کند. یک جهان آینده شبیه به یک جهان گزینه است ، به جز قراردادهای آینده قیمت اعتصاب ندارند ، بنابراین فیلتر جهان در درجه اول روی تاریخ انقضا قرارداد متمرکز است.
جهان ایجاد کنید
برای افزودن جهانی از قراردادهای آینده ، در روش اولیه با روش AddFuture تماس بگیرید. این روش یک شیء آینده را برمی گرداند ، که شامل نماد قرارداد مداوم است. نماد قرارداد مداوم کلید دسترسی به قراردادهای موجود در Futurechain است که لاغر به روش Ondata منتقل می شود. هنگامی که اشتراک آینده را ایجاد می کنید ، مرجع نماد قرارداد مداوم را ذخیره کنید تا بتوانید بعداً در الگوریتم خود از آن استفاده کنید.
_future = addFuture (futures. currencies. btc) ؛_symbol = _future. symbol ؛
self. future = self. addfuture (futures. currencies. btc) self. symbol = خود.
در جدول زیر آرگومان های روش AddFuture شرح داده شده است:
استدلال: تیکر
تیکت آیندهبرای مشاهده دارایی های پشتیبانی شده در مجموعه داده های آینده ایالات متحده ، به دارایی های پشتیبانی شده مراجعه کنید.
نوع داده: رشته رشته |مقدار پیش فرض: هیچ
استدلال: وضوح
وضوح داده های بازار. برای مشاهده قطعنامه های پشتیبانی شده ، به قطعنامه ها مراجعه کنید. اگر مقداری را ارائه ندهید ، به طور پیش فرض از وضوح استفاده می کند.
نوع داده: وضوح؟وضوح/nonetype |مقدار پیش فرض: هیچ یک تهی نیست
استدلال: بازار
بازار آینده. برای مشاهده بازارهای پشتیبانی شده در مجموعه داده های آینده ایالات متحده ، به بازارهای پشتیبانی شده مراجعه کنید. اگر ارزشی را ارائه نمی دهید ، از بازار پیش فرض آینده مدل کارگزاری خود استفاده می کند.
نوع داده: رشته رشته |مقدار پیش فرض: هیچ یک تهی نیست
استدلال: Filldataforward
در صورت صحت ، برش فعلی شامل آخرین داده های موجود است حتی اگر در زمان فعلی داده ای وجود نداشته باشد.
نوع داده: BOOL |مقدار پیش فرض: واقعی واقعی
استدلال: اهرم
اهرم برای این آینده.
نوع داده: شناور اعشاری |مقدار پیش فرض: امنیت.
استدلال: Extendedmarkethours
اگر درست است ، از داده های جلسات قبل و بعد از بازار استفاده کنید
نوع داده: BOOL |مقدار پیش فرض: false false
استدلال: DatamappingMode
حالت نقشه برداری قرارداد برای استفاده برای قرارداد آینده مداوم
نوع داده: DatamappingMode؟datamappingMode/onetype |مقدار پیش فرض: هیچ یک تهی نیست
استدلال: dataNormalizationMode
حالت مقیاس بندی قیمت برای استفاده برای قرارداد آینده مداوم
نوع داده: dataNormalizationMode؟dataNormalizationMode/onetype |مقدار پیش فرض: هیچ یک تهی نیست
استدلال: ContractDepThOffset
قرارداد مداوم مداوم که از ماه جبهه فعلی جبران می شود. به عنوان مثال ، 0 ماه جلو است ، 1 قرارداد ماه برگشت است.
نوع داده: int |مقدار پیش فرض: 0
قراردادهای مداوم
به طور پیش فرض ، لاغر فقط در قرارداد مداوم آینده مشترک است. یک قرارداد آینده مداوم بیانگر یک سری از قراردادهای جداگانه است که برای تشکیل قیمت مداوم به هم می خورند. اگر برای گرم کردن یک شاخص به داده های تاریخی زیادی احتیاج دارید ، این شاخص را در سری قیمت مداوم قرارداد اعمال کنید. شیء آینده دارای یک خاصیت نماد و یک خاصیت نقشه برداری است. قیمت ملک نماد قیمت تعدیل شده قرارداد مداوم است. قیمت ملک نقشه برداری قیمت خام قرارداد انتخاب شده در حال حاضر در سری قراردادهای مداوم است.
// دریافت قیمت تعدیل شده قرارداد مداوم VAR AdjustedPrice = اوراق بهادار [_future. symbol] . Price ؛// دریافت قیمت خام قرارداد انتخاب شده در حال حاضر در سری قراردادهای مداوم var rawprice = اوراق بهادار [_future. mapped] . Price ؛
# قیمت تعدیل شده قرارداد مداوم را تنظیم شده_پریس = self. securities [self. future. symbol] دریافت کنید.. price
برای پیکربندی چگونگی شناسایی لاغر قرارداد آینده فعلی در سری مداوم و چگونگی تشکیل قیمت تنظیم شده بین هر قرارداد ، ارائه آرگومان های DataMappingMode ، DataNormalizationMode و ContractDepthOffset به روش AddFuture. شیء آینده که روش AddFuture را باز می گرداند شامل یک ملک نقشه برداری است که به قرارداد فعلی در سری قراردادهای مداوم ارجاع می دهد. با گذشت قراردادها ، املاک نقشه برداری شده به قرارداد بعدی در این سریال اشاره می کند و شما یک شیء SymboldEvent را در روش ONDATA دریافت می کنید. این نمادین به نماد قرارداد قدیمی و نماد قرارداد جدید اشاره می کند.
Public Override void ondata (برش برش) ");>>
def OnData(self, slice: Slice) >هیچ: برای تغییر در slice. symbolchangedevents. values: self. log (f "Rollover از قرارداد از")
حالت های عادی سازی داده ها
استدلال dataNormalizationMode مشخص می کند که چگونه سری قیمت دو قرارداد هنگام وقوع روال قرارداد به هم می خورند. اعضای شمارش DataNormalizatoInMode زیر برای قراردادهای مداوم در دسترس هستند:
ما از کل تاریخچه آینده برای تنظیم قیمت های تاریخی استفاده می کنیم. این فرآیند تضمین می کند که بدون توجه به تاریخ پایان Backtest ، همان قیمت های تنظیم شده را دریافت کنید.
حالت های نقشه برداری داده
آرگومان DatamappingMode هنگام وقوع چرخش قرارداد تعریف می کند. شمارش DatamappingMode اعضای زیر را دارد:
جبران عمق قرارداد
استدلال ContractDepThoffset تعریف می کند که از کدام قرارداد استفاده می شود. 0 (پیش فرض) قرارداد ماه جلو ، 1 قرارداد ماه پس از آن و 3 قرارداد دوم ماه است.
قراردادهای فیلتر
به طور پیش فرض ، Lean هیچ قراردادی را به آینده ای که به روش Ondata منتقل می شود ، اضافه نمی کند. برای افزودن جهانی از قراردادهای آینده ، در روش اولیه ، با روش SetFilter از شیء آینده تماس بگیرید. جدول زیر تکنیک های فیلتر موجود را شرح می دهد:
| روش | شرح |
|---|
| setFilter (int minexpirydays ، int maxexpirydays) setFilter (minexpirydays: int ، maxexpirydays: int) | قراردادهایی را که در محدوده ای که تعیین کرده اید منقضی می شود. |
| SetFilter (Func Universefunc) SetFilter (Universefunc: Callable [[FutureFilterUniverse] ، FutureFilterUniverse]) | قراردادهایی را که یک تابع انتخاب می کند انتخاب می کند. |
# قراردادهایی را که در طی 182 روز منقضی می شود ، انتخاب کنید.
// Select the contracts which expire within 182 days _future.SetFilter(0, 182); // Select the front month contract _future.SetFilter(futureFilterUniverse =>FutureFilterUniverse. frontmonth ()) ؛
در جدول زیر روشهای فیلتر کلاس FuturefilterUniverse شرح داده شده است:
| روش | شرح |
|---|
| Standardsonly () | قراردادهای استاندارد را انتخاب می کند |
| شامل weeklys () | قراردادهای هفتگی غیر استاندارد را انتخاب می کند |
| هفتگی () | قراردادهای هفتگی را انتخاب می کند |
| frontmonth () | قرارداد ماه جلو را انتخاب می کند |
| backmonths () | قراردادهای ماه غیر جبهه را انتخاب می کند |
| backmonth () | قراردادهای ماه برگشت را انتخاب می کند |
| انقضا (Timespan Minexpiry ، Timespan Maxexpiry) انقضا (minexpiry: timedelta ، maxexpiry: timedelta) | قراردادهایی را انتخاب می کند که در طیف وسیعی از تاریخ نسبت به روز جاری منقضی می شوند |
| انقضا (int minexpirydays ، int maxexpirydays) انقضا (minexpirydays: int ، maxexpirydays: int) | قراردادهایی را انتخاب می کند که در طیف وسیعی از تاریخ نسبت به روز جاری منقضی می شوند |
| قراردادها (قراردادهای iEnumerable) قراردادها (قراردادها: لیست [نماد]) | لیستی از قراردادها را انتخاب می کند |
| قراردادها (عملکرد>قراردادهای قرارداد) قراردادها (ContractSelector: قابل تماس[[List[Symbol]], List[Symbol]]) | قراردادهایی را که یک تابع انتخاب کننده انتخاب می کند انتخاب می کند |
| onlyapplyfilteratmarketopen () | به موتور دستور می دهد که در اولین بار از هر روز بازار ، قراردادهای خود را فیلتر کند |
روشهای قبلی یک FutureFilterUniverse را برمی گرداند ، بنابراین می توانید روش ها را به هم زنجیر کنید.
// Select the front month call contracts _future.SetFilter(futureFilterUniverse =>FutureFilterUniverse. standardsonly (). frontmonth ()) ؛
# قراردادهای تماس ماه جلو را انتخاب کنید self. future. setFilter (lambda future_filter_universe: future_filter_universe. standardsonly (). frontmonth ()
همچنین می توانید یک روش فیلتر جدا شده را تعریف کنید.
// در Initialize _future. setFilter (انتخاب کننده) ؛انتخاب کننده خصوصی FutureFilterUniverse (FutureFilterUniverse FutureFilterUniverse)
# In Initialize self.future.SetFilter(self.contract_selector) def contract_selector(self, future_filter_universe: Callable[[FutureFilterUniverse], FutureFilterUniverse]) >FutureFilterUniverse: Retu Future_filter_universe. standardsonly (). FrontMonth ()
برخی از روشهای فیلتر قبلی فقط یک شمارش داخلی را در آینده فایلترنوریو تنظیم می کنند که بعداً در فرآیند فیلتر از آن استفاده می کند. این زیر مجموعه از روشهای فیلتر بلافاصله تعداد اشیاء نماد قرارداد را در FutureFilterUniverse کاهش نمی دهد.
به طور پیش فرض ، Lean قراردادهایی را به Futurechain اضافه می کند که در هر مرحله در الگوریتم شما معیارهای فیلتر را تصویب می کند. اگر یک قرارداد برای مدت زمانی در جهان بوده است که مطابق با تنظیمات MinimumTimeNuniverse باشد و دیگر معیارهای فیلتر را پشت سر نمی گذارد ، لاغر آن را از زنجیره خارج می کند
در زنجیرهای آینده حرکت کنید
اشیاء FuturesChain یک زنجیره کل قراردادها را برای آینده ای اساسی نشان می دهد. آنها خواص زیر را دارند:
برای به دست آوردن FuturesChain ، ویژگی های FuturesChains این برش را با نماد قرارداد مداوم فهرست کنید.
Public Override void ondata (برش برش)x.OpenInterest).Last();>>
def OnData(self, slice: Slice) >هیچ: زنجیره = slice. futureschains. get (self. symbol) اگر زنجیره ای: # مثال: قرارداد را با بیشترین قرارداد بهره باز انتخاب کنید = مرتب شده (زنجیره ای ، کلید = قرارداد لامبدا: contract. openinterest ، معکوس = درست) [0]
همچنین می توانید از طریق ویژگی FuturesChains حلقه کنید تا هر آینده را بدست آورید.
Public Override void ondata (برش برش)>Public Void Ondata (Futureschains Futureschains)>
def OnData(self, slice: Slice) >هیچکدام: برای مداوم_کاتانت_symbol ، زنجیره ای در slice. futureschains. items (): Pass
بسامد انتخاب
به طور پیش فرض ، جهان های آینده در هر مرحله برای انتخاب قراردادهای خود اجرا می شوند. اگر روش تنها ApplyFilterAtmarketOpen را به فیلتر قرارداد خود اضافه کنید ، جهان در اولین بار در اولین بار قراردادها را انتخاب می کند.
همچنین می توانید فیلم های ما را ببینید. همچنین می توانید از طریق Discord با ما در تماس باشید.
آیا این صفحه برایتان سودمند بود؟

مشارکت در مستندات:
فارکس به زبان ساده...
ما را در سایت فارکس به زبان ساده دنبال می کنید
برچسب :
نویسنده : طاهره ایرانی
بازدید : <-PostHit->
تاريخ : سه
شنبه
3 مرداد
1402 ساعت: 23:50