2015-04-05 20 views
1

使用Reading data from Dukascopy tick binary file中的信息我已經在C#中實現了我自己的Dukas tick數據饋送下載庫。Dukas Tick數據 - 量級差異問題引用

上面的鏈接確認數據是以big endian格式存儲的,必須進行轉換。上述鏈路上的最終答案還表示文件的格式如下:

INT1是這一小時幾秒鐘之內(這實際上應該是 毫秒)

INT2是向* 10000

INT3是投標* 10000

float1是問卷

FLOAT2是投標量

我用下面的代碼片段來讀取下載並解壓縮二進制數據值:

int hourMs = IPAddress.HostToNetworkOrder(br.ReadInt32()); 
double ask = IPAddress.HostToNetworkOrder(br.ReadInt32())/10000.0; 
double bid = IPAddress.HostToNetworkOrder(br.ReadInt32())/10000.0; 
br.ReadSingle(); // ask vol - don't need 
br.ReadSingle(); // bid vol - don't need 

使用TickStory,我已經下載剔數據的等效符號和日期,以及確認嘀嗒毫秒值是正確的。

然而,買/賣價格錯了一個數量級。從一些快速檢查中,任何日元交叉對(以及黃金)價格都是一個數量級太低,而其他任何貨幣對都是一個數量級太高。當手動更正時,它們完全符合我從TickStory下載的價格。

現在,我可以簡單地將除數更改爲100,000,並使用1,000作爲日元交叉/黃金的特殊情況 - 但這只是一個陷阱,我相信沒有必要。

有什麼我得到錯誤,無論是在格式,或末端轉換?

感謝

回答

1

如果你的數據是關閉的10.0則字節序是正確的。一次又一次檢查他們的文檔(原始Dukas文檔)。我會假設他們對不同的代碼使用不同的比例因子。

+0

感謝您的評論 - 我正在繪製一個總空白不幸在找到他們的文檔到目前爲止搜索小時之後,我很幸運,我找到了另一個StackOverflow答案。我會繼續尋找。 – Hoodlum 2015-04-05 19:15:11