John Jiang

          a cup of Java, cheers!
          https://github.com/johnshajiang/blog

             :: 首頁 ::  :: 聯系 :: 聚合  :: 管理 ::
            131 隨筆 :: 1 文章 :: 530 評論 :: 0 Trackbacks
          JStockChart -- Preview
          JStockChart是一款簡單但實用的開源圖表工具,是對JFreeChart的擴展,僅關注于金融時序圖與K線圖。(2008.08.29最后更新)

              JStockChart對利用JFreeChart生成金融時序圖與K線圖進行了簡化。目前,JStockChart已實現了時序圖部分,包括價格線,均線,量圖,中間價和漲跌幅。用戶僅需傳入指定格式的數據,JStockChart即可生成期望的圖片。
              對于時序圖,如果提供的數據不是"連續"的,JStockChart能夠自動補全缺失的數據--被補數據的價格與最近一筆數據的價格相同,而量為0;價格圖的縱坐標以指定的"中間價"為中心均勻分布,可重點突出中間價。
              該項目的源文件會在晚些時候上傳到Google Code中,但可以通過下面一組圖片先預覽一下JStockChart生成的金融時序圖。
          JStockChart Demo
          允許指定中間價(20.88),以中間價為基準向上和向下均勻地分布坐標點;允許自由地指定單個坐標點標簽的對齊方式--左對齊,右對齊,居中(對于時間坐標,這尤其有用)。

          JStockChart Demo
          自動補全缺失的數據(黑色方框指示的區域)。

          JStockChart Demo
          允許指定各個坐標軸顯示的坐標點的個數。

          JStockChart Demo
          允許指定是否顯示某些圖線元素(中間價,均線,漲跌幅,...)。

          JStockChart Demo
          允許只顯示價格線圖。

          JStockChart Demo
          允許只顯示量圖。

          對于時序線圖,目前我認為JStockChart的三個功能比較重要:
          (a)自動補全非連續數據序列中的"缺失"數據。
          (b)以"中間價"為中心,價格坐標均勻分布。
          (c)"自由"地定制每個坐標的對齊方式,這對于時間坐標尤為重要。
          目前JFreeChart就沒有提供上述功能,而
          [1]JStockChart擴展了JFreeChart中的DateAxis和NumberAxis,根據用戶指定的數據與坐標對齊方式,重新計算并生成了DateTick和NumberTick。
          [2]JStockChart對JFreeChart中的TimeSeries進行了修飾,結合SegmentedTimeline,新創建了SegmentedTimeSeries,使得能夠自動補全缺失的數據。


          P.S.
          由于近期賦閑在家,在欣賞奧運比賽之余,就將自己早前的一些想法付諸實現,并發起了這個開源項目。
          雖然JStockChart關注的功能點有限,在設計方面肯定也有不如人意之處,但我仍然認為這是一次很有益的嘗試。
          posted on 2008-08-28 17:11 John Jiang 閱讀(4718) 評論(57)  編輯  收藏 所屬分類: JavaJStockChartJFreeChart原創

          評論

          # re: JStockChart--Preview 2008-08-28 17:55 Jack.Wang
          不錯!很好,很強大,想法很好!有時間多交流!  回復  更多評論
            

          # re: JStockChart--Preview 2008-08-28 18:03 Sha Jiang
          強大的不是JStockChart,而是JFreeChart ^_^  回復  更多評論
            

          # re: JStockChart--Preview 2008-08-28 18:37 softwave
          比較感興趣,但是不知這個股市信息的數據源從哪獲得呢?  回復  更多評論
            

          # re: JStockChart--Preview 2008-08-29 10:52 rubyol
          不錯, 不過和樓上的問題一樣,關注數據來源 ...  回復  更多評論
            

          # re: JStockChart--Preview 2008-08-29 11:14 lzycxy
          我就沒看出與JFreeChart的區別來  回復  更多評論
            

          # re: JStockChart--Preview 2008-08-29 15:16 Sha Jiang
          > 比較感興趣,但是不知這個股市信息的數據源從哪獲得呢?
          為什么一定要用真實的數據呢 *_*

          > 我就沒看出與JFreeChart的區別來
          JStockChart只是在有限之處對JFreeChart進行了擴展,
          繪圖功能肯定還是用的JFreeChart,所以不能直接看出這兩者之間的區別。

          JStockChart主要是為了"簡化"時序線圖與K線圖的創建,用戶只需要提供指定"形式"的數據,就可直接地生成這類圖片了。
          另外,使用JStockChart可以指定一個"中間價"(如20.88),然后以該中間價為基準,向上和向下"等距"的顯示若干個坐標點(如21.52, 21.36, 21.20, 21.04和20.72, 20.56, 20.40, 20.24);而JFreeChart未能直接提供這一功能。
            回復  更多評論
            

          # re: JStockChart--Preview 2008-08-29 17:57 Sha Jiang
          對于時序線圖,目前我認為JStockChart的三個功能比較重要:
          (a)自動補全非連續數據序列中的"缺失"數據。
          (b)以"中間價"為中心,價格坐標均勻分布。
          (c)"自由"地定制每個坐標的對齊方式,這對于時間坐標尤為重要。
          但目前JFreeChart并沒有提供上述功能,而
          [1]JStockChart擴展了JFreeChart中的DateAxis和NumberAxis,根據用戶指定的數據與坐標對齊方式,重新計算并生成了DateTick和NumberTick。
          [2]JStockChart對JFreeChart中的TimeSeries進行了修飾,結合SegmentedTimeline,新創建了SegmentedTimeSeries,使得能夠自動補全缺失的數據。  回復  更多評論
            

          # re: JStockChart -- Preview(原)[未登錄] 2008-09-17 17:32 eric
          對于除了交易日之外的別的日期可以過濾嗎?像如:五一假期,停盤假期.  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2008-09-17 20:03 Sha Jiang
          > 對于除了交易日之外的別的日期可以過濾嗎?像如:五一假期,停盤假期.
          在SegmentedTimeline中設置例外(SegmentedTimeline.setExceptionSegments)。  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2008-10-15 17:57 eric_yin
          我現在得到的是最近一周交易日的分鐘數據,想要過濾掉非交易的時間點。可以過濾掉嗎?需要用哪些方法,怎么傳值啊。
          比方說是得到了2008.10.9-2008.10.15之間5個交易日的分鐘數據。我需要過濾掉其中2008.10.11和2008.10.12這兩個周末時間,還需要過濾掉其余每天的0:00-9:30,11:30-13:00,15:00-24:00的時間軸。
          需要怎么做啊,懇請賜教,我的msn:yinyao01@msn.com
            回復  更多評論
            

          # re: JStockChart -- Preview(原) 2008-10-15 19:01 Sha Jiang
          > 我現在得到的是最近一周交易日的分鐘數據,想要過濾掉非交易的時間點。
          > 可以過濾掉嗎?需要用哪些方法,怎么傳值啊。
          要首先就從數據源中將"異常"數據過濾掉,而不要讓JFreeChart去過濾。實際上,SegmentedTimeline并不能過濾數據。
          如果傳入的數據有"冗余"的話,JFreeChart仍然會把它們顯示出來(得到的圖片可能會比較怪)。  回復  更多評論
            

          # re: JStockChart -- Preview(原)[未登錄] 2008-11-22 17:17 cc
          用JreeChart生成圖片的性能好像不是很好,要生成兩千多只股票,對于實時更新的股票來說,怎樣去處理呢?  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2008-11-22 22:26 Sha Jiang
          > 用JreeChart生成圖片的性能好像不是很好,要生成兩千多只股票,
          > 對于實時更新的股票來說,怎樣去處理呢?
          如果只是依賴JFreeChart,可能是不行。  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-05-24 22:38 theseusyang
          能在X軸上實現刻度尺滑動箭頭的功能嗎?  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-05-25 21:56 Sha Jiang
          > 能在X軸上實現刻度尺滑動箭頭的功能嗎?
          JStockChart不直接提供這一功能,但JFreeChart可以動態繪制圖形。  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-06-02 11:49 zw1321@126.com
          為什么在日期軸上當前時間至收市時間這段沒有呢,雖然現在還沒有數據,但是圖上應該畫出來才對嘛,這個圖像擴大了開市時間至當前時間的日期軸的比例。。。  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-06-02 18:49 Sha Jiang
          > 為什么在日期軸上當前時間至收市時間這段沒有呢
          "當前時間"是指什么時間?

          > 雖然現在還沒有數據,但是圖上應該畫出來才對嘛,
          > 這個圖像擴大了開市時間至當前時間的日期軸的比例
          一般地,大家只關心市場交易的時間段,一天中的其它時間不需要展現,因為沒有意義。
            回復  更多評論
            

          # re: JStockChart -- Preview(原)[未登錄] 2009-06-03 13:49 111
          請問我獲得了DateAxis這個對象,有沒有什么辦法去掉節假日嗎?  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-06-03 16:14 Sha Jiang
          > 請問我獲得了DateAxis這個對象,有沒有什么辦法去掉節假日嗎?
          SegmentedTimeline可以過濾掉你不期望的時間。  回復  更多評論
            

          # re: JStockChart -- Preview(原)[未登錄] 2009-06-05 16:03 vivian
          量圖柱線后面的陰影可以去掉不?jstockchart有定點功能嗎 謝謝``````  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-06-05 17:29 Sha Jiang
          > 量圖柱線后面的陰影可以去掉不?
          哪有陰影?

          > jstockchart有定點功能嗎
          是指什么功能?能說具體一些嗎?  回復  更多評論
            

          # re: JStockChart -- Preview(原)[未登錄] 2009-06-08 11:51 vivian
          @Sha Jiang
          > 量圖柱線后面的陰影可以去掉不?
          哪有陰影?
          ------可惜我看不到你上面的圖是不是也有我這種情況,我的量圖每根柱線后面老是有一條灰色的柱子,我暫時把量圖區域顏色改為灰色,這個問題可以忽略不計
          > jstockchart有定點功能嗎
          是指什么功能?能說具體一些嗎?
          ------就是點到某個坐標點可以顯示此點的橫縱交叉線,jfreechart是有這個功能的,但我不知道在jstockchart怎么用
          謝謝`````````
            回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-06-08 19:17 Sha Jiang
          > 可惜我看不到你上面的圖是不是也有我這種情況,
          > 我的量圖每根柱線后面老是有一條灰色的柱子,我暫時把量圖區域顏色改為灰色,
          > 這個問題可以忽略不計
          應該是立體圖吧?

          > 就是點到某個坐標點可以顯示此點的橫縱交叉線,jfreechart是有這個功能的,
          > 但我不知道在jstockchart怎么用
          我沒用過JFreeChart的這個功能。
          如果JFreeChart有這個功能的話,那么你通過JStockChart獲取JFreeChart實例,然后再傳給ChartPanel,應該也可以達到你的要求。

          僅就該功能而言,應該不難實現。實現一個MouseListener(也可以試試ChartMouseListener),當點擊鼠標時,在ChartPanel上繪制十字線,即可。  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-09-28 15:59 zuo
          坐標字體顏色怎么設置。。l  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-09-28 16:23 Sha Jiang
          > 坐標字體顏色怎么設置
          基本方法就是:獲取Plot的Axis,然后設置它的TickLabelPaint。
          如,((CategoryPlot)JFreeChart.getPlot()).getDomainAxis().setTickLabelPaint(Color.RED)  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-09-28 16:40 zuo
          我塞。。
          為什么不能這么設置
          jfreechart.getXYPlot().getRangeAxis().setLabelPaint(Color.red);
          jfreechart.getXYPlot().getRangeAxis()為空
          謝謝。。。  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-09-28 17:13 zuo
          大哥,縱坐標字體是不是沒辦法設置顏色啊。。。
            回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-09-28 18:11 zuo
          大哥,告訴我一下,怎么設置走線圖縱坐標的字體顏色。。
          我的要求是:在那個線之下的坐標字體是綠色,上邊的是紅色字體
          我的QQ:82826200
          我的郵箱:zhj28119860501@yahoo.com.cn
          非常感謝....
            回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-09-29 08:43 Sha Jiang
          > jfreechart.getXYPlot().getRangeAxis()為空
          這是你自已程序的問題吧。

          > 大哥,縱坐標字體是不是沒辦法設置顏色啊
          一樣的到道理啊,拿到range axis,然后設置它的TickLabelPaint。
          如,((CategoryPlot)JFreeChart.getPlot()).getRangeAxis().setTickLabelPaint(Color.RED)   回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-09-29 13:32 zuo
          大哥,((CategoryPlot)JFreeChart.getPlot()).getRangeAxis().setTickLabelPaint(Color.RED)
          這樣寫你試了嗎?
          (CategoryPlot)jfreechart.getPlot()強制類型轉換錯誤
          jfreechart.getPlot()返回的是CombinedRangeXYPlot  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-09-29 13:33 zuo
          用友的大哥,謝謝了!  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-10-10 20:59 Sha Jiang
          > (CategoryPlot)jfreechart.getPlot()強制類型轉換錯誤
          > jfreechart.getPlot()返回的是CombinedRangeXYPlot
          那你就cast到CombinedRangeXYPlot撒 ^_^  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-10-12 10:14 zuo
          大哥,謝謝了!
          不過還是不行,jfreechart.getPlot()返回的是CombinedDomainXYPlot..
          我看了大哥的源碼,里面沒什么注釋,希望大哥能加上一點注釋。。
          還有就是。。
          大哥的DEMO,當數據庫里面的數據不全時候,有值為空的情況測試過沒有 。。
          最后希望大哥能把這個開源的東東做得更完善。。。  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-10-12 10:30 Sha Jiang
          > 不過還是不行,jfreechart.getPlot()返回的是CombinedDomainXYPlot
          我不是已經回答了這個問題嘛--"那你就cast到CombinedRangeXYPlot撒"。
          使用方法CombinedDomainXYPlot.getDomainAxis/getDomainAxis(int i),你也可以得到相關Axis,然后再去設置它的TickLabelPaint撒。

          > 大哥的DEMO,當數據庫里面的數據不全時候,有值為空的情況測試過沒有 。。
          一般地,數據的問題,還是由應用程序自己處理吧。
          JFreeChart也不會考慮數據邏輯是否完整這樣的問題吧 *_*
          但如本文所示,JStockChart的時序圖會補充部分缺失的數據。

          > 我看了大哥的源碼,里面沒什么注釋,希望大哥能加上一點注釋。。
          > 最后希望大哥能把這個開源的東東做得更完善。。。
          JStockChart只是我去年賦閑時打發時間的產物,確實非常的稚嫩。
          最近又進行了一些JFreeChart的應用開發,對它有了一些新的體會,以后有時間的話,會對JStockChart進行完全的重寫,尤其是程序的結構要認真地再設計。  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-10-12 17:03 zuo
          大哥,我有些問題想請教你。。。
          不知你能否留下一個聯系方式,最好是QQ
          3KS  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-10-13 08:37 Sha Jiang
          嘿嘿,上班時,MSN或QQ都上不了。
          有問題可以在此處留言,或者直接發到我的郵箱:jiangshachina@gmail.com  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-10-15 18:31 zuo
          我想做一個實時的圖。。。就類似很多網站上的。。
          隔一段時間生成一張圖片。。
          但正如大哥所說的JStockChart的時序圖會補充部分缺失的數據,但當前的時間還沒到14:00,確把他的數據補充了。。。
          不知道大哥,有什么最好的辦法來解決。。。  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-10-20 09:40 zuo
          大哥你的數據是怎么自動不全的。。。
          可以簡單的介紹一下嗎。。。
            回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-10-20 14:22 Sha Jiang
          > 但正如大哥所說的JStockChart的時序圖會補充部分缺失的數據,
          > 但當前的時間還沒到14:00,確把他的數據補充了。。。
          是不是你提供的數據中的最晚時間已經到14:00了?

          > 大哥你的數據是怎么自動不(補)全的。。。
          其實我使用方法很簡單,很笨拙 :-)
          具體的你可以看看類org.jstockchart.time.SegmentedTimeSeries,關鍵就是其中的addItem方法。  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-10-20 15:10 zuo
          打個比方說吧:
          現在是14點。。
          但是數據自動補全的原因,14點后的圖形也出來了。
          我的要求是:
          假如現在是14點,圖形就到14點為止,14點以后的圖形就不出來了。。。
          謝謝。。
            回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-10-20 15:14 Sha Jiang
          > 現在是14點。。
          > 但是數據自動補全的原因,14點后的圖形也出來了。
          如果給定的數據中確實不存在14:00之后的數據,那這就是JStockChart的Bug :-(  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-10-20 15:42 zuo
          那咋辦呀?
          你有時間測試一下嗎?
          該怎么解決這個問題。。。  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-10-21 08:30 Sha Jiang
          最近還真沒時間,只能周末再看看,但不要抱什么希望 *_*  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-10-21 14:21 zuo
          大哥,我就靠你了。。。
          要么你就告訴我怎么把你那個數據自動補全的功能去掉。。。  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-10-21 21:00 zuo
          大哥你就抽點時間吧。。
          我全靠你了。。
            回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-10-22 08:57 zuo
          大哥,我真著急啊。。
          看到信息后,希望你能留個言。
            回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-11-17 10:49 zuo
          大哥,你那個bug解決了沒?  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-11-23 08:57 Sha Jiang
          @zuo
          首先真的很抱歉,過了如此長的時間才回復。

          我昨天進行了幾次簡單的測試,并沒有發現你所提及的BUG。
          在我的測試程序中,只提供了09:30-11:30,及13:00-14:00的連續分鐘線數據,然后再直接加一個14:30的數據,發現JStockChart只會自動補齊14:01-14:29之間的數據,并不會自動添加14:30之后的數據。

          故,希望你能提供與JStockChart應用相關的較詳盡代碼。  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2009-11-23 11:05 Sha Jiang
          [Announcement]JStockChart 0.4.2已經發布了!
          從該版本開始,JStockChart將只支持5.0或更高版本的JDK;且兼容JFreeChart 1.0.13。  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2010-05-08 13:17 大三陽小三陽
          大哥你就抽點時間吧。。
          我全靠你了。。
            回復  更多評論
            

          # re: JStockChart -- Preview(原) 2010-05-24 15:16 何楊
          挺好,以后做股票系統就有好工具了。  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2010-05-24 20:22 Sha Jiang
          @何楊
          目前JStockChart還很稚嫩,我正計劃進行重寫,當然這需要較長時間。  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2010-09-13 11:19 wheat
          老兄,你的JStockChart 還有沒有計劃更新,

          使用了一下,感覺類之間的耦合性太強,不容易分離。(個人感覺,不一定對)
            回復  更多評論
            

          # re: JStockChart -- Preview(原) 2010-09-13 18:02 Sha Jiang
          @wheat
          > 老兄,你的JStockChart 還有沒有計劃更新
          目前一直沒有時間,可能關鍵還是靈感不足吧...

          > 使用了一下,感覺類之間的耦合性太強,不容易分離。(個人感覺,不一定對)
          總之,它的問題是顯而易見的。  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2010-09-19 15:31 wheat
          @Sha Jiang


          呵呵,加油吧,我先寫著玩玩,主要是定義好接口。  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2010-09-19 15:54 Sha Jiang
          @wheat
          Cool!!!大家多交流  回復  更多評論
            

          # re: JStockChart -- Preview(原) 2011-08-21 15:24 mal_258
          問下你,如何只顯示價格圖,不顯示量圖  回復  更多評論
            

          主站蜘蛛池模板: 肇州县| 大石桥市| 上虞市| 郎溪县| 米泉市| 中江县| 迭部县| 阿瓦提县| 安西县| 天长市| 潮州市| 阜新市| 紫金县| 灌南县| 通许县| 喜德县| 龙山县| 当阳市| 通江县| 牟定县| 八宿县| 珠海市| 长沙县| 福鼎市| 香格里拉县| 江源县| 河曲县| 辽阳县| 岳池县| 南京市| 应用必备| 白河县| 乳山市| 镇赉县| 台北县| 休宁县| 罗定市| 榆中县| 西贡区| 慈溪市| 饶平县|