見出し画像

【仮想通貨】【自動売買bot】【PHP】BitMEX APIとinvestingのテクニカルデータを使った自動売買システムの構築【簡単】

今回は以前記事に書いた自動売買のシンプルなシステム構築を行う

こちらの記事のBitMEXバージョンとなります。前回同様にシンプルな構造となっており、コードはコメント含めて214ステップ(行)となり、初心者でも理解しやすいようにしています。基本的な流れは

■investing.comのテクニカルデータを分析して売買判定を行う(スクレイピング)

■売買判定の結果により注文を実行

■設定した損益基準を元にポジションを確認し、約定注文を実施

となります。

また、今回はBitMEXがデモトレード用に用意しているtestnetでの運用も可能となるようにしています。

今回の記事(BitMEX自動売買)と前回の記事(bitFlayer自動売買)を理解することで、今後別の取引所で自動売買システムの構築を行う際に各取引所のAPIの差異を埋めて、独自に自動売買の仕組みを作成してくことができるのではないでしょうか。

では実装について解説していきたいと思います。

今回はPHPの環境構築及びバッチ設定の説明は省略し、できるだけ実装のみを解説していきます。

また、BitMEXでのAPIキー及びシークレットは事前に発行しておいてください。

(testnetでバックテストしたい場合はtestnet用のAPIキー、シークレットも別途発行してください。)

※:本稿は利益・損失を保証、確定するものではありません。当該提供情報にていかなる損害を被ったとしても著者は一切の責任を負いませんので了承ください。

1 .必要ライブラリのダウンロード

investing.comからテクニカルデータの分析情報を取得するのに必要な

スクレイピングライブラリとして「phpQuery」を使用しますので、

公式サイトから「phpQuery-onefile.php」をダウンロードし、これから作成する自動売買のphpファイルと同一のディレクトリ階層に配置してください。

2 . 実装(ライブラリ読み込みと定数の設定)

まず先ほどダウンロードした「phpQuery」を読み込み、自動売買で必要な設定を定数で宣言していきます。

<?php
// ライブラリの読み込み
require_once dirname(__FILE__).'/phpQuery-onefile.php';
// 定数の設定
const INVESTING_URL  = "https://jp.investing.com/crypto/bitcoin/btc-usd-technical?cid=1057995"; // BitMex
const INVESTING_TEC  = "#techStudiesInnerWrap div:eq(0) span";
const MY_UA          = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36";
// 本番、検証でAPI KEYは切り替えること
const API_KEY        = "<bitFlayerのAPI_KEY>";
const API_SECRET     = "<bitFlayerのAPI_SERET>";
// 本番環境: www.bitmex.com, 検証環境: testnet.bitmex.com
// const MX_ENDPOINT    = "https://www.bitmex.com";
const MX_ENDPOINT    = "https://testnet.bitmex.com";
const MX_POSITIONS   = "/api/v1/position";
const MX_ORDER       = "/api/v1/order";
const SYMBOL         = "XBTUSD";
const PROFIT_LIMIT   = 500;
const STOP_LIMIT     = -500;
const ORDER_SIZE     = 5;
const POSITION_LIMIT = 1;

INVESTING_URLは前回(bitFlyer自動売買)と異なるURLに設定しています。

cidは特定の取引所と通貨ペアを表すidとなりますが、

1057995とすることでBitMEXのBTC/USDのテクニカル分析ページに遷移するようになっています。

一度ブラウザ等でINVESTING_URLのURLを開いていただくとどんなページかわかります。

MX_ENDPOINTはBitMEXのAPIのエンドポイントとなるドメインを指定しています。

BitMEXでは本番環境とデモ口座(以下testnet)が存在するので2つ設定をしています。

使用環境に合わせて切り替え(使用しない方の定数をコメントアウト)してください。

また、今回のプログラムを実装後、いきなり本番環境で動作させるのではなく、

まずはtestnetでバックテストをしてから本番に移行するのが良いかと思います。

testnetは以下のURLから登録が可能です

https://testnet.bitmex.com/

ここから先は

14,640字

¥ 1,500

プログラムのことに関しては言語問わず対応できます。主にこれからプログラムを覚えていきたい+仮想通貨で自動売買をしたい人向けに記事を書いていきます。