public static IStrategyExecutor_Single CreateExecutor_CodePeriod(string code, int start, int end) { IStrategyExecutorFactory executorFactory = StrategyCenter.Default.GetStrategyExecutorFactory(); StrategyReferedPeriods referedPeriods = GetReferedPeriods(); StrategyForwardPeriod forwardPeriod = new StrategyForwardPeriod(true, KLinePeriod.KLinePeriod_1Minute); StrategyArguments_CodePeriod strategyCodePeriod = new StrategyArguments_CodePeriod(code, start, end, referedPeriods, forwardPeriod); IStrategyExecutor_Single executor = executorFactory.CreateExecutor_History(strategyCodePeriod); return(executor); }
/// <summary> /// 运行策略,并且将策略运行结果绑定到该 /// </summary> public void Run() { if (this.strategyData == null || this.strategyData.Strategy == null) { return; } IStrategy strategy = this.strategyData.Strategy; StrategyReferedPeriods referedPeriods = strategy.GetReferedPeriods(); if (referedPeriods == null) { referedPeriods = new StrategyReferedPeriods(); KLinePeriod currentPeriod = this.compChart.Controller.ChartComponentData.KlinePeriod; referedPeriods.UsedKLinePeriods.Add(currentPeriod); if (strategy is StrategyAbstract) { ((StrategyAbstract)strategy).MainKLinePeriod = currentPeriod; } } KLinePeriod mainPeriod = referedPeriods.MainPeriod; StrategyForwardPeriod forwardPeriod = new StrategyForwardPeriod(referedPeriods.UseTickData, mainPeriod); IStrategyExecutorFactory executorFactory = StrategyCenter.Default.GetStrategyExecutorFactory(); IDataPackage_Code dataPackage = this.compChart.Controller.CurrentNavigater.DataPackage; Dictionary <KLinePeriod, int> dic_KLinePeriod_StartPos = new Dictionary <KLinePeriod, int>(); for (int i = 0; i < referedPeriods.UsedKLinePeriods.Count; i++) { KLinePeriod period = referedPeriods.UsedKLinePeriods[i]; dic_KLinePeriod_StartPos.Add(period, dataPackage.GetKLineData(period).BarPos); } drawOperator = new ChartComponentStrategyDrawer(this.compChart.Drawer, dic_KLinePeriod_StartPos, 0, 0); StrategyArguments_DataPackage strategyDataPackage = new StrategyArguments_DataPackage(dataPackage, referedPeriods, forwardPeriod);; StrategyHelper strategyOperator = new StrategyHelper(); strategyOperator.Drawer = drawOperator; strategyExecutor = executorFactory.CreateExecutor_History(strategyDataPackage); strategyExecutor.Strategy = strategy; //strategyExecutor.Run(); //strategyExecutor.ExecuteFinished += StrategyExecutor_ExecuteFinished; strategyExecutor.Execute(); }