第五回では板情報をプログラムで取得して、その値を使って売買してくれるプログラムを学習しましょう。
システムトレードの根幹といってもいい最も重要な章なので、ぜひ身につけましょう。
第四回で売買するコードの詳細を説明しているのでまだの方は先にそちらを御覧ください。
板情報の取得
板情報は買い注文と売り注文がどのように出ているかの情報です。
システムトレードではこの板情報を取得し、得た価格や数量からアルゴリズムを動かします。
そこで今回は例として、今出ている買い注文で一番安くすぐに通る注文を出すプログラムを学習しましょう。
これは成り行き注文のようなものですね。
ではこちらから今回のプログラムをダウンロードしてください。
※実行すると売買してしまうので、記事を最後まで読んでから実行してください
初期設定としてkeyとsecretを入力します。
次にトレードした通貨を入力します(例ではbtcとjpyのペアとなっています)
板情報取得の詳細
zaif.depth(pair)の命令が板情報取得の命令です。
pairにははじめに設定したペアが入っています。 btc_jpyはビットコイン・円の取引を示します。 実行すると今出ている板情報がzaif_board_dataに保存されます。 中身の例:{'asks': [[417310.0, 0.123], [417315.0, 0.0848], .............. 保存されている情報は配列構造になっていて、16~19行で必要な情報を抜き出しています。
ask_price = zaif_board_data['asks'][0][0] ↑のコードが何をしているか詳しく書くと、 zaif_board_data 中身の例:{'asks': [[417310.0, 0.123], [417315.0, 0.0848], .............. zaif_board_data['asks'] 中身の例:[[417310.0, 0.123], [417315.0, 0.0848], .............. zaif_board_data['asks'][0] 中身の例:[417310.0, 0.123] zaif_board_data['asks'][0][0] 中身の例:[417310.0] zaif_board_dataのasksの一番はじめの要素([417310.0, 0.123])の一つ目の要素([417310.0])を抜き出しています。 これが売り注文で一番安い値段です。 実行するとこんな感じで表示されると思います。
板情報を使った注文
最後は取得した情報を使って注文をだします。
第四回からの変更点はpriceの部分です。
zaifP.trade(currency_pair=pair, action="bid", price=int(ask_price), amount=0.001) priceにはint(ask_price)が入っていますが、 まずint()でask_priceを整数にしています。 ※btc_jpyの注文は整数じゃないとエラーが発生するため そしてask_priceには先程取得した売り板で一番安い価格が入っています。 これを実行すれば売り板で一番安いものを即座に購入します。 実行したら実際にzaifにログインして買えているか確認してみましょう。
Tips:zaifとzaifPの違い
zaif:共通情報へのアクセス
zaifP:プライベート情報へのアクセス
zaifは誰でも見れる板情報取得等の命令を送るために必要です。
zaifPはトレードや残高等ログインしないと行えないような命令を送るのに必要です。
いかがでしたでしょうか?
板情報取得と注文が行えれば、アイデア次第でシステムトレードは可能です。
後はそのアイデアを形にするために必要なコードを知る必要があります。
第六回では今回の応用として、条件を指定して購入するプログラムについて学習しましょう。
寄付(Bitcoinアドレス): :1L2rECmmgbmgy8VcuNkSdYQxZYtopJmdSE