程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#下如何用NPlot繪制期貨股票K線圖?,

C#下如何用NPlot繪制期貨股票K線圖?,

編輯:C#入門知識

C#下如何用NPlot繪制期貨股票K線圖?,


[簡介]

作為一名專業程序化交易者,編程是一個程序員的基本功,本文是作者在做的一個期貨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對象。

下面放置蠟燭圖繪制的基本代碼:

 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         }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved