Beispiel #1
0
 public ChartComponentController(IDataNavigate dataNavigater, ChartComponentData ChartComponentData)
 {
     this.chartComponentData             = ChartComponentData;
     this.prevChartComponentData         = (ChartComponentData)ChartComponentData.Clone();
     this.currentNavigater               = dataNavigater;
     this.currentNavigater.OnNavigateTo += CurrentNavigater_OnNavigateTo;
 }
Beispiel #2
0
        public Object Clone()
        {
            ChartComponentData compData = new ChartComponentData(this.code, this.time, this.klinePeriod, this.showKLineIndex);

            compData.chartType = this.chartType;
            return(compData);
        }
Beispiel #3
0
 public ChartComponentData(ChartComponentData compData)
 {
     this.code           = compData.code;
     this.time           = compData.time;
     this.chartType      = compData.chartType;
     this.klinePeriod    = compData.klinePeriod;
     this.showKLineIndex = compData.showKLineIndex;
 }
Beispiel #4
0
 public ChartComponentDrawer(Control control, ChartComponentController compDataController)
 {
     this.control            = control;
     this.compDataController = compDataController;
     this.compData           = compDataController.ChartComponentData;
     this.compDataController.OnDataChanged += CompDataController_OnDataChanged;
     this.Init();
 }
Beispiel #5
0
        public override bool Equals(object obj)
        {
            if (!(obj is ChartComponentData))
            {
                return(false);
            }
            ChartComponentData compData = (ChartComponentData)obj;

            return(Object.Equals(this.code, compData.code) && this.time == compData.time &&
                   this.chartType == compData.chartType && this.klinePeriod == compData.klinePeriod &&
                   this.showKLineIndex == compData.showKLineIndex);
        }
Beispiel #6
0
        public void Init(IDataCenter dataCenter, string code, double time, KLinePeriod klinePeriod)
        {
            this.dataCenter = dataCenter;
            IDataNavigate      dataNavigater  = dataCenter.DataNavigateFactory.CreateDataNavigate(code, time);
            IKLineData         klineData      = dataNavigater.GetKLineData(klinePeriod);
            int                showKLineIndex = klineData.BarPos;
            ChartComponentData compData       = new ChartComponentData(code, time, klinePeriod, showKLineIndex);

            this.controller = new ChartComponentController(dataNavigater, compData);
            this.drawer     = new ChartComponentDrawer(this, controller);
            //this.drawer.GraphicData_Candle.OnGraphicDataChange += GraphicData_Candle_OnGraphicDataChange;
            this.drawer.GraphicDrawer.AfterGraphicPaint += GraphicDrawer_AfterGraphicPaint;
        }
Beispiel #7
0
 private void GraphicDrawer_AfterGraphicPaint(object sender, GraphicRefreshArgs e)
 {
     if (OnChartRefresh != null)
     {
         OnChartRefresh(this, new ChartComponentRefreshArguments(prevCompData, controller.ChartComponentData));
     }
     if (prevCompData == null)
     {
         prevCompData = new ChartComponentData(controller.ChartComponentData);
     }
     else
     {
         prevCompData.CopyFrom(controller.ChartComponentData);
     }
 }
Beispiel #8
0
 private void GraphicData_Candle_OnGraphicDataChange(object sender, GraphicDataChangeArgument arg)
 {
     if (OnChartRefresh != null)
     {
         OnChartRefresh(this, new ChartComponentRefreshArguments(prevCompData, controller.ChartComponentData));
     }
     if (prevCompData == null)
     {
         prevCompData = new ChartComponentData(controller.ChartComponentData);
     }
     else
     {
         prevCompData.CopyFrom(controller.ChartComponentData);
     }
 }
Beispiel #9
0
        public void Refresh()
        {
            ChartComponentData compData  = this.compChart.Controller.ChartComponentData;
            ChartType          chartType = compData.ChartType;

            if (chartType == ChartType.KLine)
            {
                IStrategyDrawer_PriceRect 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();
        }
Beispiel #10
0
        public void TestController()
        {
            string                   code           = "rb1710";
            double                   time           = 20170601.093055;
            KLinePeriod              klinePeriod    = KLinePeriod.KLinePeriod_1Minute;
            IDataNavigate            dataNavigater  = DataCenter.Default.DataNavigateFactory.CreateDataNavigate(code, time);
            IKLineData               klineData      = dataNavigater.GetKLineData(klinePeriod);
            int                      showKLineIndex = klineData.BarPos;
            ChartComponentData       compData       = new ChartComponentData(code, time, klinePeriod, showKLineIndex);
            ChartComponentController controller     = new ChartComponentController(dataNavigater, compData);

            IRealTimeData_Code reader       = controller.CurrentRealTimeDataReader_Code;
            IKLineData         currentKLine = reader.GetKLineData(klinePeriod);

            Assert.AreEqual(compData.Code, currentKLine.Code);
            Assert.AreEqual(compData.Time, currentKLine.Time);
            Assert.AreEqual(compData.ShowKLineIndex, currentKLine.BarPos);
            Console.WriteLine(currentKLine);

            controller.Change("rb1801");
            currentKLine = reader.GetKLineData(klinePeriod);
            Assert.AreEqual(compData.Code, currentKLine.Code);
            Assert.AreEqual(compData.Time, currentKLine.Time);
            Assert.AreEqual(compData.ShowKLineIndex, currentKLine.BarPos);
            Console.WriteLine(currentKLine);

            controller.Change(code);
            currentKLine = reader.GetKLineData(klinePeriod);
            Assert.AreEqual(compData.Code, currentKLine.Code);
            Assert.AreEqual(compData.Time, currentKLine.Time);
            Assert.AreEqual(compData.ShowKLineIndex, currentKLine.BarPos);
            Console.WriteLine(currentKLine);
            controller.ChangeChartType(ChartType.TimeLine);
            Console.WriteLine(compData);

            controller.Change(20170601.100531);
            controller.ChangeChartType(ChartType.KLine);
            Console.WriteLine(reader.GetKLineData(compData.KlinePeriod));
            Console.WriteLine(compData);

            controller.Change("rb1801", 20171014.093000, KLinePeriod.KLinePeriod_1Minute);
            Console.WriteLine(compData);
        }
Beispiel #11
0
        public void TestPlay()
        {
            string                   code           = "rb1710";
            double                   time           = 20170601.093055;
            IDataNavigate            dataNavigater  = DataCenter.Default.DataNavigateFactory.CreateDataNavigate(code, time);
            KLinePeriod              klinePeriod    = KLinePeriod.KLinePeriod_1Minute;
            IKLineData               klineData      = dataNavigater.GetKLineData(klinePeriod);
            int                      showKLineIndex = klineData.BarPos;
            ChartComponentData       compData       = new ChartComponentData(code, time, klinePeriod, showKLineIndex);
            ChartComponentController controller     = new ChartComponentController(dataNavigater, compData);

            controller.OnDataChanged += Controller_OnDataChanged;
            //controller.Play();
            //while (controller.IsPlayIng)
            //{

            //}

            //while(time<2017)
        }
Beispiel #12
0
 public ChartComponentRefreshArguments(ChartComponentData prevCompData, ChartComponentData compData)
 {
     this.prevCompData  = prevCompData;
     this.compData      = compData;
     this.dataRefreshed = this.compData.Equals(prevCompData);
 }
Beispiel #13
0
 public ChartComponentDataChangeArgument(ChartComponentData prevChartComponentData, ChartComponentData currentChartComponentData)
 {
     this.prevChartComponentData    = prevChartComponentData;
     this.currentChartComponentData = currentChartComponentData;
 }