Lấy dữ liệu tiền điện tử lịch sử và thời gian thực bằng lập trình web rất đơn giản PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Lấy dữ liệu tiền điện tử lịch sử và thời gian thực với lập trình web rất đơn giản

Luciano Abriata

Trong khi tìm hiểu về tiền điện tử, tôi rất cần dữ liệu mà tôi có thể tự thao tác để thực hiện các âm mưu và phân tích của riêng mình. Ở đây tôi chỉ cho bạn cách dễ dàng lấy dữ liệu tiền điện tử lịch sử và thời gian thực ngay trong trình duyệt web của bạn với kỹ năng lập trình tối thiểu. Bao gồm mã nguồn, các liên kết và một số sơ đồ và phân tích cơ bản.

Tuyên bố miễn trừ trách nhiệm: Bạn sẽ không tìm thấy bất kỳ lời khuyên tài chính nàocTôi ở đây và tôi không phải là chuyên gia về tiền điện tử, tiền điện tử, NFT, giao dịch của họ, v.v. Tôi chỉ cung cấp mã HTML+JavaScript miễn phí để nhận dữ liệu thông qua lệnh gọi API tới CryptoCompare.com; và tôi hiển thị một số sơ đồ xuất phát từ dữ liệu đó với một số ý kiến ​​chủ quan của riêng tôi.

Gần đây tôi quan tâm đến tiền điện tử, tiền điện tử, NFT, v.v. Đương nhiên, với tư cách là một nhà khoa học luôn làm việc với dữ liệu, một trong những điều đầu tiên tôi muốn làm là tự mình thử nghiệm với dữ liệu tiền điện tử. Tôi nhìn thấy các âm mưu ở khắp mọi nơi trên các trang web, tin tức và ứng dụng; nhưng làm cách nào tôi có thể có được dữ liệu thực tế để xử lý nó và thực hiện các âm mưu và cuộc điều tra của riêng mình? Và đặc biệt, làm sao tôi có thể chắc chắn rằng nó được cập nhật mỗi khi tôi yêu cầu?

Cụ thể, điều đầu tiên tôi muốn nhúng tay vào là tỷ giá hối đoái giữa các loại tiền điện tử và tiền Fiat khác nhau. Tôi nhận thấy rằng trang web CryptoCompare.com cung cấp một API tuyệt vời, miễn phí cho số lượng cuộc gọi nhỏ, cho phép truy cập theo chương trình vào dữ liệu từ cơ sở của nó. Tôi cũng tìm thấy nhiều đoạn mã JavaScript trực tuyến khác nhau mà tôi ghép lại thành hai ứng dụng web rất đơn giản: một để nhận thông tin cập nhật về tỷ giá hối đoái BTC-USD cứ sau 10 giây; và một cách khác để truy xuất tỷ giá hối đoái BTC-USD lịch sử mỗi phút, giờ hoặc ngày trong toàn bộ lịch sử của Bitcoin. Vui lòng sao chép mã tôi trình bày và điều chỉnh nó cho phù hợp với mục tiêu của riêng bạn.

Ứng dụng web 1: nhận bất kỳ trao đổi nào trong thời gian thực

Tất nhiên, bạn có thể mở bất kỳ trang web hoặc ứng dụng tiền điện tử nào và lấy số này từ đó, nhưng giả sử rằng bạn muốn nó luôn có sẵn và tự động làm mới hoặc có thể bạn muốn nó tự động được đưa vào hệ thống tính toán mà bạn đang phát triển.

Truy cập đơn giản vào liên kết này tại API của CryptoCompare sẽ trả về tỷ giá hối đoái của Bitcoin (BTC) bằng USD ngay tại thời điểm bạn thực hiện lệnh gọi:

https://min-api.cryptocompare.com/data/price?fsym=BTC&tsyms=USD

Tương tự, ví dụ khác này cung cấp cho bạn tỷ giá hối đoái của Ethereum (ETH) bằng EUR tại thời điểm gọi:

https://min-api.cryptocompare.com/data/price?fsym=ETH&tsyms=EUR

Dễ dàng phải không? Chà, dựa trên điều đó, đoạn mã sau trả về bất kỳ chuyển đổi nào bạn yêu cầu (trong ví dụ này là BTC bằng USD) cứ sau 10 giây, trong một trang web nhỏ mà bạn có thể đặt ở chế độ riêng tư để theo dõi tỷ giá yêu thích của mình trên trang web của riêng bạn:

Bạn có thể sao chép-dán mã này vào tệp .html rồi tải mã đó bằng trình duyệt của mình để xem mã đang chạy. Hoặc nếu bạn cảm thấy lười biếng, chỉ cần mở ví dụ demo này tại trang web của tôi:

https://lucianoabriata.altervista.org/tests/cryptogames/getBTC-realtime.html

Bạn có thể dễ dàng phát triển ứng dụng đó hơn nữa thành một ứng dụng web liên tục theo dõi mọi tỷ giá hối đoái, thậm chí lưu trữ nó trong một biểu đồ để trực quan hóa khi đang di chuyển hoặc trong một biến để tải xuống.

Ứng dụng web 2: lấy dữ liệu lịch sử

Nhưng nếu bạn muốn lấy dữ liệu trước khi trang web được bắt đầu thì sao? Chà, bạn có thể truy cập các trang web chuyên biệt và tải xuống những dữ liệu này; tuy nhiên, tôi thấy rằng các trang web dễ sử dụng chỉ cung cấp một phần dữ liệu. Ví dụ: dữ liệu BTC tại Yahoo Finances bắt đầu vào ngày 17 tháng 2014 năm XNUMX và các bản ghi của nó là hàng tháng, hàng tuần hoặc hàng ngày chứ không phải hàng giờ hoặc mỗi phút. Ngoài ra, nếu bạn đang phát triển một hệ thống cần được cập nhật tự động, việc tải xuống dữ liệu thủ công là điều không thể bàn cãi… bạn cần quyền truy cập theo chương trình.

May mắn thay, API của CryptoCompare bao gồm các cách để truy xuất dữ liệu lịch sử được tính theo phút, giờ hoặc ngày. Không chỉ tỷ giá hối đoái mà còn các số liệu khác như khối lượng trao đổi. Để biết thêm về API xem tài liệu của nó và đọc phần sau.

Lệnh gọi API như trong ví dụ này sẽ cung cấp cho bạn dữ liệu trong 20 giờ qua, từng giờ:

https://min-api.cryptocompare.com/data/v2/histohour?fsym=ETH&tsym=USD&limit=20&toTs=-1&api_key=YOURKEYHERE

Đầu ra có thể phân tích cú pháp ở định dạng JSON. Nó trông như thế này:

Những điểm cần lưu ý trong URL cho lệnh gọi API (mà chúng tôi sẽ sử dụng tiếp theo bên trong hàm javascript()):

  1. toTs=-1 có nghĩa là bạn muốn có dữ liệu cho đến thời điểm cuộc gọi được thực hiện.
  2. hạn chế là số dòng bạn muốn.
  3. Bạn cần cung cấp khóa API.

Với khóa API miễn phí (nhận tại trang tài liệu; và có, bạn có thể mua khóa với các tính năng nâng cao hơn), bạn bị giới hạn về tổng số cuộc gọi bạn có thể thực hiện và mỗi cuộc gọi sẽ chỉ cung cấp cho bạn tối đa 2000 mục nhập. Vì vậy, ví dụ: nếu bạn yêu cầu tỷ giá hối đoái hàng giờ cho BTC bằng USD, thì mức tối đa bạn sẽ nhận được là lùi lại 2000 phút so với thời gian được nhắc, nghĩa là khoảng 33 giờ, tức là chỉ hơn một ngày. Hoặc nếu bạn yêu cầu dữ liệu theo giờ, bạn sẽ nhận được nhiều nhất dữ liệu trong 83.33 ngày liên tục, chỉ dưới 3 tháng. Tuy nhiên, đây thực sự không phải là một vấn đề lớn, bởi vì bạn có thể lặp lại API ngược thời gian bao nhiêu lần tùy thích để bù đắp khoảng thời gian mà bạn quan tâm. Ví dụ: để lấy lại dữ liệu BTC hàng ngày cho đến nguồn gốc của nó, bạn cần hơn 4000 điểm (ngày) một chút tính đến tháng 2021 năm 3 khi câu chuyện này được viết. Điều này có nghĩa là bạn chỉ cần 98400 cuộc gọi liên tiếp. Và nếu bạn muốn có dữ liệu hàng giờ trong cùng khoảng thời gian, bạn cần khoảng 50 điểm, được bao phủ bởi XNUMX cuộc gọi liên tiếp.

Hãy để tôi chỉ cho bạn ứng dụng web này, trong đó bạn có thể yêu cầu dữ liệu lịch sử hàng ngày cho bất kỳ tỷ giá hối đoái nào với USD:

Mã có thể trông hơi phức tạp một chút, nhưng nó có thể đơn giản hơn nhiều. Vấn đề ở đây là tôi đã tạo toàn bộ giao diện để cho phép người dùng chọn khoảng thời gian nhận dữ liệu, sau đó ghép các kết quả từ các lệnh gọi tiếp theo vào hộp văn bản để dễ dàng sao chép:

Lưu ý rằng bạn phải gọi API hai lần: một lần trong hàm gọi danh sách các mục nhập dữ liệu cho đến thời điểm thực thi (getBtcData, chạy khi người dùng nhấp vào “Nhận dữ liệu mới nhất” và cũng tự động tải) và một lần khác cho hàm trả về dữ liệu trước một thời gian nhất định (getBtcDataPrevious). Cũng lưu ý rằng các hàm tự động cập nhật thời gian Từ và Đến, được hiển thị ở định dạng nối tiếp thô và cũng được chuyển đổi sang dạng người có thể đọc được bằng hàm serialDateToNiceDate.

Sau khi tải trang hoặc nhấp vào “Nhận dữ liệu mới nhất”, hộp văn bản ở bên phải sẽ được điền với 2000 mục nhập hàng giờ gần đây nhất và thời gian Từ và Đến được cập nhật. Sau đó, bạn có thể yêu cầu 2000 khối dữ liệu từ các giai đoạn trước đó bằng cách nhấp vào “Nhận giai đoạn trước”. Các dòng đến sẽ được thêm vào hộp văn bản, giữ nguyên thứ tự lịch sử.

Nhìn vào một số dữ liệu lịch sử

Như tôi đã nói trong phần giới thiệu, tôi rất háo hức muốn có được dữ liệu về quá trình phát triển theo thời gian của các sàn giao dịch BTC:USD kể từ khi Bitcoin được tạo ra. Với một chỉnh sửa nhỏ đối với ứng dụng web được hiển thị ở trên (chỉ cần thay đổi “histohour” bằng “histoday”), bạn sẽ có được một ứng dụng trả về các bản ghi hàng ngày. Sau đó, với ba lần nhấp chuột vào “Nhận kỳ trước”, bạn sẽ có được toàn bộ dữ liệu hàng ngày về Bitcoin, bắt đầu từ tháng 2010 năm XNUMX cho đến nay.

Hãy vẽ một vài biểu đồ về những dữ liệu này. Đầu tiên chỉ đơn giản là tỷ giá hối đoái theo thời gian, một biểu đồ mà bạn thấy trong hầu hết các ứng dụng, trang web và tin tức:

Biểu đồ cho thấy năm thời điểm tăng giá quan trọng: một vào khoảng cuối năm 2013, một mạnh hơn vào khoảng cuối năm 2017 - đầu năm 2018, tiếp theo là một thời điểm khác vào năm 2019, và sau đó là một thời điểm mạnh hơn vào nửa đầu năm 2021, sau đó là một đợt tăng nhanh mới đang diễn ra ngay bây giờ.

Điều thú vị là mức cực đại quan sát được trong biểu đồ đó gần như khớp với mức độ quan tâm theo thời gian được đo lường bởi Google Trends:

Một biểu đồ khác về dữ liệu trao đổi BTC:USD được truy xuất của chúng tôi, thú vị hơn so với dữ liệu chúng tôi đã làm ở trên, đây là biểu đồ trong đó giá được xử lý theo dạng logarit (ở đây đăng nhập theo cơ số 10):

Chuyển đổi nhật ký này phát hiện các giai đoạn tăng rõ ràng hơn. Kiểm tra xem độ cao đỉnh tương đối từ đáy đến đỉnh có khá khác nhau không và dường như đang giảm dần: đỉnh chính đầu tiên đòi hỏi mức tăng khoảng 1.5 bậc độ lớn (khoảng 30X); thứ hai, thứ ba và thứ tư có độ lớn khoảng 1 bậc (khoảng 10X) và bậc cuối cùng chỉ có độ lớn khoảng 0.5 bậc (khoảng 3.2X). Do đó, mặc dù mức cực đại lịch sử đang rất cao nhưng cơ hội kiếm được lợi nhuận khổng lồ đang giảm dần đối với những người đầu tư sau này. Mặc dù đã quá muộn để làm giàu bằng Bitcoin, nhưng xu hướng chung về tỷ giá hối đoái BTC:USD dường như cho thấy rằng nó có thể vẫn tăng trưởng trong một thời gian (không bảo bạn mua ở đây, chỉ là ngoại suy một cách ngây thơ từ cốt truyện):

Các biểu đồ nhật ký này chứa nhiều dữ liệu hơn mà những người khác đã phân tích trong các bài viết blog sau. Không phải là một chuyên gia, tôi không thể đánh giá chúng, nhưng chúng chắc chắn rất thú vị:

Kết luận và chọn đọc thêm

Tôi hy vọng bạn sẽ thấy vui khi sử dụng các tập lệnh này và các tập lệnh phái sinh để lấy và xử lý dữ liệu tiền điện tử. Toàn bộ lĩnh vực này rất thú vị và khi thực hiện nghiên cứu về tiền điện tử trong hai năm qua, tôi đã đọc rất nhiều bài báo, câu chuyện và bài đăng, trong đó tôi đã chắt lọc những thứ này để bạn tiếp tục phát triển từ đây, chủ yếu từ Medium và các ấn phẩm liên quan của nó:

Nguồn: https://towardsdatascience.com/obtaining-histocal-and-real-time-crypto-data-with-very-simple-web-programming-7b481f153630?source=rss——-8—————–tiền điện tử

Dấu thời gian:

Thêm từ Trung bình