public StrategyExecutor_CodePeriod_MainContract(IStrategyCenter strategyCenter, StrategyArguments_CodePeriod strategyArguments) : base(strategyCenter, strategyArguments)
        {
            this.strategyArguments = strategyArguments;
            this.PrepareStrategyHelper();

            IList <ICodePeriod> codePeriods = this.strategyArguments.CodePeriod.Contracts;

            this.dataPackages = new List <IDataPackage_Code>();
            for (int i = 0; i < codePeriods.Count; i++)
            {
                ICodePeriod codePeriod = codePeriods[i];
                this.dataPackages.Add(strategyCenter.BelongDataCenter.DataPackageFactory.CreateDataPackage_Code(codePeriod.Code, codePeriod.StartDate, codePeriod.EndDate));
            }
            this.BuildExecutorInfo();
            for (int i = 0; i < dataPackages.Count; i++)
            {
                IDataPackage_Code dataPackage            = dataPackages[i];
                StrategyHelper    executorStrategyHelper = new StrategyHelper();
                executorStrategyHelper.QueryResultManager = this.strategyHelper.QueryResultManager;
                executorStrategyHelper.Drawer             = null;//TODO
                executorStrategyHelper.Trader             = this.strategyHelper.Trader;

                StrategyArguments_DataPackage strategyArgument = new StrategyArguments_DataPackage(dataPackage, strategyArguments.ReferedPeriods, strategyArguments.ForwardPeriod, executorStrategyHelper);
                StrategyExecutor_DataPackage  executor         = new StrategyExecutor_DataPackage(strategyCenter, strategyArgument, this.strategyExecutorInfo);
                executor.OnBarFinished += Executor_OnBarFinished;
                executor.OnDayFinished += Executor_OnDayFinished;
                this.executors.Add(executor);
            }
        }
示例#2
0
 public StrategyExecutorAbstract(IStrategyCenter strategyCenter, StrategyArgumentsAbstract strategyArguments)
 {
     this.strategyCenter = strategyCenter;
     this.forwardPeriod  = strategyArguments.ForwardPeriod;
     this.referedPeriods = strategyArguments.ReferedPeriods;
     this.traderSetting  = strategyArguments.TraderSetting;
     this.strategyHelper = strategyArguments.StrategyHelper;
     this.isSaveResult   = strategyArguments.IsSaveResult;
 }
 public StrategyExecutor_DataPackage(IStrategyCenter strategyCenter, StrategyArguments_DataPackage strategyArguments, StrategyExecutorInfo strategyExecutorInfo) : base(strategyCenter, strategyArguments)
 {
     this.dataPackage = strategyArguments.DataPackage;
     this.codePeriod  = new CodePeriod(dataPackage.Code, dataPackage.StartDate, dataPackage.EndDate);
     if (strategyExecutorInfo == null)
     {
         this.InitStrategyExecutorInfo();
     }
     else
     {
         this.strategyExecutorInfo = strategyExecutorInfo;
     }
 }
示例#4
0
        public StrategyExecutor_Multi(IStrategyCenter strategyCenter, StrategyArguments_CodePeriodList arguments)
        {
            this.strategyCenter = strategyCenter;
            this.arguments      = arguments;

            IList <ICodePeriod> codePeriods = this.arguments.CodePeriodPackage.CodePeriods;

            for (int i = 0; i < codePeriods.Count; i++)
            {
                ICodePeriod codePeriod = codePeriods[i];
                StrategyArguments_CodePeriod strategyCodePeriod = new StrategyArguments_CodePeriod(codePeriod, arguments.ReferedPeriods, arguments.ForwardPeriod);
                IStrategyExecutor_Single     executor           = strategyCenter.GetStrategyExecutorFactory().CreateExecutor_History(strategyCodePeriod);
                this.executors.Add(executor);
            }
        }
示例#5
0
        private void InitByCodePeriod(IStrategyCenter strategyCenter, StrategyArguments_CodePeriod strategyArguments)
        {
            ICodePeriod codePeriod = strategyArguments.CodePeriod;

            if (codePeriod.IsFromContracts)
            {
                this.strategyExecutor = new StrategyExecutor_CodePeriod_MainContract(strategyCenter, strategyArguments);
            }
            else
            {
                IDataPackage_Code             dataPackage         = strategyCenter.BelongDataCenter.DataPackageFactory.CreateDataPackage_Code(codePeriod.Code, codePeriod.StartDate, codePeriod.EndDate);
                StrategyArguments_DataPackage strategyDataPackage = new StrategyArguments_DataPackage(dataPackage, strategyArguments.ReferedPeriods, strategyArguments.ForwardPeriod);
                this.strategyExecutor = strategyCenter.GetStrategyExecutorFactory().CreateExecutor_History(strategyDataPackage);
            }

            this.strategyExecutor.OnStart       += StrategyExecutor_OnStart;;
            this.strategyExecutor.OnBarFinished += StrategyExecutor_OnBarFinished;
            this.strategyExecutor.OnDayFinished += StrategyExecutor_OnDayFinished;
            this.strategyExecutor.OnCanceled    += StrategyExecutor_OnCanceled;
            this.strategyExecutor.OnFinished    += StrategyExecutor_OnFinished;
        }
示例#6
0
 public StrategyExecutorFactory(IStrategyCenter strategyCenter)
 {
     this.strategyCenter = strategyCenter;
 }
 public StrategyExecutor_DataPackage(IStrategyCenter strategyCenter, StrategyArguments_DataPackage strategyArguments) : this(strategyCenter, strategyArguments, null)
 {
 }
示例#8
0
 public StrategyExecutor_CodePeriod(IStrategyCenter strategyCenter, StrategyArguments_CodePeriod strategyArguments)
 {
     InitByCodePeriod(strategyCenter, strategyArguments);
 }