مواد پر جائیں
لائبریری کی تمام دستاویزات

لین کے ایکسپائری ہیلپر سے انسائٹ کی میعاد طے کرنا

مضمون Strategy library · مصنف: QuantConnect

خلاصہ

لین فریم ورک کی یہ مثال دکھاتی ہے کہ الفا ماڈل ایکسپائری ہیلپر استعمال کر کے پیدا کردہ ٹریڈنگ انسائٹس کے بند ہونے کا وقت کیسے مقرر کر سکتا ہے۔ الگورتھم میں دستی طور پر منتخب کردہ US ایکویٹی سکیورٹیز کا مجموعہ شامل ہے، جس میں SPY، فی گھنٹہ ڈیٹا، برابر وزن والا پورٹ فولیو بنانا، فوری عمل درآمد، اور ہر سکیورٹی کے لیے ڈرا ڈاؤن کی حد شامل ہیں۔ مزید انسائٹس پیدا کرنے سے پہلے اس کا الفا ماڈل مقررہ اپ ڈیٹ وقت تک انتظار کرتا ہے۔

مثال ہفتے کے دن کے مطابق ایکسپائری چنتی ہے: ایک ماہ، مہینے کا اختتام، ہفتے کا اختتام، یا دن کا اختتام۔ یہ پیدا کردہ انسائٹ کے بند ہونے کا وقت اور ہفتے کا دن بھی لاگ کرتی ہے، جس سے شیڈول کا جائزہ لیا جا سکتا ہے۔ یہ فریم ورک کے طریقۂ کار کی مثال ہے، ٹیسٹ شدہ ٹریڈنگ سگنل نہیں: ماڈل ہمیشہ اوپر کی سمت مقرر کرتا ہے، اور دستاویز سرمایہ کاری کی کارکردگی یا اس ثبوت کی رپورٹ نہیں کرتی کہ وقت کے یہ انتخاب منافع بخش ہیں۔ نمونے کی محدود تاریخ کی حد اور ایک ٹکر پر مشتمل یونیورس سے بھی اخذ کیے جانے والے نتائج محدود ہوتے ہیں۔ اس کی اہمیت انسائٹس کی مدتِ اثر سنبھالنے کی عملی مثال کے طور پر ہے، مکمل اسٹریٹیجی کی سفارش کے طور پر نہیں۔

اہم خیالات

  • الفا ماڈل ایکسپائری ہیلپرز سے یہ مقرر کر سکتا ہے کہ پیدا کردہ انسائٹس کب بند ہوں۔
  • مثال موجودہ ہفتے کے دن کے مطابق ایکسپائری کا وقفہ منتخب کرتی ہے۔
  • مقررہ اگلے اپ ڈیٹ کا وقت ماڈل کو ہر ڈیٹا اپ ڈیٹ پر انسائٹس جاری کرنے سے روکتا ہے۔
  • ایکسپائری کے رویے کا جائزہ لینے کے لیے انسائٹس کے بند ہونے کے اوقات لاگ کیے جا سکتے ہیں۔
  • یہ مثال فریم ورک کے استعمال کی وضاحت کرتی ہے اور ٹریڈنگ کارکردگی کا ثبوت فراہم نہیں کرتی۔

ٹیگز

مکمل متن
# ExpiryHelperAlphaModelFrameworkAlgorithm


# ExpiryHelperAlphaModelFrameworkAlgorithm









Expiry Helper framework algorithm uses Expiry helper class in an Alpha Model

Expiry Helper algorithm uses Expiry helper class in an Alpha Model

## Source (Apache-2.0)

```python
# QUANTCONNECT.COM - Democratizing Finance, Empowering Individuals.
# Lean Algorithmic Trading Engine v2.0. Copyright 2014 QuantConnect Corporation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

from AlgorithmImports import *

### <summary>
### Expiry Helper algorithm uses Expiry helper class in an Alpha Model
### </summary>
class ExpiryHelperAlphaModelFrameworkAlgorithm(QCAlgorithm):
    '''Expiry Helper framework algorithm uses Expiry helper class in an Alpha Model'''

    def initialize(self) -> None:
        ''' Initialise the data and resolution required, as well as the cash and start-end dates for your algorithm. All algorithms must initialized.'''

        # Set requested data resolution
        self.universe_settings.resolution = Resolution.HOUR

        self.set_start_date(2013,10,7)   #Set Start Date
        self.set_end_date(2014,1,1)      #Set End Date
        self.set_cash(100000)           #Set Strategy Cash

        symbols = [ Symbol.create("SPY", SecurityType.EQUITY, Market.USA) ]

        # set algorithm framework models
        self.set_universe_selection(ManualUniverseSelectionModel(symbols))
        self.set_alpha(self.ExpiryHelperAlphaModel())
        self.set_portfolio_construction(EqualWeightingPortfolioConstructionModel())
        self.set_execution(ImmediateExecutionModel())
        self.set_risk_management(MaximumDrawdownPercentPerSecurity(0.01))

        self.insights_generated += self.on_insights_generated

    def on_insights_generated(self, s: IAlgorithm, e: GeneratedInsightsCollection) -> None:
        for insight in e.insights:
            self.log(f"{e.date_time_utc.isoweekday()}: Close Time {insight.close_time_utc} {insight.close_time_utc.isoweekday()}")

    class ExpiryHelperAlphaModel(AlphaModel):
        _next_update = None
        _direction = InsightDirection.UP

        def update(self, algorithm: QCAlgorithm, data: Slice) -> list[Insight]:
            if self._next_update and self._next_update > algorithm.time:
                return []

            expiry = Expiry.END_OF_DAY

            # Use the Expiry helper to calculate a date/time in the future
            self._next_update = expiry(algorithm.time)

            weekday = algorithm.time.isoweekday()

            insights = []
            for symbol in data.bars.keys():
                # Expected CloseTime: next month on the same day and time
                if weekday == 1:
                    insights.append(Insight.price(symbol, Expiry.ONE_MONTH, self._direction))
                # Expected CloseTime: next month on the 1st at market open time
                elif weekday == 2:
                    insights.append(Insight.price(symbol, Expiry.END_OF_MONTH, self._direction))
                # Expected CloseTime: next Monday at market open time
                elif weekday == 3:
                    insights.append(Insight.price(symbol, Expiry.END_OF_WEEK, self._direction))
                # Expected CloseTime: next day (Friday) at market open time
                elif weekday == 4:
                    insights.append(Insight.price(symbol, Expiry.END_OF_DAY, self._direction))

            return insights

```

ماخذ کا حوالہ دیتے ہوئے مکمل متن دکھایا گیا ہے، ماخذ کے لائسنس کے تحت۔ لائسنس: Apache-2.0

یہ خلاصہ اصل ماخذ سے Stratmill کے تحقیقی ایجنٹ نے لکھا ہے؛ یہ ماخذ کی نقل نہیں۔