C#下如何用NPlot绘制期货股票K线图(1)?
[简介]
作为一名专业程序化交易者,编程是一个程序员的基本功,本文是作者在做的一个期货CTP项目中有关K线绘图的一部分,偿试类MT4中图表 设计而写,在编写绘图时,查阅了相关资料,感觉还是用NPlot的这个图表控件比较好,特点是:免费,可以用于winform程序,而且速度比较快,可以实时动态显示图表数据,下面就进入主题.
[内容]
一,NPlot控件相关知识简介:
图表控件一直是很难找的,特别是免费又强大的。NPlot是一款非常难得的.Net平台下的图表控件,能做各种曲线图,柱状图,饼图,散点图,股票图等,而且它免费又开源,使用起来也非常符合程序员的习惯。唯一的缺点就是文档特别难找,难读。通过对其文档的阅读和对示例程序源代码的分析,现在将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控件。在设计应用程序界面时,可以将其拖入应用程序界面,系统会在代码中自动创建一个PlotSurface2D对象。
PlotSurface2D对象是NPlot图表的容器,所有的图表图形,坐标,标题(都继承IDrawable接口)等各种信息都可以被加入PlotSurface2D。PlotSurface2D拥有一个非常重要的方法: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 }
转载于:https://www.cnblogs.com/juehai/p/5839004.html
- C#下如何用NPlot绘制期货股票K线图(3):设计要显示的股票价格图表窗口并定义相应类的成员及函数...
- C#下如何用NPlot绘制期货股票K线图(2):读取数据文件让K线图自动更新
- 【转载】C#下如何实现 绘制曲线图和柱状图
- SkylineGlobe 6.5 如何实现简单多边形的动态绘制 C#示例代码
- C#中如何实现AVI视频的播放并且需要在播放视频的同时在视频上进行一些简单线条的绘制?
- 如何绘制贝塞尔样条曲线和基数样条曲线[C#]
- C# 画(绘制)直线 C#如何画直线 C#绘制直线 WPF 画(绘制)直线
- C#开发教程--如何绘制箭头
- C#.NET常见问题(FAQ)-如何使用2D绘图控件ZedGraph绘制坐标轴和坐标曲线
- 如何采用C#绘制39条形码
- 【C#】第3章补充(一)如何在WPF中绘制正弦曲线
- PPC丢失后,手机信息如何保护?(C#)
- c#中如何取字符串最左边和最右边的字符??
- 如何用C#开发的计算器小软件
- 如何将XSD文件以及引入import的文件生成相应的C#类。
- c# 如何使用wlanapi连接电脑到wifi
- C#中如何获取系统环境变量
- Android 如何使用shape绘制只有一个圆角的矩形
- C# 对于执行时间较长函数,如何显示“处理中...”
- .net c# gif动画如何添加图片水印实现思路及代码学习