このエントリーをはてなブックマークに追加


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の通貨ペアを取得しています。
通貨シンボル一覧(通貨ペア一覧)については、以下のリンク記事を参考にしてください。

  1. 以下の構文で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)
  2. 取得した取引情報数を表示しています。
    PS C:\> $trades.Count
    100
  3. 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
  4. 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

KeyRequiredTypeDefaultDescription
timestampfalse[time]Only show trades at or after this timestamp
limit_tradesfalse[int]50Limit the number of trades returned. Must be >= 1
  • timestampを現在時刻-10秒として実行してみる
    timestampはUNIX時間を指定します。
    UNIX時間については、以下のリンク記事を参照してください。
  • PowerShellでUNIXTIMEを取得する方法
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以降の取引情報のみ取得できているのが確認できます。

  • 取得数(limit_trades)を指定して取得する
    limit_tradesを指定して取引データを取得してみます。
    PS C:\> $limit = 20
    PS C:\> $btcusd_trades_url = "https://api.bitfinex.com/v1/trades/btcusd"
    PS C:\> $trades = Invoke-RestMethod -UseBasicParsing ($btcusd_trades_url + "?limit_trades=$limit")
    PS C:\> $trades.Count
    20
    
    PS C:\> $limit = 5
    PS C:\> $trades = Invoke-RestMethod -UseBasicParsing ($btcusd_trades_url + "?limit_trades=$limit")
    PS C:\> $trades | Format-Table
    
     timestamp       tid price  amount     exchange type
     ---------       --- -----  ------     -------- ----
    1532259347 271326252 7457.0 0.004      bitfinex buy
    1532259347 271326251 7456.7 0.01       bitfinex buy
    1532259340 271326234 7456.7 0.005      bitfinex buy
    1532259333 271326231 7456.5 0.276295   bitfinex sell
    1532259323 271326224 7456.1 0.17939914 bitfinex sell
  • timestamp, limit_tradesの両方を指定し取得してみる
    PS C:\> $btcusd_trades_url = "https://api.bitfinex.com/v1/trades/btcusd"
    PS C:\> $limit = 20
    PS C:\> $timestamp = [int](((Get-Date) - (Get-Date("1970/1/1 0:0:0 GMT"))).TotalSeconds - 60)
    PS C:\> $trades = Invoke-RestMethod -UseBasicParsing ($btcusd_trades_url + "?timestamp=${timestamp}&limit_trades=${limit}")
    PS C:\> $trades | Format-Table
    
     timestamp       tid price  amount     exchange type
     ---------       --- -----  ------     -------- ----
    1532259754 271326683 7457.4 0.00235    bitfinex buy
    1532259752 271326673 7457.4 0.119      bitfinex sell
    1532259740 271326646 7457.5 0.81046561 bitfinex buy
    1532259740 271326645 7457.3 0.23922987 bitfinex buy
    1532259740 271326644 7457.2 0.8        bitfinex buy
    1532259739 271326641 7455.7 0.005      bitfinex sell

Invoke-WebRequest+ConvertFrom-Jsonコマンドレットで取引情報を取得する

Invoke-WebRequest使うことにより、HTTPステータスや、Content-Typeなどを取得することができます。
取得したContent部分をConvertFrom-Jsonコマンドレットを使うことにより、Invoke-RestMethodと同様に、
JSON形式でアクセスすることができます。

  1. 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
  2. 取得したレスポンスを表示します。
    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
  3. ステータスコード、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
  4. 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サーバとのやり取りのプログレスメッセージが表示されます。

51.png

これを非表示にしたい場合は、以下のようにしてください。

非表示にするには、$ProgressPreferenceにSilentlyContinueを設定します。
変更前は以下のように Continue が設定されています。

PS C:\> $ProgressPreference
Continue

非表示にするには、以下のように変更します。

PS C:\> $ProgressPreference = "SilentlyContinue"

以上、PowerShellを使って、BitfinexのTrades APIを呼び出す方法でした。


スポンサーリンク

添付ファイル: file04.png 12件 [詳細] file03.png 11件 [詳細] file02.png 14件 [詳細] file01.png 13件 [詳細] file51.png 13件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-07-22 (日) 20:50:50 (140d)