2010-05-18 30 views
2

這可能是一個過度提問的問題,但我的大腦在此刻畫空白。我知道什麼是candlestick chart以及如何每天繪製它。但是如何在問題時間段內盤算。我有用Java編寫的這個服務器,它給了我交易的深度(從一天開始以來,每筆交易都完成了)。它只是一個原始數據流:價格,份額,時間戳。按時間間隔計算盤中燭臺

如何計算燭臺數據呢?可以說,他們想要5分鐘燭臺或1分鐘燭臺。或者是否有一個圖書館可以爲我提供數據?

任何幫助表示讚賞!

+0

你需要爲你的5分鐘/ 1分鐘找到hi/lo(我猜你已經打開/關閉了,然後喂喂hi/lo/open/close到一些可以繪製燭臺的API .. 。或者你自己寫。注意JFreeChart是API中最貪婪的豬之一:它的緩慢是令人厭惡的,它的作者在JFreeChart論壇中非常認可JFreeCharts在處理時不是真正的頂尖大量的數據實時更新(例如,你不能在JFreeChart的圖表右側添加數據:你必須重繪所有東西)。選擇你的毒藥:) – SyntaxT3rr0r 2010-05-18 21:07:10

+0

我看過JFreeChart和它只有繪圖。這樣一個問題就解決了。但我仍然不確定如何計算這些值。說如果我有一組值。如何將他們分組爲時間間隔。在SQL中,我會使用GROUP BY並指定時間間隔。但我的想法在Java中如何做到這一點是空白的。我想我可以遍歷元素並使用堆棧來計算開盤價,收盤價,高價,低價和平均價格?嗯... – Sam 2010-05-18 22:15:54

回答

0

你見過JFreeChart?它將繪製candlesticks,並且由於它的配置令人難以置信,所以它可能會做你想做的。

1

確切實施取決於你如何存儲數據,但一般:

  1. 排序時間戳數據
  2. 決定的時候,天開始(如上午9點EST,不管)和在第一天找到那個時間的時間戳。然後,通過爲該數字添加適當的偏移量,您就知道每5分鐘(或任何其他)欄開始和結束的時間。
  3. 找到第一個數據點的索引,該數據點不在第一個條中 - 每個索引低於第一個條的數據點位於第一個條中。現在可以直接拿出燭臺的第一個,最後一個,最大和最小价格。
  4. 重複3,替代以前的蠟燭的最後一個指數0

你現在有分成蠟燭數據。