C#下哪些用NPlot绘制期货股票K线图(1)?

图片 1

[简介]

用作一名正式程序化交易者,编制程序是二个程序员的功底,本文是小编在做的2个期货CTP项目中有关K线绘图的一有的,偿试类MT4中图表
设计而写,在编辑绘图时,查阅了有关材质,感觉照旧用NPlot的那么些图片控件相比较好,特点是:免费,能够用于winform程序,而且速度比较快,能够实时动态彰显图表数据,上边就进来宗旨.

[内容]

一,NPlot控件相关知识简介:

图片控件一向是很难找的,尤其是免费又有力的。NPlot是一款特别宝贵的.Net平台下的图样控件,能做各个曲线图,柱状图,饼图,散点图,股票图等,而且它免费又开源,使用起来也12分符合程序员的习惯。唯一的败笔正是文书档案特别难找,难读。通过对其文书档案的开卷和对示例程序源代码的剖析,今后将NPlot的基本概念整理如下:

 

   
NPlot的命名空间包罗NPlot,NPlot.Bitmap,NPlot.Web,NPlot.Web.Design,NPlot.Windows等,个中最基本的,管理各类图片的类都属于NPlot命名空间,NPlot.Bitmap针对位图的管制,NPlot.Web,NPlot.Web.Design和NPlot.Windows则可身为NPlot图表在Web
Form和Windows
Form上的器皿(PlotSurface2D)。那一个器皿可以拖到Form上,也能够放在别的容器之中。

 

   
要在应用程序中选拔NPlot控件,首先要把所下载的NPlot.dll添加到.Net工程中。并将其添加到工具箱托盘中。添加措施为:在工具箱上单击右键,选用“选取项”,会冒出“选择工具箱项”对话框,在“.Net
Frameworks组件”属性页,接纳浏览,找到NPlot.dll添加到工具箱项。那时工具箱中会现身NPlot控件。在规划应用程序界面时,能够将其拖入应用程序界面,系统会在代码中活动创设1个PlotSurface2D对象。

 

   
PlotSurface2D对象是NPlot图表的容器,全体的图形图形,坐标,标题(都持续IDrawable接口)等各样音信都得以被到场PlotSurface2D。PlotSurface2D拥有2个可怜首要的不二法门:Add。各个图片图形,坐标,标题都能够透过Add到场PlotSurface2D对象。

二.NPlot控件使用办法:

1.下载NPlot控件文件:NPlpt.dll(内含表明文书档案及源码)下载

2.新建C#项目,如candlePlot

3.右击工具箱中菜单:选用项–>在弹出的选项工具箱项中.net框架上对话框–>浏览按钮–>找到刚才下载的NPlot.dll文件–>选中打开

4.在.net
Framework组件中找到NPlot程序集中的七个零件plotsurfase2d都入选,就添加到工具箱中了

5.拖plotsurfase2d控件到窗体上,命名myPlot,注脚using NPlot;

上边放置蜡烛图绘制的中坚代码:

 

 1         /////////各种绘图//////////         
 2         private void plot()
 3         {
 4             this.myPlot.Clear();
 7             ////////网格//////////
 8             Grid mygrid = new Grid();
 9             mygrid.HorizontalGridType = Grid.GridType.Fine;
10             mygrid.VerticalGridType = Grid.GridType.Fine;
11             this.myPlot.Add(mygrid);
1213             ///////水平线//////////
14             HorizontalLine line = new HorizontalLine(10);
15             line.LengthScale = 2.89f;
16             //line.OrdinateValue = 2;
17             this.myPlot.Add(line, 10);
18             ///////垂直线///////////
19             VerticalLine line2 = new VerticalLine(10);
20             line2.LengthScale = 0.89f;
21             this.myPlot.Add(line2);
22 
23 
24             ///////蜡烛图///////////
25             int[] opens = { 1, 2, 1, 2, 1, 3 };
26             double[] closes = { 2, 2, 2, 1, 2, 1 };
27             float[] lows = { 1, 1, 1, 1, 1, 1 };
28             System.Int64[] highs = { 3, 2, 3, 3, 3, 4 };
29             int[] times = { 0, 1, 2, 3, 4, 5 };
30             CandlePlot cp = new CandlePlot();
31             cp.CloseData = closes;
32             cp.OpenData = opens;
33             cp.LowData = lows;
34             cp.HighData = highs;
35             cp.AbscissaData = times;
36             this.myPlot.Add(cp);
37 
            this.myPlot.Refresh();
62         }

相关文章