1ビットコインが100万円を超えて(2017年11月末時点)、ますます盛り上がっている仮想通貨売買ですが、この売買操作を自動でできたらいいなと思ったことはないでしょうか?
仮想通貨取引所のBITPoint(ビットポイント)では、高機能トレードシステム「MetaTrader4(MT4)」を使って、ビットコインの自動売買を行うことができます。
今回は、MT4で自動売買を行うためのプログラム「EA(Expert Advisor)」の設定方法を記事にまとめてみました。
※BITPointではデモ口座を作ってMT4で使うことができるので、ここではこのデモ口座を使った設定方法を解説します。
※当記事では、Windows10パソコンでMT4を使って作業を行います。
BItPoint FX MT4をインストールしてデモ口座を申請する
まず、BitPoint用のMT4をダウンロードしてインストールします。
1.下記のサイトから、ここでは「デモ版ダウンロードはこちら」バナーの方をクリックします。

2.プログラムファイルをダウンロードしたら、バナーの下にある「MT4Demo版インストール方法はこちら」を参考にして、インストールとデモ口座の申請を行ってください。
※デモ口座は、MT4上から、すぐに開設することができます。
ストラテジーテスター画面を開く
次に、MT4のEAを設定するために、ストラテジーテスター画面を開きます。
1.MT4の上部メニューから[表示(V)]-[ストラジーテスター(R)]をクリックします。
2.MT4の画面下方に、ストラテジーテスター画面が開きます。
バックテストを行う
バックテストとは、設定した売買ルールを過去の市場データ上で動かしてみて、どのような動きをするのかをシミュレーションすることです。
ここでは、MT4にデフォルトで載っているEA「MACD Sample」を使って、バックテストを行います。
各項目を設定する
1.下記画像のように、ストラテジーテスター画面の各項目を設定します。
エキスパートアドバイザ枠の右枠内:MACD Sample ex4
通貨ペア:BTCJPY.BitCoin vs Japanese Yen
モデル:始値のみ(最も早い方法。バーの始めにしか動かないEA向け)
期間:M15
期間を設定:チェックを入れる
開始日:2017.01.01
終了日:2017.11.30
※[モデル]を「全ティック(利用可能な最小時間枠を使いすべてのティックを生成する、最も正確な方法)」にすると、処理時間はかかりますが、より正確な値が出ます。
※[期間]の「M15」とは、EAを動かすチャートの時間足の値で、15分足のことです。
※ビットコインは、2017年1月ごろには12万円前後だったものが、2017年12月頭には120万円前後と約10倍に値上がりしました。1桁動いた過去データをバックテストに使うのが適切なのかどうかわかりませんが、とりあえず、ここでは過去11ヶ月分のデータを設定します。
2.ストラテジーテスター画面の右上にある[エキスパート設定]をクリックします。
[MACD Sample]画面が開くので、[テスト設定][パラメーターの入力][最適化]の各タブの設定値を確認します。
確認をしたら[OK]または[キャンセル]をクリックして、画面を閉じます。
※各設定値はデフォルト値のまま、ここでは変更しません。
[テスト設定]
[パラメーターの入力]
[最適化]
バックテストを実行する
1.ストラテジーテスター画面の右下にある[スタート]をクリックします。
バックテストの結果を見る
1.バックテストを実行すると、ストラテジーテスター画面の下に[結果][グラフ][レポート]タブが増えています。
2.[グラフ]タブを開きます。
グラフの縦軸が資産で、横軸が取引回数です。
133回取引をして、資産が約950(ドル)減りました。
3.[レポート]タブを開きます。
[グラフ]よりも詳細なバックテストの結果データを見ることができます。
純益は-950.12、純利益は0.00、勝率0と一度も勝っていません。
ここで見るべきなのは[プロフィットファクタ]と[最大ドローダウン]の値です。
[プロフィットファクタ]とは、「利益/損失」の値で、1.0以上ならば儲かります。1.5~2.0ぐらいが妥当な値と言われています。
[最大ドローダウン]とは、資産の減り具合を見る値で、小さい方がよく、30%以下だと優れているようです。
最適化を行う
バックテストの結果に出たように、EA「MACD Sample」をデフォルト設定値のまま使うと勝てないので、「最適化」を行い、利益が出る設定値を探します。
パラメーターを調整する
1.ストラテジーテスター画面の右上にある[エキスパート設定]をクリックします。
2.[MACD Sample]画面が開くので、[パラメーターの入力]タブを開きます。
下記画像のように、[lots]以外の変数にチェックを入れます。
チェックを入れた変数の[スタート][ステップ][ストップ]項目の値を、下記画像のように変更します。
※[ストップ]項目がそれぞれ「1000」と値が大きくなっているのは、「BTCJPY」の場合、小さい値だと、最適化を実行したときに、利益が出る組み合わせが一つもなかったためです。
↓
各変数の意味は、下記の通りです。
TakeProfit:利益確定をする値。単位はpoint(1point=0.1pips)。たとえば、「1000」に設定すると、1ビットコインの価格(レート)が上下して「1000円」の利益が出ると利確する(取引ロット数は影響せず、1ビットコインのレート上の価格差を見て利確)。
Lots:取引ロット。MT4では1Lots=10万通貨。BTCJPYでは1Lots=1ビットコイン。
TrailingStop:トレイリングストップ(逆指値注文をリアルタイムで自動修正する)の値。単位はpoint。
MACDOpenLevel:MACDの絶対値がこの数値以上でエントリーする。単位はpoint。
MACDCloseLevel:MACDの絶対値がこの数値以上で決済する。単位はpoint。
MATrendPeriod:移動平均(EMA)の期間。
この設定で[最適化]を実行すると、たとえば[TakeProfit]は、[スタート]に設定した1.0から[ステップ]に設定した1.0刻みで[ストップ]に設定した1000.0までの1000通りのバックテストを実行します。
ここでは5つの変数をそれぞれ1000通りずつ設定しているので、1000×1000×1000×1000×1000通りのバックテストを行います。
3.設定を終えたら[保存(S)]をクリックし、適当な名前を付けて、設定ファイル(「.set」拡張子)を保存しておきます。
[OK]をクリックします。
最適化を実行する
1.下記画像のように、ストラテジーテスター画面の各項目を設定します。
期間:H1
最適化:チェックを入れる
※[期間]を「M15」から「H1」に変えたのは、「M15」で最適化を実行すると、利益が出る組み合わせが一つもなかったためです。
※[MACD Sample]画面の[パラメーターの入力]タブでチェックを入れた[変数]のみ、設定した値の回数分バックテストを実行します。チェックを入れていない[変数]は、[値]項目に設定した値でバックテストを実行します。
※設定した項目の数や値、期間の長さ等によって処理回数が増えると、バックテストにかかる時間が長くなります。
※ここでは[モデル]を「始値のみ~」にしていますが、より正確な値を出すためには「全ティック(利用可能な最小時間枠を使いすべてのティックを生成する、最も正確な方法)」に変えてください。
2.設定をしたら、[スタート]をクリックします。
最適化の結果を見る
1.最適化を実行すると、ストラテジーテスター画面の下に[最適化結果][最適化グラフ]タブが増えています。
2.[最適化結果]タブを開きます。
利益が出た組み合わせが表示されています。
「バックテストの結果を見る」見出しで見たように、[プロフィットファクタ](利益/損失)が1.0以上(1.5~2.0が妥当)で、[ドローダウン](資産の減り具合)が小さいもの(30%以下)が優れた組み合わせです。
各項目をクリックすると、昇順降順で並び替えることができます。
3.[最適化グラフ]タブを開きます。
グラフの縦軸が資産で、横軸が利益が出た組み合わせの数です。
約2800通りの利益が出る組み合わせがあるものの、一番利益が出ても資産が約2(ドル)増えただけのようです。
利益が出たパラメーターの組み合わせでバックテストを行う
最適化で利益が出たパラメーターの組み合わせ値で本当に利益が出るのかどうか、バックテストを行います。
※過去データを使ったバックテストなので、バックテストで利益が出ても、実際の取引でも利益が出るかどうかはわかりません。
パラメーター値を設定する
[最適化結果]タブの組み合わせ一覧の中から行を選択してダブルクリックすると、バックテスト用の入力値として、そのパラメーター値が自動で入力されます。
1.[最適化結果]タブを開きます。
[プロフィットファクタ]項目をクリックして並び替えます。
1行目をマウスでダブルクリックします。
※ここでは[プロフィットファクタ]項目を昇順で並び替えて「2.55」という値の行が表示されたので、この行を使います。
2.自動的に[セッティング]タブに切り替わるので、[エキスパート設定]をクリックします。
[MACD Sample]画面のパラメーターの入力タブが開きます。
[値]項目に「1.」で選択した組み合わせのパラメーター値が入力されていることを確認します。
確認をしたら[OK]または[キャンセル]をクリックして、画面を閉じます。
バックテストを実行する
1.[セッティング]タブの画面で、[スタート]をクリックします。
※ここではバックテストを実行するので、[最適化]にはチェックを入れません。
※「最適化を行う」見出しで、[モデル]を「全ティック(利用可能な最小時間枠を使いすべてのティックを生成する、最も正確な方法)」に変えて最適化を実行した場合は、このバックテストも同様に「全ティック~」に変えて実行してください
バックテストの結果を見る
1.[グラフ]タブを開きます。
グラフの縦軸が資産で、横軸が取引回数です。
4回の取引をして、資産が約0.8(ドル)増えました。
(グラフが初期証拠金10000(ドル)よりややマイナスからスタートしている理由は、よくわかりません)
※青色の折れ線は「残高」で、緑色の折れ線は「有効証拠金」です。
「残高」とは、含み益、含み損を含まない現金の資産です。
「有効証拠金」とは、「残高」に含み益、含み損を加えた資産です。
この組み合わせ値は、含み益、含み損を加味すると、損をしてしまうようです。
2.[レポート]タブを開きます。
[プロフィットファクタ](利益/損失)には、損失が0のためなのか、値が入っていません。
[最大ドローダウン](資産の減り具合)は0.12%と小さい値になっています(損失は0なのに資産が減っているのは、グラフがややマイナスからスタートしているのと同じ理由でしょうか?)。
3.ついでに[結果]タブを開ききます。
4回の取引内容が個別に記載されています。
各項目の内容・単位は、下記の通りです。
時間:取引日時
取引種別:buy 買いエントリー、sell 売りエントリー、modify 指値・逆指値変更、close 成行注文による決済、t/p 指値到達による決済(利確)、s/l 逆指値到達による決済(損切)
数量:Lots(1Lots=1ビットコイン)
価格:円(1Lots=1ビットコインの価格(取引日時時点の価格))
損益:ドル
残高:ドル
今回の取引内容にはありませんが、[取引種別]がclose(成行注文)で決済されたものは、[価格]の差額(円)を[時間](取引日時)時点のドル/円レートで割ると、[損益](ドル)になりました([数量]が0.10なので、1/10の[価格]で計算)。
※しかし、[取引種別]がt/p(指値到達による決済)やs/l(逆指値到達による決済)で決済されたものは、[価格]の差額(円)をドル/円レートで割っても[損益](ドル)の値にならず、どういう計算がされているのか不明です。
自動売買の設定を行う
ここまでの作業で、自動売買を行うプログラムEA「MACD Sample」の設定値を決めることができたので、いよいよEAをチャートに適用します。
EAの設定をする
1.MT4の上部メニューから[ツール(T)]-[オプション(O)]をクリックします。
2.[オプション]画面が開くので、[エキスパートアドバイザ]タブを開きます。
[自動売買を許可する]と[DLLの使用を許可する](信頼できるアプリケーションのみで有効)にチェックを入れます。
[OK]をクリックします。
※ここでは、この2つにチェックを入れますが、別途購入したEAを使用する場合等、該当EAの取扱説明書等の指示に従って設定を行ってください。
ナビゲーターウィンドウにEAを表示する
1.MT4の画面左側に表示されている[ナビゲーター]ウィンドウ内に、使用するEA(エキスパートアドバイザ)を表示させます。
※[ナビゲーター]ウィンドウが表示されていない場合は、MT4の上部メニューから[表示(V)]-[ナビゲーター(N)]をクリックして表示させます。
EAをチャートに適用する
1.[ナビゲーター]ウィンドウにあるEAを、適用する[チャート]ウィンドウ上に、ドラッグ&ドロップします。
※チャートが表示されていない場合は、MT4の上部メニューから[ファイル(F)]-[新規チャート(N)]-[BTCJPY]をクリックして表示させます。
2.[Expert – MACD Sample]画面が開くので、[全般]タブを開きます。
下記画像のように、各項目にチェックが入っていることを確認します。
3.[パラメーターの入力]タブを開きます。
下記画像のように、各変数の[値]項目の数値を変更します。
ここで、EAの最適化で探し出した「利益が出る値」を入力します。
[OK]をクリックします。
※ここでは、「利益が出たパラメーターの組み合わせでバックテストを行う」見出しで入力した値を設定します。
↓
4.EAが適用されたチャートには、[チャート]ウィンドウの右上に、適用したEAの名称と顔アイコンが表示されます。
5.MT4の上部ツールバーの[自動売買]が、下記画像のように「オン」になっていることを確認します。
※「オン」になっていないと、自動売買は動作しません。
売買結果を自動でメール通知する設定を行う
最後に、自動売買の結果を自動でメール通知する設定を行います。
設定方法は、下記の記事を参照ください。

まとめ
以上の設定で、MT4でEA「MACD Sample」を使ったビットコインの自動売買を行うことができます。
まずは、BITPointのデモ口座で試してみて、利益が出たら、実際の口座で実践してみてはいかがでしょうか?
※すべての取引・作業は、自己責任でお願いします。