JavaでBitflyerの板情報をAPIで取得して、最新のレートを出力してみよう(仮想通貨の自動売買ツール(bot)制作)

Pocket

 

 

 

前回はJavaで板情報を取得する所まで出来ました。

 

JavaでBitflyerの板情報をAPIで取得してみよう(仮想通貨の自動売買ツール(bot)制作)

【C#】
C#でBitflyerの板情報をAPIで取得してみよう(仮想通貨の自動売買ツール(bot)制作)
C#でBitflyerの板情報をAPIで取得して、最新のレートを出力してみよう(仮想通貨の自動売買ツール(bot)制作)

【Python】
PythonでBitflyerの板情報をAPIで取得してみよう(仮想通貨の自動売買ツール(bot)制作)
PythonでBitflyerの板情報をAPIで取得して、最新のレートを出力してみよう(仮想通貨の自動売買ツール(bot)制作)

 

Pythonは簡単にデータを整形できましたが

JavaC#と同じようにクラスに入れる必要があります。

 

今回の場合のクラスは

 


    public class RateObject
    {
        private double mid_price;

        public double getMidPrice() { return this.mid_price; }

        public void setMidPrice(double mid_price) { this.mid_price = mid_price; }

        private ArrayList bids;

        public ArrayList getBids() { return this.bids; }

        public void setBids(ArrayList bids) { this.bids = bids; }

        private ArrayList asks;

        public ArrayList getAsks() { return this.asks; }

        public void setAsks(ArrayList asks) { this.asks = asks; }

        //BIDのクラス
        public class Bid
        {
            private double price;

            public double getPrice() { return this.price; }

            public void setPrice(double price) { this.price = price; }

            private double size;

            public double getSize() { return this.size; }

            public void setSize(double size) { this.size = size; }
        }

        //ASKのクラス
        public class Ask
        {
            private double price;

            public double getPrice() { return this.price; }

            public void setPrice(double price) { this.price = price; }

            private double size;

            public double getSize() { return this.size; }

            public void setSize(double size) { this.size = size; }
        }
    }


 

こちらのクラスを作っていただいて

 

メインの部分は


p    public static void main(String[] args) throws IOException {
        // TODO 自動生成されたメソッド・スタブ

        String ENDPOINTURI = “https://api.bitflyer.jp”;

         //呼び出し
        String josnData = getHttpRequest(ENDPOINTURI,”/v1/board?product_code=BTC_JPY”);
        

        //JSONデータをクラスに変換
        RateObject mapper = JSON.decode(josnData,RateObject.class);
        
        //BIDとASKのLISTを取得
        ArrayList bids = mapper.getBids();
        ArrayList asks = mapper.getAsks();
        
        //BIDデータを抽出
        BigDecimal rateBid = new BigDecimal(bids.get(0).price);
        //ASKデータを抽出
        BigDecimal rateAsk = new BigDecimal(asks.get(0).price);

        //出力
        System.out.println(rateBid);
        System.out.println(rateAsk);

    }


 

前回から追加された部分は太文字の部分です。

 

 

クラスに入れる部分ですが


RateObject mapper = JSON.decode(josnData,RateObject.class);


 

これを使用するのに「Jsonic」を参照する必要があります。

http://jsonic.osdn.jp/

 

参照する時は自動で参照する方法もありますが

逆に面倒な人は上記のURLからダウンロードしてきてもらって

プロジェクトの所から画像の赤い所を選択し

「jsonic-1.3.10.jar」のようなファイルを参照してください。

 

 

 

 

 

 

 

 

 

変換した後は


//BIDとASKのLISTを取得
ArrayList<RateObject.Bid> bids = mapper.getBids();
ArrayList<RateObject.Ask> asks = mapper.getAsks();


 

関数を使ってリストにデータを入れていきます。

 


//BIDデータを抽出
BigDecimal rateBid = new BigDecimal(bids.get(0).price);
//ASKデータを抽出
BigDecimal rateAsk = new BigDecimal(asks.get(0).price);


 

リストに入っているので最新は0番で取得できます。

 

これを表示すると

 


699519
700016


 

になります。

 

 

jsonicの参照が面倒なのと

整形して入れるクラスが少し長いですが

クラスの作成に関しては

http://json2java.azurewebsites.net/

ここにJsonデータを突っ込めばクラスを作成して出力してくれます。

 

かなり便利なので、これを使用するか使用しないかで

時間が大幅に変わってきます。

 

特にJavaはエラーで落ちるのはかなり厳しいので

しっかりとこのサイトを使用して作成していきましょう。

 

これでBitflyerの板情報は取れましたでしょうか?

 

 

それではCoinCheckなど、他の取引所の板情報も次回はとってみましょう。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です