Esempio n. 1
0
 public ExecutionStrategy(StrategyOperator op, params Rule[] rs)
 {
     rules = new List <Rule>();
     if (rules != null)
     {
         rules.AddRange(rs);
     }
     Operator = op;
     next     = null;
 }
Esempio n. 2
0
        private void writeStrategyOperator(StrategyOperator op)
        {
            switch (op)
            {
            case StrategyOperator.SEQUENCE: owt.Write("\"sequence\""); break;

            case StrategyOperator.ARBITRARY: owt.Write("\"aribtrary\""); break;

            case StrategyOperator.MAX: owt.Write("\"max\""); break;

            case StrategyOperator.CHOICE: owt.Write("\"choice\""); break;
            }
        }
Esempio n. 3
0
        /// <summary>
        /// 运行策略,并且将策略运行结果绑定到该
        /// </summary>
        public void Run()
        {
            Strategy_MultiMa strategy = new Strategy_MultiMa();

            strategy.MainKLinePeriod = this.compChart.Controller.CompData.KlinePeriod;
            this.strategy            = strategy;
            if (this.strategy == null)
            {
                return;
            }
            StrategyReferedPeriods referedPeriods = this.strategy.GetReferedPeriods();

            if (referedPeriods == null)
            {
                referedPeriods = new StrategyReferedPeriods();
                KLinePeriod currentPeriod = this.compChart.Controller.CompData.KlinePeriod;
                referedPeriods.UsedKLinePeriods.Add(currentPeriod);
            }
            KLinePeriod           mainPeriod    = referedPeriods.MainPeriod;
            StrategyForwardPeriod forwardPeriod = new StrategyForwardPeriod(referedPeriods.UseTickData, mainPeriod);

            IStrategyExecutorFactory_History executorFactory = StrategyCenter.Default.GetStrategyExecutorFactory_History();
            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 StrategyDrawOperator(this.compChart.Drawer, dic_KLinePeriod_StartPos, 0, 0);
            IStrategyOperator strategyOperator = new StrategyOperator(drawOperator);
            IStrategyExecutor executor         = executorFactory.CreateExecutorByDataPackage(dataPackage, referedPeriods, forwardPeriod, strategyOperator);

            executor.SetStrategy(strategy);
            executor.Run();
        }
 public ExecutionStrategyHelper(StrategyOperator op)
     : this()
 {
     Operator = op;
 }