Bitfinexの取引情報(取引リスト)を取得する(API v1) †
PowerShellでBitfinexのTradesを呼び出し、指定した仮想通貨ペアの取引情報を取得する操作例を以下に記します。
スポンサーリンク
参考資料 †
BitfinexのTrades取得するAPIドキュメントURL
API仕様は、以下のURLで確認してください。
https://bitfinex.readme.io/v1/reference#rest-public-trades
関連記事 †
Trades APIをブラウザでアクセスしてみる †
以下、URLで取引情報を取得できます。
通貨シンボル一覧(通貨ペア一覧)については、以下のリンク記事を参考にしてください。
PowerShellによるTrades APIアクセス †
PowerShellのInvoke-RestMethodコマンドレットと、
Invoke-WebRequest+ConvertFrom-Jsonコマンドレットを使って、
BitfinexのTrades APIを呼び出しレスポンスを取得してみます。
Invoke-RestMethodコマンドレットで取引情報を取得してみる †
Invoke-RestMethodコマンドレットを使用して、Bitfinexの取引情報を取得する操作例になります。
以下の操作例は、BTC/USDの通貨ペアを取得しています。
通貨シンボル一覧(通貨ペア一覧)については、以下のリンク記事を参考にしてください。
- 以下の構文でBTCUSDの取引情報を取得します。
PS C:\> $v1_trades_api = "https://api.bitfinex.com/v1/trades/"
PS C:\> $symbol = "BTCUSD"
PS C:\> $trades = Invoke-RestMethod -UseBasicParsing ($v1_trades_api + $symbol)
- 取得した取引情報数を表示しています。
PS C:\> $trades.Count
100
- Select-Objectコマンドレットを使って最初の2件を表示してみます。
PS C:\> $trades | Select-Object -First 2
timestamp : 1532234014
tid : 271279029
price : 7392.7
amount : 0.057797
exchange : bitfinex
type : buy
timestamp : 1532234013
tid : 271279027
price : 7392.7
amount : 0.25
exchange : bitfinex
type : buy
- Format-Tableコマンドレットを使って表形式に整形し、5行表示しています。
PS C:\> $trades | Format-Table | Select-Object -First 5
timestamp tid price amount exchange type
--------- --- ----- ------ -------- ----
1532234014 271279029 7392.7 0.057797 bitfinex buy
1532234013 271279027 7392.7 0.25 bitfinex buy
1532234007 271279020 7392.6 0.1 bitfinex sell
パラメータを指定してみる †
Trades APIの詳細を見ると以下の通り、時間と取得数を設定するパラメータがあります。
このパラメータを使ってみます。
Bitfinex Trades APIページから抜粋
Request Details
Key | Required | Type | Default | Description |
timestamp | false | [time] | | Only show trades at or after this timestamp |
limit_trades | false | [int] | 50 | Limit the number of trades returned. Must be >= 1 |
PS C:\> $btcusd_trades_url = "https://api.bitfinex.com/v1/trades/btcusd"
PS C:\> $timestamp = [int](((Get-Date) - (Get-Date("1970/1/1 0:0:0 GMT"))).TotalSeconds - 10)
PS C:\> $trades = Invoke-RestMethod -UseBasicParsing ($btcusd_trades_url + "?timestamp=$timestamp")
PS C:\> $timestamp
1532258886
PS C:\> $trades | Format-Table
timestamp tid price amount exchange type
--------- --- ----- ------ -------- ----
1532258893 271325392 7454.92241801 0.05 bitfinex sell
1532258888 271325378 7454.8 0.1 bitfinex sell
指定したtimestamp以降の取引情報のみ取得できているのが確認できます。
Invoke-WebRequest+ConvertFrom-Jsonコマンドレットで取引情報を取得する †
Invoke-WebRequest使うことにより、HTTPステータスや、Content-Typeなどを取得することができます。
取得したContent部分をConvertFrom-Jsonコマンドレットを使うことにより、Invoke-RestMethodと同様に、
JSON形式でアクセスすることができます。
- Invoke-WebRequestでTrades APIにアクセス
PS C:\> $btcusd_trades_url = "https://api.bitfinex.com/v1/trades/btcusd"
PS C:\> $response = Invoke-WebRequest -UseBasicParsing $btcusd_trades_url
- 取得したレスポンスを表示します。
PS C:\> $response
StatusCode : 200
StatusDescription : OK
Content : [{"timestamp":1532235786,"tid":271282004,"price":"7394.5","amount":"1.0","exchange":"bitfinex","typ
e":"sell"},{"timestamp":1532235783,"tid":271281988,"price":"7394.5","amount":"0.0095","exchange":"b
it...
RawContent : HTTP/1.1 200 OK
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
X-Frame-Options: SAMEORIGIN,SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-...
Forms :
Headers : {[Transfer-Encoding, chunked], [Connection, keep-alive], [Vary, Accept-Encoding], [X-Frame-Options,
SAMEORIGIN,SAMEORIGIN]...}
Images : {}
InputFields : {}
Links : {}
ParsedHtml :
RawContentLength : 11180
- ステータスコード、HTTP Header, Content-Typeなどの値にアクセスしてみます。
PS C:\> $response.StatusCode
200
PS C:\> $response.Headers
Key Value
--- -----
Transfer-Encoding chunked
Connection keep-alive
Vary Accept-Encoding
X-Frame-Options SAMEORIGIN,SAMEORIGIN
X-XSS-Protection 1; mode=block
X-Content-Type-Options nosniff
X-Request-Id 790f7088-d9d9-4726-82f3-2e4d6a6fa0cb
X-Runtime 0.006105
Strict-Transport-Security max-age=31536000
Expect-CT max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
CF-RAY 43e35c21b8f39547-NRT
Cache-Control max-age=0, private, must-revalidate
Content-Type application/json; charset=utf-8
Date Sun, 22 Jul 2018 05:03:17 GMT
ETag W/"3bc822405766a7e950aad440c40bbbf9"
Set-Cookie __cfduid=de11180575c3cdec4b4b287d1776345091532235796; expires=Mon, 22-Jul-19 05:03:16 GMT;...
Server cloudflare
PS C:\> $response.Headers.'Content-Type'
application/json; charset=utf-8
- ConvertFrom-Jsonコマンドレットを使うことにより、JSON形式に変換することができます。
PS C:\> $json = ConvertFrom-Json $response.Content
PS C:\> $json.Count
100
PS C:\> $json | Select-Object -First 5 | Format-Table
timestamp tid price amount exchange type
--------- --- ----- ------ -------- ----
1532235786 271282004 7394.5 1.0 bitfinex sell
1532235783 271281988 7394.5 0.0095 bitfinex sell
1532235782 271281987 7394.5 0.0095 bitfinex sell
1532235770 271281953 7394.5 0.1 bitfinex sell
1532235767 271281950 7394.5 0.01352 bitfinex sell
Webの応答を読み取っています。(Waiting for response)を非表示にする方法 †
上記のコマンドレットを実行すると、APIサーバとのやり取りのプログレスメッセージが表示されます。
これを非表示にしたい場合は、以下のようにしてください。
非表示にするには、$ProgressPreferenceにSilentlyContinueを設定します。
変更前は以下のように Continue が設定されています。
PS C:\> $ProgressPreference
Continue
非表示にするには、以下のように変更します。
PS C:\> $ProgressPreference = "SilentlyContinue"
以上、PowerShellを使って、BitfinexのTrades APIを呼び出す方法でした。
スポンサーリンク