暗号通貨について学習しているときに、独自のプロットや分析を行うために自分で操作できるデータがどうしても必要でした。ここでは、最小限のプログラミング スキルで、リアルタイムおよび過去の暗号データを Web ブラウザーで簡単に取得する方法を説明します。ソース コード、リンク、およびいくつかの基本的なプロットと分析が含まれています。
免責事項: 財務上のアドバイスは見つかりません。cここにいますが、私は暗号通貨、暗号アート、NFT、それらの取引などの専門家ではありません。CryptoCompare.com への API 呼び出しを通じてデータを取得するための無料の HTML+JavaScript コードのみを配布します。そして、そのデータから得られたいくつかのプロットを、私自身の主観的な意見を加えて表示します。
私は最近、暗号通貨、暗号アート、NFT などに興味を持ち始めました。当然のことながら、常にデータを扱う科学者として、私が最初にやりたかったことの 1 つは、自分自身で暗号通貨データを操作してみることでした。ウェブサイト、ニュース、アプリのいたるところでプロットを目にしました。しかし、実際のデータを手に入れて、それを操作したり、独自のプロットや調査を行うにはどうすればよいでしょうか?特に、リクエストするたびにそれが最新であることをどうやって確認できるのでしょうか?
具体的には、私が最初に手を出してみたかったのは、さまざまな暗号通貨と法定通貨の間の為替レートでした。 Web サイト CryptoCompare.com が、ベースのデータにプログラムでアクセスできる優れた API を、少数の呼び出しには無料で提供していることを発見しました。また、オンラインでさまざまな JavaScript コードを見つけて、それらを 10 つの非常に単純な Web アプリにまとめました。XNUMX つは BTC-USD 為替レートの更新を XNUMX 秒ごとに取得するためのものです。もう XNUMX つは、ビットコインの歴史全体を通して、分、時間、または日ごとに過去の BTC-USD 為替レートを取得するものです。ここで紹介するコードを自由にコピーして、独自の目的に合わせて変更してください。
Web アプリ 1: あらゆる交換をリアルタイムで取得
もちろん、暗号通貨の Web サイトやアプリを開いて、そこからこの数値を取得することもできますが、常に手元に置いて自動的に更新したい場合や、開発中の計算システムに自動的に入力されるようにしたい場合などがあります。
CryptoCompare の API にあるこのリンクに簡単にアクセスすると、呼び出しを行った瞬間にビットコイン (BTC) の為替レートが USD で返されます。
https://min-api.cryptocompare.com/data/price?fsym=BTC&tsyms=USD
同様に、この別の例では、通話時のイーサリアム (ETH) のユーロ換算レートが表示されます。
https://min-api.cryptocompare.com/data/price?fsym=ETH&tsyms=EUR
簡単ですね。これに基づいて、次のコードは、要求した変換 (この例では USD での BTC) を 10 秒ごとに小さな Web ページに返します。このページをプライベートにして、自分の Web サイトで好みのレートに従うことができます。
リアルタイムで暗号データを取得
<script>
const getBtcData = async () => {
fetch('https://min-api.cryptocompare.com/data/price?fsym=BTC&tsyms=USD')
.then(応答 => 応答.json())
.then(データ => {
console.log(data);
document.getElementById("info").innerHTML = ' 1 BTC = ' + data.USD + ' USD '
});
}getBtcData();tcount=0setInterval(function(){
tカウント++
if (tcount==10) {getBtcData(); tcount=0}
document.getElementById("infotime").innerHTML = '次の更新は ' + (10-tcount) + ' 秒後'
}、1000);
このコードをコピーして .html ファイルに貼り付け、ブラウザでロードすると、実行されることを確認できます。または、面倒だと感じる場合は、私のサイトにあるこのデモ例を開いてください。
https://lucianoabriata.altervista.org/tests/cryptogames/getBTC-realtime.html
これを、為替レートを常に追跡する Web アプリに簡単に開発でき、外出先で視覚化するためにプロットに保存したり、ダウンロード用に変数に保存したりすることもできます。
Web アプリ 2: 履歴データを取得する
しかし、Web ページが開始される前にデータを取得したい場合はどうすればよいでしょうか?そうですね、専門の Web サイトにアクセスしてこれらのデータをダウンロードすることもできます。しかし、使いやすい Web サイトでは部分的なデータしか提供されていないことがわかりました。たとえば、Yahoo Finance の BTC データは 17 年 2014 月 XNUMX 日に始まり、その記録は月次、週次、または日次ですが、時間ごとや分ごとなどとは言えません。さらに、自動的に更新する必要があるシステムを開発している場合、データを手動でダウンロードすることは議論の対象外です。プログラムによるアクセスが必要です。
幸いなことに、CryptoCompare の API には、分、時間、または日単位の履歴データを取得する方法が含まれています。為替レートだけでなく、為替取引高などの他の指標も考慮されます。について詳しく知るには、 API のドキュメントを参照してください そして以下を読んでください。
この例のような API 呼び出しでは、過去 20 時間のデータを時間ごとに取得します。
出力は JSON 形式で解析可能です。次のようになります。
API 呼び出しの URL で注意すべき点 (次に fetch() JavaScript 関数内で使用します):
- toTs=-1 は、呼び出しが実行される瞬間までのデータが必要であることを意味します。
- 制限 は必要な行数です。
- API キーを指定する必要があります。
無料の API キーを使用して ( ドキュメントページ;はい、より高度な機能を備えたキーを購入できます) 実行できる呼び出しの総数には制限があり、各呼び出しで最大 2000 エントリしか提供されません。したがって、たとえば、USD での BTC の 2000 時間ごとの為替レートを要求した場合、取得できる最大値は、要求された時刻から 33 分遡ることになります。これは、約 83.33 時間、つまり 3 日強を意味します。または、時間ごとのデータを要求した場合、最大で連続 4000 日、つまり 2021 か月弱のデータが取得されます。ただし、これは実際には大きな問題ではありません。関心のある時間ギャップを埋めるために必要なだけ API を時間を遡って繰り返すことができるからです。たとえば、毎日の BTC データをその起源まで戻すには、必要な時間がかかります。この記事を書いた 3 年 98400 月の時点で 50 ポイント (日) をわずかに超えています。つまり、連続 XNUMX 回の呼び出しだけで済みます。また、同じ期間の XNUMX 時間ごとのデータが必要な場合は、約 XNUMX ポイントが必要になります。これは、XNUMX 回の連続呼び出しでカバーされます。
この Web アプリを使用すると、USD に対するあらゆる為替レートの毎日の履歴データを取得できます。
過去の暗号データを取得する
Web ブラウザ内の暗号データ:
最新のデータを取得する
から:
に:
前の期間を取得する
次のコマンドで再起動します。
(米ドル)
<script>
const getBtcData = async () => {
const 応答 = await fetch('https://min-api.cryptocompare.com/data/v2/histohour?fsym=' + document.getElementById('cryptoCurr').value + '&tsym=USD&limit=2000&toTs=-1&api_key= YOURAPIKEY');
const json = 応答を待ちます.json();
const データ = json.Data.Data
const 時間 = data.map(obj => obj.time)
const 価格 = data.map(obj => obj.high)
vartxt=""
for (var i=0;i
{
txt = txt + 回[i] + "t" + SerialDateToNiceDate(回[i]/3600/24).toString().substr(0,24) + "t" + 価格[i] + "n"
}
document.getElementById("txtout").value = txt
document.getElementById("fromTime").value = 回[0]
document.getElementById("toTime").value = 回[times.length-1]
document.getElementById("fromInfo").innerHTML = " "
document.getElementById("toInfo").innerHTML = " "}
const getBtcDataPrevious = async () => {
const 応答 = await fetch('https://min-api.cryptocompare.com/data/v2/histohour?fsym=' + document.getElementById('cryptoCurr').value + '&tsym=USD&limit=2000&toTs=' + document .getElementById('fromTime').value + '&api_key=YOURAPIKEY');
const json = 応答を待ちます.json(); const データ = json.Data.Data
const 時間 = data.map(obj => obj.time) const 価格 = data.map(obj => obj.high)
var txt="" for (var i=0;i
}
tmp=document.getElementById("txtout").value
document.getElementById("txtout").value = txt + tmp
document.getElementById("fromTime").value = 回[0]
document.getElementById("toTime").value = 回[times.length-1]
document.getElementById("fromInfo").innerHTML = " "
document.getElementById("toInfo").innerHTML = " "
}getBtcData()関数serialDateToNiceDate(日付) {
新しい日付を返します(Math.round((日付)*86400*1000));
}
コードは少し複雑に見えるかもしれませんが、はるかに単純である可能性があります。ここで重要なのは、ユーザーがデータを取得する時間範囲を選択できるようにインターフェイス全体を作成し、その後の呼び出しの結果をテキスト ボックスに連結して簡単にコピーできるようにしたことです。
API を 2 回呼び出す必要があることに注意してください。1 回目は、実行時までのデータ エントリのリストを呼び出す関数内で (getBtcData、ユーザーが「最新データを取得」をクリックしたときに実行され、ロード時に自動的に実行されます)、もう 1 回目は関数内で実行されます。指定された時間より前のデータを返す関数 (getBtcDataPrevious)。これらの関数は、From と To の時刻を自動的に更新することにも注目してください。これらの時刻は生のシリアル形式で表示され、また、serialDateToNiceDate 関数によって人間が判読できる形式に変換されます。
ページをロードするか、「最新データを取得」をクリックすると、右側のテキスト ボックスに過去 2000 件の時間エントリが入力され、開始時刻と終了時刻が更新されます。その後、「前の期間を取得」をクリックして、前の期間のデータの 2000 行ブロックをリクエストできます。入力された行は、履歴の順序を維持したままテキスト ボックスに追加されます。
いくつかの過去のデータを見てみると
冒頭で述べたように、私はビットコインの創設以来、BTC:USD 取引所の時間的変化に関するデータを取得することに非常に熱心でした。上に示した Web アプリを少し編集するだけで (「histohour」を「histoday」に変更するだけ)、毎日の記録を返すアプリが得られます。次に、「前の期間を取得」を 2010 回クリックするだけで、XNUMX 年 XNUMX 月から現在までのビットコインの毎日のデータ全体を取得できます。
これらのデータをいくつかプロットしてみましょう。まず単純に、長期にわたる為替レート、ほとんどのアプリ、サイト、ニュースで見られるプロットです。
このプロットは 2013 つの主要な稼働時間を示しています。2017 つは 2018 年末頃、2019 年末から 2021 年初頭にかけてより強力になり、その後 XNUMX 年にもう XNUMX つ、そして XNUMX 年上半期にさらに強力になり、その後現在新たな急速な増加が起こっています。
そのプロットで観察された最大値が、Google トレンドで測定された時間の経過に伴う関心とほぼ一致しているのは興味深いことです。
取得した BTC:USD 為替データの別のプロットは、上で行ったものよりも興味深いもので、価格が対数 (ここでは底 10 でログ) 形式で処理されているものです。
この対数変換により、アップフェーズがより明確に特定されます。ベースからトップまでの相対的なピークの高さが大きく異なり、ゆっくりと減衰しているように見えることを確認します。最初のメイン ピークには、およそ 1.5 桁 (約 30 倍) のゲインが伴います。 1 番目、10 番目、0.5 番目は約 3.2 桁 (約 XNUMX 倍) ですが、最後のものはわずか約 XNUMX 桁 (約 XNUMX 倍) です。したがって、歴史的な最大値が非常に高くなっているにもかかわらず、後で投資する人々にとって巨額の利益が得られる可能性は徐々に減少しています。ビットコインで金持ちになるには遅すぎますが、BTC:USD 為替レートの全体的な傾向は、ビットコインがまだしばらくは成長する可能性があることを示しているようです (ここで買えと言っているわけではなく、プロットから単純に推測しているだけです)。
これらのログ プロットにはさらに多くのデータが含まれており、他の人が次のブログ記事で分析しています。専門家ではないので、それらを判断することはできませんが、確かに非常に興味深いものです。
結論と選択されたさらなる読み物
これらおよび派生スクリプトを使用して、暗号データを取得して操作して楽しんでいただければ幸いです。この分野全体は非常に興味深いものであり、過去 2 年間、暗号通貨に関する研究を行う中で、大量の論文、記事、投稿を読みました。これらをここから続けていくために、主に Medium と から抜粋しました。関連する出版物:
- '
- "
- 2019
- アクセス
- すべて
- API
- アプリ
- アプリ
- 周りに
- 物品
- 8月
- ビット
- Bitcoin
- ブログ
- ボックス
- ブラウザ
- BTC
- 建物
- 購入
- コール
- チャンス
- コード
- 収集
- 変換
- クリプト
- 暗号データ
- CryptoCompare
- 暗号通貨
- cryptocurrency
- 通貨
- データ
- 中
- 開発する
- DID
- DX
- 早い
- ETH
- イーサリアム
- エーテル(ETH)
- 進化
- 交換
- 交換について
- 特徴
- FRBは
- 法定通貨
- フィギュア
- 財源
- ファイナンシャル
- 名
- フィット
- フォーム
- 形式でアーカイブしたプロジェクトを保存します.
- 無料版
- 楽しいです
- function
- ギャップ
- 目標
- でログイン
- Google Trendsの
- 成長する
- こちら
- ハイ
- history
- 認定条件
- How To
- hr
- HTTPS
- 巨大な
- 人間が読める
- 増える
- info
- 関心
- 投資
- IP
- IT
- JavaScriptを
- 7月
- 保管
- キー
- キー
- 最新の
- 学習
- LG
- 限定的
- LINE
- LINK
- リスト
- 負荷
- 一致
- math
- ミディアム
- メトリック
- ヶ月
- ニュース
- NFTs
- 番号
- オファー
- オンライン
- 開いた
- 意見
- 注文
- 受注
- その他
- のワークプ
- 投稿
- 現在
- ブランド
- プライベート
- プログラミング
- 購入
- 範囲
- 価格表
- Raw
- への
- 記録
- 研究
- 応答
- 結果
- 収益
- ラン
- ランニング
- を検索
- 選択
- 簡単な拡張で
- サイト
- スキル
- 小さい
- So
- 開始
- 店舗
- ストーリー
- TD
- 時間
- トーン
- top
- 追跡する
- トレーディング
- 変換
- トレンド
- アップデイト
- 更新版
- USD
- 値
- 可視化
- ウェブ
- ウェブブラウザ
- ウェブサイト
- ウェブサイト
- weekly
- Yahoo
- 年