Ejemplo n.º 1
0
 public StrategyResult_CodePeriod(ICodePeriod codePeriod, StrategyForwardPeriod forwardPeriod, StrategyReferedPeriods referedPeriods, IStrategyDrawer strategyDrawer, IStrategyTrader strategyTrader)
 {
     this.codePeriod     = codePeriod;
     this.forwardPeriod  = forwardPeriod;
     this.referedPeriods = referedPeriods;
     this.strategyDrawer = strategyDrawer;
     this.strategyTrader = strategyTrader;
 }
Ejemplo n.º 2
0
        public override void OnEnd(Object sender, IStrategyOnEndArgument argument)
        {
            IStrategyDrawer drawHelper = StrategyOperator.DrawOperator.GetDrawer_KLine(MainKLinePeriod);

            //drawHelper.DrawPoints(arr_Price_Top, System.Drawing.Color.Blue);
            //drawHelper.DrawPoints(arr_Price_Bottom, System.Drawing.Color.White);

            drawHelper.DrawPoints(arr_Price_SureTop, System.Drawing.Color.Red);
            drawHelper.DrawPoints(arr_Price_SureBottom, System.Drawing.Color.Green);
        }
Ejemplo n.º 3
0
        public override void OnEnd(Object sender, IStrategyOnEndArgument argument)
        {
            IStrategyDrawer drawHelper = StrategyOperator.DrawOperator.GetDrawer_KLine(MainKLinePeriod);

            drawHelper.DrawPolyLine(maPrice_1, color_1);
            drawHelper.DrawPolyLine(maPrice_2, color_2);
            drawHelper.DrawPolyLine(maPrice_3, color_3);
            drawHelper.DrawPolyLine(maPrice_4, color_4);
            drawHelper.DrawPolyLine(maPrice_5, color_5);
            drawHelper.DrawTitle(1, "MA组合(" + Param_1 + "," + Param_2 + "," + Param_3 + "," + Param_4 + "," + Param_5 + ")", color_2);
        }
Ejemplo n.º 4
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();
        }
Ejemplo n.º 5
0
        public void Refresh()
        {
            CompData  compData  = this.compChart.Controller.CompData;
            ChartType chartType = compData.ChartType;

            if (chartType == ChartType.KLine)
            {
                IStrategyDrawer drawer = drawOperator.GetDrawer_KLine(compData.KlinePeriod);
                drawer.Refresh();
            }
            else if (chartType == ChartType.TimeLine)
            {
                drawOperator.GetDrawer_TimeLine().Refresh();
            }
            else if (chartType == ChartType.Tick)
            {
                drawOperator.GetDrawer_Tick().Refresh();
            }
        }
Ejemplo n.º 6
0
 public void Load(IList <XmlElement> xmlElems)
 {
     LoadMain(xmlElems[0]);
     if (xmlElems.Count > 1)
     {
         XmlElement elemShapes = xmlElems[1];
         if (elemShapes != null)
         {
             this.strategyDrawer = new StrategyDrawer();
             this.strategyDrawer.Load(elemShapes);
         }
     }
     if (xmlElems.Count > 2)
     {
         XmlElement elemTrader = xmlElems[2];
         if (elemTrader != null)
         {
             this.strategyTrader = new StrategyTrader_History();
             this.StrategyTrader.Load(elemTrader);
         }
     }
 }
Ejemplo n.º 7
0
 public FormStrategy(CodePeriodListChooser codePackageInfo, IStrategyData strategyData, IStrategyDrawer drawer)
 {
     this.codePackageInfo = codePackageInfo;
     this.strategyData    = strategyData;
 }