Esempio n. 1
0
        void simulationPreBarsSubstitute()
        {
            bool shouldRaise = false;

            if (this.BarsOriginal == null)
            {
                shouldRaise = true;
            }
            else
            {
                if (this.BarsOriginal != this.Executor.Bars)
                {
                    shouldRaise = true;
                }
            }
            try {
                if (shouldRaise)
                {
                    this.BarsOriginal = this.Executor.Bars;
                    this.Executor.EventGenerator.RaiseBacktesterBarsIdenticalButEmptySubstitutedToGrowStep1of4();
                }

                this.BarsSimulating            = this.BarsOriginal.CloneNoBars("BACKTEST for " + this.BarsOriginal);
                this.BacktestDataSource        = new BacktestDataSource(this.BarsSimulating);
                this.BarsSimulating.DataSource = this.BacktestDataSource;

                this.BacktestDataSource.StreamingProvider.ConsumerQuoteRegister(
                    this.BarsSimulating.Symbol, this.BarsSimulating.ScaleInterval, this.backtestQuoteBarConsumer);
                this.BacktestDataSource.StreamingProvider.ConsumerBarRegister(
                    this.BarsSimulating.Symbol, this.BarsSimulating.ScaleInterval, this.backtestQuoteBarConsumer);

                this.Executor.BacktestContextInitialize(this.BarsSimulating);

                // consumers will expect this.BarsOriginal != null
                this.Executor.EventGenerator.RaiseBacktesterSimulationContextInitializedStep2of4();
            } catch (Exception e) {
                string msg = "PreBarsSubstitute(): Backtester caught a long beard...";
                this.Executor.PopupException(msg, e);
            } finally {
                this.BarsSimulatedSoFar = 0;
                setBacktestAborted      = false;
                this.BacktestAborted.Reset();
                this.RequestingBacktestAbort.Reset();
                //this.BacktestIsRunningBool = true;
                this.BacktestIsRunning.Set();
                // Calling ManualResetEvent.Reset closes the gate.
                // Threads that call WaitOne on a closed gate will block
                this.BacktestCompletedQuotesCanGo.Reset();
            }
        }
		void simulationPreBarsSubstitute() {
			bool shouldRaise = false;
			if (this.BarsOriginal == null) {
				shouldRaise = true;
			} else {
				if (this.BarsOriginal != this.Executor.Bars) shouldRaise = true;
			}
			try {
				if (shouldRaise) {
					this.BarsOriginal = this.Executor.Bars;
					this.Executor.EventGenerator.RaiseBacktesterBarsIdenticalButEmptySubstitutedToGrowStep1of4();
				}

				this.BarsSimulating = this.BarsOriginal.CloneNoBars("BACKTEST for " + this.BarsOriginal);
				this.BacktestDataSource = new BacktestDataSource(this.BarsSimulating);
				this.BarsSimulating.DataSource = this.BacktestDataSource;

				this.BacktestDataSource.StreamingProvider.ConsumerQuoteRegister(
					this.BarsSimulating.Symbol, this.BarsSimulating.ScaleInterval, this.backtestQuoteBarConsumer);
				this.BacktestDataSource.StreamingProvider.ConsumerBarRegister(
					this.BarsSimulating.Symbol, this.BarsSimulating.ScaleInterval, this.backtestQuoteBarConsumer);

				this.Executor.BacktestContextInitialize(this.BarsSimulating);
				
				// consumers will expect this.BarsOriginal != null
				this.Executor.EventGenerator.RaiseBacktesterSimulationContextInitializedStep2of4();
			} catch (Exception e) {
				string msg = "PreBarsSubstitute(): Backtester caught a long beard...";
				this.Executor.PopupException(msg, e);
			} finally {
				this.BarsSimulatedSoFar = 0;
				setBacktestAborted = false;
				this.BacktestAborted.Reset();
				this.RequestingBacktestAbort.Reset();
				//this.BacktestIsRunningBool = true;
				this.BacktestIsRunning.Set();
				// Calling ManualResetEvent.Reset closes the gate.
				// Threads that call WaitOne on a closed gate will block
				this.BacktestCompletedQuotesCanGo.Reset();
			}
		}