示例#1
0
 public MockStrategy_Ma()
 {
     strategyPeriods             = new StrategyReferedPeriods();
     strategyPeriods.UseTickData = false;
     strategyPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Minute);
     strategyPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_5Minute);
 }
示例#2
0
        private void CompChart_OnChartRefresh(object sender, ChartComponentRefreshArguments arg)
        {
            if (this.strategyData == null || this.strategyData.Strategy == null)
            {
                return;
            }
            IStrategy strategy = this.strategyData.Strategy;
            //if (!arg.DataRefreshed)
            //    return;
            StrategyReferedPeriods referedPeriods = strategy.GetReferedPeriods();

            //当K线图上数据变化,需要修改策略画的图形
            //如果画的是K线,且K线周期发生了变化,那么适应全周期的策略需要重新计算
            if (!arg.PrevCompData.KlinePeriod.Equals(arg.CurrentCompData.KlinePeriod) && referedPeriods == null)
            {
                //重置当前策略
                this.strategyData.RefreshStrategy();
                strategy = strategyData.Strategy;
                strategy.Parameters.SetParameterValue(strategy.Parameters.GetParameterValues());
                Run();
            }
            else
            {
                Refresh();
            }
        }
示例#3
0
        public IStrategyExecutor CreateExecutor(IDataPackage_Code dataPackage, IStrategy strategy, KLinePeriod period)
        {
            StrategyReferedPeriods referedPeriods = new StrategyReferedPeriods();

            referedPeriods.UsedKLinePeriods.Add(period);
            StrategyForwardPeriod forwardPeriod = new StrategyForwardPeriod(false, period);

            return(StrategyCenter.Default.GetStrategyExecutorFactory_History().CreateExecutorByDataPackage(dataPackage, referedPeriods, forwardPeriod, compChart1.StrategyHelper));
        }
示例#4
0
        //private List<>

        public Strategy_CnFutures()
        {
            refered = new StrategyReferedPeriods();
            refered.UseTimeLineData = false;
            refered.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Minute);
            //refered.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_15Minute);
            //refered.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Day);
            refered.UseTickData = false;
        }
示例#5
0
        public override StrategyReferedPeriods GetReferedPeriods()
        {
            StrategyReferedPeriods referPeriods = new StrategyReferedPeriods();

            referPeriods.UseTickData = false;
            referPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Minute);
            referPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_15Minute);
            return(referPeriods);
        }
示例#6
0
        public Strategy_Demo_MinuteImport()
        {
            referedPeriods = new StrategyReferedPeriods();
            referedPeriods.isReferTimeLineData = false;
            referedPeriods.UseTickData         = false;
            referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_5Minute);
            referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_15Minute);

            this.ImportStrategies.Add(strategy_Ma_5Minute_5);
        }
示例#7
0
        private void Controller_OnDataChanged(object sender, CompDataChangeArgument arg)
        {
            //if (strategy == null)
            //    return;
            StrategyReferedPeriods referedPeriods = strategy.GetReferedPeriods();

            //当K线图上数据变化,需要修改策略画的图形
            //如果画的是K线,且K线周期发生了变化,那么适应全周期的策略需要重新计算
            if (!arg.PrevCompData.KlinePeriod.Equals(arg.CurrentCompData.KlinePeriod) && referedPeriods == null)
            {
                Run();
            }
            else
            {
                Refresh();
            }
        }
示例#8
0
        /// <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();
        }
示例#9
0
        private static RealTimeReader_Strategy GetRealTimeReader(string code, int start, int endDate, bool useTickData)
        {
            StrategyReferedPeriods referedPeriods = new StrategyReferedPeriods();

            referedPeriods.isReferTimeLineData = false;
            referedPeriods.UseTickData         = useTickData;
            referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Minute);

            RealTimeReader_StrategyArguments args = new RealTimeReader_StrategyArguments();

            args.Code               = code;
            args.StartDate          = start;
            args.EndDate            = endDate;
            args.ReferedPeriods     = referedPeriods;
            args.IsTickForward      = useTickData;
            args.ForwardKLinePeriod = KLinePeriod.KLinePeriod_1Minute;

            RealTimeReader_Strategy realTimeReader = new RealTimeReader_Strategy(CommonData.GetDataReader(), args);

            return(realTimeReader);
        }
示例#10
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();
        }
示例#11
0
文件: FormChart2.cs 项目: wanwei/sc2
        private void RunStrategy(IStrategy strategy)
        {
            IDataPackage_Code      dataPackage    = this.compChart1.CompChartData.DataPackage;
            StrategyReferedPeriods referedPeriods = new StrategyReferedPeriods();
            //compChart1.KlinePeriod
            KLinePeriod period = compChart1.GetKLinePeriod();

            referedPeriods.UsedKLinePeriods.Add(period);
            //referedPeriods.UsedKLinePeriods.Add(this.n)
            StrategyForwardPeriod forwardPeriod  = new StrategyForwardPeriod(false, period);
            IStrategyExecutor     strategyRunner = StrategyCenter.Default.GetStrategyExecutorFactory_History().CreateExecutorByDataPackage(dataPackage, referedPeriods, forwardPeriod, compChart1.StrategyHelper);

            //compChart1.StrategyHelper.DrawHelper.ClearShapes();
            //compChart1.CurrentPriceRectDrawer.cl
            //compChart1.CurrentPriceRectDrawer.ClearPriceShapes();
            if (strategy is StrategyAbstract)
            {
                ((StrategyAbstract)strategy).MainKLinePeriod = period;
            }
            strategyRunner.SetStrategy(strategy);
            strategyRunner.Run();
            compChart1.Refresh();
        }
示例#12
0
        //[TestMethod]
        public void TestMethod1()
        {
            //IDataReader dataReader = CommonData.GetDataReader();
            //IDataPackage dataPackage = CommonData.g
            string code    = "RB1710";
            int    start   = 20170601;
            int    endDate = 20170603;

            IDataPackage_Code dataPackage = CommonData.GetDataPackage(code, start, endDate);

            //StrategyRunnerArguments args = new StrategyRunnerArguments();
            //args.Code = code;
            //args.StartDate = start;
            //args.EndDate = endDate;
            //args.IsTickForward = true;
            //args.ForwardKLinePeriod = KLinePeriod.KLinePeriod_1Minute;
            StrategyReferedPeriods referedPeriods = new StrategyReferedPeriods();

            referedPeriods.UseTickData = true;
            referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Minute);
            data.forward.ForwardPeriod forwardPeriod = new data.forward.ForwardPeriod(true, KLinePeriod.KLinePeriod_1Minute);
            //StrategyExecutor_History runner = new StrategyExecutor_History(dataReader, args);
            StrategyExecutor_History runner = new StrategyExecutor_History(dataPackage, referedPeriods, forwardPeriod);
        }
示例#13
0
 public MockStrategy(StrategyReferedPeriods referedPeriods)
 {
     this.referedPeriods = referedPeriods;
 }