【vb.net/コインチェック】目指せ仮想通貨自動売買システム開発 その2 全取引履歴 trades/板情報 order_books 取得

vb.net
スポンサーリンク

だいぶ前になりますがPythonでbitFlyer APIを使って自動取引のサンプルプログラムを挙げていました。今回は最近ビットコインが盛り上がってきたので、vb.net を使ってコインチェックAPIで自動取引プログラムのサンプルをアップしていきたいと思います。

私はプログラマーではなく趣味で触っている程度なので、生暖かい目で見ていただければと思います。

-免責事項-
当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねます。
当サイトの情報を利用する場合には、自己責任でご利用下さい。

スポンサーリンク

はじめに

前回はTicker取得を行いました。今回は同じくPublic APIから全取引情報といた情報を取得します。

本サンプル内で使用しているクラス CoinCheck_Function は、下記の記事と同じものを使用しています。(本記事では割愛しています。必要な方はリンクを参照してください。)

作成環境Windows 10 Pro 2004
ツールMicrosoft Visual Studio Community 2019
言語vb.net
追加ライブラリNewtonsoft.Json

Public API/全取引履歴(trades)取得

最新の取引履歴を取得できます。パラメーターとして pair を指定する必要があります。

Public Class TRADES_INFO
    Public Property success As Boolean
    Public Property pagination As PAGINATION_INFO
    Public Property data() As TRADES_DETAIL()
End Class

Public Class PAGINATION_INFO
    Public Property limit As Long
    Public Property order As String
    Public Property starting_after As String
    Public Property ending_before As String
End Class

Public Class TRADES_DETAIL
    Public Property id As Long
    Public Property amount As Double
    Public Property rate As Long
    Public Property pair As String
    Public Property order_type As String
    Public Property created_at As String
End Class
Module Module1

    Sub Main()
        Dim cc As New CoinCheck_Function
        Dim pair As String = "btc_jpy"

        Dim response = cc.GetPublicRequest("/api/trades?pair=" + pair)
        If response <> "" Then
            Dim responseData = Newtonsoft.Json.JsonConvert.DeserializeObject(Of TRADES_INFO)(response)

            MsgBox(responseData.success, MsgBoxStyle.Information, "サンプル")
            MsgBox(responseData.pagination.limit.ToString, MsgBoxStyle.Information, "サンプル")
            MsgBox(responseData.data.Count, MsgBoxStyle.Information, "サンプル")
            MsgBox(responseData.data(0).order_type + "," +
                   responseData.data(0).rate.ToString("C") + "," +
                   responseData.data(0).amount.ToString, MsgBoxStyle.Information, "サンプル")

        End If
    End Sub

End Module
実行結果

一部ダイアログを表示します。取得出来ていますね。

ちなみにコインチェックのドキュメントに記載はありませんでしたが、pagination のパラメーターは指定できるようです。下記例としてデフォルトでは10件の取得数を100に上げて取得しているサンプルを記載します。

    Sub Main()
        Dim cc As New CoinCheck_Function
        Dim pair As String = "btc_jpy"
        Dim limit As Integer = 100

        Dim response = cc.GetPublicRequest("/api/trades?pair=" + pair + "&limit=" + limit.ToString)
        If response <> "" Then
            Dim responseData = Newtonsoft.Json.JsonConvert.DeserializeObject(Of TRADES_INFO)(response)

            MsgBox("データ数:" + responseData.data.Count.ToString, MsgBoxStyle.Information, "サンプル")
        End If
    End Sub
実行結果

Public API/板情報(order_books)取得

板情報を取得します。パラメーターなどはありません。

Public Class ORDER_BOOKS_INFO
    Public Property asks As List(Of Double)()
    Public Property bids As List(Of Double)()
End Class
Module Module1

    Sub Main()
        Dim cc As New CoinCheck_Function
        Dim response = cc.GetPublicRequest("/api/order_books")

        If response <> "" Then
            Dim responseData = Newtonsoft.Json.JsonConvert.DeserializeObject(Of ORDER_BOOKS_INFO)(response)

            For Each ask In responseData.asks
                Console.WriteLine("asks:[{0}、{1}]", ask(0), ask(1))
            Next

            For Each bid In responseData.bids
                Console.WriteLine("bids:[{0}、{1}]", bid(0), bid(1))
            Next

            Console.ReadLine()
        End If
    End Sub

End Module
実行結果

まとめ

今回はコインチェックのPublic API から「全取引履歴」と「板情報」の取得を行いました。
次回は残りのPublic API「レート取得」と「販売レート取得」を試してみたいと思います。

今回もご覧いただきありがとうございました。

コメント

タイトルとURLをコピーしました