public Tuple<AssetRateDataLog, AdjRateDataLog> Calculate(MarketDataSet marketData)
        {
            DateTime curDate = this.InputData.StartDate;

            AssetRateDataLog assetLog = new AssetRateDataLog();
            AdjRateDataLog adjLog = new AdjRateDataLog();

            while (curDate <= this.InputData.EndDate)
            {
                if (marketData.IsExistDate(curDate))
                {
                    AssetRateDatum assetDatum = this.Alloc.CalculateAndGetAssetRateDatum(curDate, marketData);
                    AdjRateDatum adjDatum = GetAdjRateDatum(curDate, marketData, adjLog);
                    assetDatum.Multiply(adjDatum);
                    assetDatum.SetScale();
                    assetLog.Add(curDate, assetDatum);
                }
                curDate = curDate.AddDays(1);
            }

            return new Tuple<AssetRateDataLog, AdjRateDataLog>(assetLog, adjLog);
        }
        public AssetRateDataLog Execute(long caseNumber)
        {
            DateTime curDate = this.Input.StartDate;
            AssetRateDataLog log = new AssetRateDataLog();

            IAdjustment adj = this._adjs[(int)caseNumber];
            log.ExperimentKey = _descriptions[(int)caseNumber];

            while (curDate <= this.Input.EndDate)
            {
                if (this._readyData.IsExistDate(curDate))
                {
                    AssetRateDatum aw = this._allocBase.CalculateAndGetAssetRateDatum(curDate, this._readyData);
                    AdjRateDatum aa = adj.CalculateAssetWeight(null, curDate, _readyData);
                    aw.Multiply(aa);
                    aw.SetScale();
                    log.Add(curDate, aw);
                }

                curDate = curDate.AddDays(1);
            }

            return log;
        }
        public AssetRateDataLog Execute(long caseNumber)
        {
            IAlloc allocBase = this._allocBases[(int)caseNumber];
            DateTime curDate = this.Input.StartDate;
            AssetRateDataLog log = new AssetRateDataLog();

            _curKey = String.Format("SAO({0})", allocBase.GetKey());

            while (curDate <= this.Input.EndDate)
            {
                if (this._readyData.IsExistDate(curDate))
                {
                    AssetRateDatum aw = allocBase.CalculateAndGetAssetRateDatum(curDate, this._readyData);
                    AdjRateDatum aa = new AdjRateDatum(1, 1, 1);
                    aw.Multiply(aa);
                    aw.SetScale();
                    log.Add(curDate, aw);
                }

                curDate = curDate.AddDays(1);
            }

            return log;
        }
Beispiel #4
0
        public AssetRateDataLog Execute(long caseNumber)
        {
            DateTime curDate = this.Input.StartDate;
            AssetRateDataLog log = new AssetRateDataLog();

            _opSet.SetOpFlag(caseNumber);

            this._adjustment.Clear();

            while (curDate <= this.Input.EndDate)
            {
                if (this._readyData.IsExistDate(curDate))
                {
                    AssetRateDatum aw = this._allocBase.CalculateAndGetAssetRateDatum(curDate, this._readyData);
                    AdjRateDatum aa = this._adjustment.CalculateAssetWeight(_opSet, curDate, _readyData);
                    aw.Multiply(aa);
                    aw.SetScale();
                    log.Add(curDate, aw);
                }

                curDate = curDate.AddDays(1);
            }

            return log;
        }