private void DoResetPerTradeDay(AccountClass.Instrument instrument, TradeDayInfo eachResetHistorySetting, InstrumentCloseQuotation closeQuotation)
        {
            var settingInstrument = Settings.Setting.Default.GetInstrument(instrument.Id, eachResetHistorySetting.TradeDay);
            var calculator        = TradeDayCalculatorFactory.CreateForReset(eachResetHistorySetting, closeQuotation, Settings.Setting.Default);

            calculator.Calculate();
            _account.AddBalance(settingInstrument.CurrencyId, calculator.Balance, calculator.ResetTime);
            OrderDayHistorySaver.Save(_account, instrument, calculator, eachResetHistorySetting, settingInstrument);
        }
예제 #2
0
        private decimal RecoverOrderDayHistory(DateTime tradeDay, List <Guid> affectedOrders)
        {
            var                settingInstrument         = _setting.GetInstrument(_instrumentId, tradeDay);
            var                instrumentTradeDaySetting = ResetManager.Default.LoadInstrumentHistorySettingAndData(_account.Id, _instrumentId, tradeDay);
            TradeDayInfo       tradeDayInfo       = new TradeDayInfo(_account, _instrumentId, tradeDay, instrumentTradeDaySetting, affectedOrders, _setting);
            var                closeQuotation     = _InstrumentDayClosePriceFactory.GetQuotation(settingInstrument, tradeDay);
            TradeDayCalculator tradeDayCalculator = TradeDayCalculatorFactory.CreateForHistoryOrder(tradeDayInfo, closeQuotation);

            tradeDayCalculator.Calculate();
            var resetResults = tradeDayCalculator.ResetResults;

            if (resetResults == null)
            {
                return(0m);
            }
            OrderDayHistorySaver.Save(_account, _account.GetInstrument(_instrumentId), tradeDayCalculator, tradeDayInfo, settingInstrument);
            return(tradeDayCalculator.ValuedPLForBook);
        }