2011-02-04 41 views
7

Tôi đang làm việc về dự án của Sư Phụ và tôi đang tìm kiếm một lượng đáng kể dữ liệu tài chính về một công ty cụ thể.API Java cho dữ liệu tài chính

Ví dụ: giả sử "Apple". Tôi muốn giá cả lịch sử, giá thị trường hiện tại/tỷ lệ, kết quả hàng quý và các nhà phân tích gọi.

Tôi đã thấy một vài bài đăng trên StackOverflow về YQL. Tôi nghĩ rằng tôi có thể nhận được giá hiện tại và các tỷ lệ khác nhau từ Yahoo Finance miễn phí. Tuy nhiên đối với các dữ liệu khác, có những công ty như Thomson Reuters, Bloomberg, vv nhưng họ dường như có một hệ thống khép kín.

Tôi có thể lấy API để tìm nạp dữ liệu ở đâu? Có thứ gì giúp tôi lấy dữ liệu đó không? Tôi ổn với dữ liệu thô cũng như ở bất kỳ định dạng nào. Bất cứ điều gì tôi có thể nhận được. Các bạn có thể đề xuất bất kỳ API nào không?

Trả lời

1

Đây là một tài chính Yahoo Dữ liệu lịch sử cho "Apple"

http://in.finance.yahoo.com/q/hp?s=AAPL

Có một liên kết ở phía dưới để tải về dữ liệu. Có thể điều này có thể giúp

+0

Cảm ơn. Có cách nào có lập trình không? – Kunal

+0

Nó sẽ là khá tầm thường để viết một phân tích cú pháp để trích xuất dữ liệu từ html. – Joel

+0

@Jelel: thậm chí còn dễ dàng hơn cho một CSV. –

0

Bạn đang thực sự hỏi về dữ liệu tài chính miễn phí dịch vụ ... thay vì API.

Vấn đề là dữ liệu là một mặt hàng có giá trị. Nó có thể có chi phí các nhà cung cấp rất nhiều tiền để thiết lập hệ thống của họ, và nó chi phí cho họ nhiều tiền hơn để giữ cho những hệ thống đang chạy. Đương nhiên, họ muốn có lợi tức đầu tư, và họ làm điều này (một phần) bằng cách bán dữ liệu/dịch vụ của họ.

(Trong trường hợp của Yahoo, Google, v.v., dữ liệu được mua từ người khác và Yahoo/Google sẽ phải tuân thủ các hạn chế về cách họ có thể sử dụng. Các hạn chế đó sẽ được phản ánh trong ToS tương ứng; chỉ được phép truy cập các dịch vụ "để sử dụng cá nhân".)

Tôi nghĩ rằng bạn nên tiếp cận một số nhà cung cấp dữ liệu tài chính và yêu cầu họ có thể cung cấp cho bạn quyền truy cập miễn phí hay không. họ có thể muốn áp đặt) vào các dịch vụ dữ liệu của họ. Bạn có thể gặp may ...

+0

Xin cảm ơn Stephen. Thay vào đó API của nó cho dịch vụ dữ liệu tài chính, giống như chúng ta có thể nhận Nguồn cấp dữ liệu Twitter bằng API. Tôi hiểu nó chi phí cho họ. Tôi có thể trả cho họ một khoản phí. Bất kỳ công ty nào đã biết? – Kunal

+0

Nếu tất cả những gì bạn muốn là vị trí hiện tại (chậm nhất là 10 phút) và chỉ giá đóng cửa hàng ngày trong lịch sử (không có dữ liệu trong ngày), thì bạn có thể nhận được miễn phí. Nếu bạn cần giá thời gian thực và lịch sử dữ liệu giao dịch trong ngày thì bạn có thể mua nó từ chính Bloomberg hoặc các sàn giao dịch. –

0

Bạn đã dùng thử Google Finance API chưa. (Hãy google nó;). Tôi đang sử dụng nó để theo dõi danh mục đầu tư của mình. Bạn có thể thử http://code.google.com/apis/finance/docs/finance-gadgets.html không? Có một ví dụ về widget tùy chỉnh và nó có thể cho bạn biết nếu bạn đang sủa dưới cây bên phải.

+0

Xin chào. Tôi đã thấy điều đó. Tôi muốn sử dụng dữ liệu đó để xử lý kết thúc. Có vẻ như tài chính-tiện ích chỉ dành cho HTML – Kunal

+0

ooops ... không thực sự .. đó là dịch vụ dựa trên json. Bạn có thể gọi nó trong lớp dịch vụ của bạn. Tôi yêu cầu bạn nhìn vào widget, để bạn sẽ biết nếu bạn đang nhận được dữ liệu bạn cần. –

+0

Cảm ơn. Ý bạn là nói http://goo.gl/jsrFl. Nó không phải là quản lý danh mục đầu tư nhiều hơn? – Kunal

3

Stephen là đúng về số tiền, nếu bạn thực sự muốn có một lượng lớn dữ liệu thực sự, bạn có thể sẽ phải trả tiền cho nó.

tuy nhiên, tôi đã thành công trong các dự án riêng của tôi bằng cách sử dụng "API" nêu ra ở đây:

http://www.gummy-stuff.org/Yahoo-data.htm

Tôi đã kéo xuống tất cả các cổ phiếu từ S & P 500 khá thường xuyên, nhưng nếu bạn đã từng xuất bản dữ liệu đó, hãy nói chuyện với yahoo. có thể bạn sẽ phải cấp phép cho nó.

btw, tất cả các dữ liệu này là ở định dạng CSV, do đó, có một người đọc CSV/chuyển đổi, vv dễ dàng để tìm

+0

bạn có thể chia sẻ mã nguồn của yahoo-data.htm không? –

0

Tốt dữ liệu của họ không phải là miễn phí. Nó đơn giản như vậy. Lý do là tất cả dữ liệu cuối cùng được cấp phép từ một sàn giao dịch như NYSE hoặc NASDAQ.

Nếu bạn có thể nhận được một số dữ liệu lịch sử có độ phân giải cao có sẵn từ Automated Trader.

Bạn cũng nên nói chuyện với trường kinh doanh tại trường học của bạn. Nếu họ có bằng thạc sĩ tài chính/sinh viên hoặc thạc sĩ về kỹ thuật tài chính, họ nên có kho lưu trữ dữ liệu có độ phân giải cao cho sinh viên của mình.

Nếu bạn đặt câu hỏi chi tiết hơn, tôi có thể cung cấp câu trả lời chi tiết hơn.

0

Đây là điều tôi tự đá ít nhất một lần một tuần. Quay trở lại khi internet bao gồm Gopher và tất cả những thứ đó, bạn có thể đăng nhập vào các máy chủ FTP tại NASDAQ và NYSE và tải xuống tất cả các loại tệp lịch sử cổ phiếu miễn phí. Tôi đã làm điều đó, thậm chí nó đã được nhập khẩu vào một cơ sở dữ liệu và đã làm một số công cụ với nó .... nhưng đó có lẽ là 10 máy tính trước đây, LONG của nó đã biến mất.

+0

Tại sao họ ngừng làm việc đó ngay bây giờ? – Kunal

+1

Bởi vì họ đã tìm ra rằng họ có thể tính phí cho mọi người rất nhiều tiền cho nó. – mezmo

1

tôi sẽ gợi ý một vài API có dữ liệu tài chính đó là đôi khi khó tìm (ví dụ kết quả hàng quý, các cuộc gọi chuyên gia phân tích):

1) http://www.zacksdata.com/zacks-data-api 2) http://www.mergent.com/servius

Cả hai đều có thử nghiệm miễn phí có sẵn .

(Tiết lộ: Công ty của tôi quản lý cả hai API)

1
thư viện

Một Java được phát triển là IdylFin, trong đó có phương pháp thuận tiện để tải xuống dữ liệu lịch sử.

Tuyên bố từ chối trách nhiệm: Tôi là tác giả của thư viện này.

0

Tôi đã giải quyết vấn đề này trong quá khứ.

Để biết dữ liệu lịch sử giá, tôi đã sử dụng API của yahoo. Khi tôi nói API, tôi có nghĩa là tôi đã thực hiện yêu cầu HTTP nhận tệp CSV về dữ liệu lịch sử giá. Thật không may, điều đó chỉ mang lại cho bạn dữ liệu cho một công ty tại một thời điểm, trong một khoảng thời gian bạn chỉ định. Vì vậy, trước tiên tôi đã tạo danh sách tất cả các biểu tượng ticker và lặp lại điều đó, gọi API của yahoo cho mỗi. Bạn cũng có thể tìm thấy một trang web liệt kê các biểu tượng ticker và chỉ định kỳ tải xuống danh sách đó.

Thực hiện việc này quá thường xuyên và quá nhanh và trang web của họ có thể chặn bạn. Tôi đã thêm một số mã để giới hạn tần suất tôi thực hiện các yêu cầu http. Tôi cũng đã lưu giữ dữ liệu của mình vì vậy tôi sẽ không phải lấy lại dữ liệu đó nữa. Tôi sẽ luôn duy trì hình thức dữ liệu thô/chưa qua chế biến, mã của bạn có thể thay đổi theo cách khiến việc sử dụng bất kỳ thứ gì khác khó khăn hơn. Avro/tiết kiệm có thể là một ngoại lệ, kể từ khi sự tiến triển lược đồ hỗ trợ.

Đối với các loại dữ liệu khác, bạn có thể không có bất kỳ API nào cung cấp cho bạn các tệp CSV đẹp. Tôi đã phải đối phó với vấn đề đó nhiều lần. Đây là lời khuyên của tôi.

Đôi khi một trang web gọi một dịch vụ web an toàn sau hậu trường, bạn có thể khám phá ra rằng bằng cách sử dụng firebug. Đôi khi nó cũng sẽ yêu cầu các tiêu đề nhất định, mà bạn cũng có thể khám phá bằng cách sử dụng firebug.

Nếu bạn buộc phải làm việc với HTML, có một số thư viện java có thể giúp bạn. apache.commons.http là một thư viện mà bạn có thể sử dụng để dễ dàng thực hiện các yêu cầu http và xử lý các phản hồi của chúng. Google cũng có một hòm http khách hàng, có lẽ điều tra đáng giá.

JSoup API tuyệt vời khi phân tích cú pháp dữ liệu HTML, ngay cả khi nó được định dạng kém và không phải XHTML. Nó cũng hoạt động với XML. Thay vì duyệt qua hoặc truy cập các nút trong hệ thống phân cấp jsoup, hãy tìm hiểu XPath và sử dụng nó để chọn những gì bạn muốn. Trang web có thể định kỳ thay đổi định dạng trang web của trang web, điều đó sẽ dễ dàng đối phó và khắc phục nếu bạn đang sử dụng JSoup và khó khăn để đối phó với cách khác.

Nếu bạn phải làm việc với JSON, hãy sử dụng thư viện Jackson để phân tích cú pháp đó.

Nếu bạn phải làm việc với CSV, hãy sử dụng thư viện OpenCSV để phân tích cú pháp và xử lý nó.

Ngoài ra, luôn lưu trữ dữ liệu trong phần thô và tránh thực hiện các yêu cầu HTTP không cần thiết để bạn không bị chặn. Tôi đã bị chặn bởi google tài chính một vài lần, họ có thể làm điều đó. May mắn thay khối không hết hạn. Bạn thậm chí có thể muốn thêm khoảng thời gian chờ ngẫu nhiên giữa các yêu cầu.