ビットコインの市場は、株や為替とは異なり、土日もオープンしています。
この土日オープン時間を有効活用して、収入を得られたらいいと思いませんか?
あなた自身が土日に何かをする必要はありません。
タイトルにもある通り、この記事ではビットコインの自動売買を対象としていますので。
トレードBotが、あなたの代わりに動いてくれます。
さて、ビットコインを自動売買するには、取引会社の API を利用するのが一般的かと思います。
ですが、今回は API を使わず、つまり Python などの一般的なプログラミング言語を使わずに、ビットコインの自動売買プログラムを利用する方法について書きました。
記事タイトルにある通り、今回はMT4(MetaTrader4)の中にあるMQL4言語でプログラムを書きます。
MetaTrader4とAPI利用とを比べてみる。メリットとデメリット
API利用と比べて、MetaTrader4の自動売買を使う利点を2つ挙げてみたいと思います。
- メタトレーダーのユーザーならすんなり入っていける
- バックテストツールなど含めてワンストップなので、とっつきやすい
→APIの場合、バックテストツールを自前で書かないといけないor探さないといけない
また、チャート画像についても、プロットするライブラリの使い方をマスターしないといけない
また、チャート画像についても、プロットするライブラリの使い方をマスターしないといけない
また、MT4を使う方法の欠点も挙げてみます。
- 発展性という点で劣る
→データ分析系、機械学習系のライブラリなど、先端的な内容に踏み込もうとした際、頭打ちになりそう
- MetaTrader4では相対取引方式を利用していたりして、ビットコインの値動きがフェアじゃない場合もある
→APIを使える取引所は板取引方式なので、自分が入れた注文が見えたりして、透明性が高い
MetaTrader4が多数派で、MetaTrader5が少数派の状況はいつまで続くのか
ここからちょっと余談になりますが、MetaTrader4を提供しているMetaQuotes社は、FX取引会社にたいして、すでに MetaTrader4 の新規申し込みを停止しているようです。
ですので、これ以上MT4(MetaTrader4)を使ったトレード環境が増えることはなさそうです。
だからといって、今回の記事内容がすぐにオワコン化することはないとも感じています。
なぜかというと、ユーザー側もFX会社側も、MT5への移行があまり進んでいないように見えるからです。
ユーザー側は、私も含めて技術面でついていけてない人がいます。また、技術がある人でも、MQL4に対してとくに不満を感じていない、などの理由で移行しない人もいるようです。
ユーザー側は、私も含めて技術面でついていけてない人がいます。また、技術がある人でも、MQL4に対してとくに不満を感じていない、などの理由で移行しない人もいるようです。
また、 FX会社のMT5移行もあまり進んでいないようです。日本国内のFX取引会社でMT5を初めて導入したのは、つい昨年(2020年)のことです。
なので、もうしばらくMT4多数派MT5少数派の状況が続きそうです。
MetaTrader4でビットコインを取引できる会社はいくつあるのか
現在、ビットコイン(BTS/USD)をMT4で取引できる会社は10社前後あるようです。
(厳密に調べたわけじゃないので、もっとあるかもしれません)
(厳密に調べたわけじゃないので、もっとあるかもしれません)
たとえば、
- TradeView
- FXOpen
- トレーダーズトラスト
などです。
ただ、土日もトレードできる会社は本当に数えるしかないです。
私自身利用してみて、MT4かつBTCUSD対応かつ土日オープンの条件を満たす会社で、いいかなと思うのは Exness というFX会社です。
MT4環境ならここが無難だと思います。繰り返しますが、 MT4環境だと土日にビットコイン取引できる選択肢自体が無い感じです。(あくまでも、MT4(MetaTrader4)が条件に入っている場合になります。MT5(MetaTrader5)や、API利用等を含めると、もっともっと選択肢は広がります。)
Exnessはスプレッドは広めですが、スワップがありません。
だから長めに保有してもジワジワお金を吸い取られることはありません。
ビットコインの自動売買プログラムはどう作ればいいか
最後に、ビットコインの自動売買プログラムの作り方について軽く触れておきます。
ビットコインはずっと上昇基調が続いているため、平均回帰系の指標(RSIなど)ではなく、トレンド系の指標(移動平均線など)のほうが成績がいいです。加えて、「売り」から入るLogicは思いきって外して、「買い」から入るLogicだけにすると、さらにバックテストの成績が良くなります。移動平均線の単純なクロスでも、ソコソコいい成績が出ます。
ここで1つ注意点があります。バックテストはあくまでも過去のデータを対象にしていることをお伝えしたいと思います。未来のデータに対しても同じような結果を出せるとは限りません。 よって、バックテストの結果を鵜呑みにはできないです。
ここで1つ注意点があります。バックテストはあくまでも過去のデータを対象にしていることをお伝えしたいと思います。未来のデータに対しても同じような結果を出せるとは限りません。 よって、バックテストの結果を鵜呑みにはできないです。
ビットコイン価格が移動平均線を上回ったら「買い」を入れる、トレンドフォロー戦略のバックテスト結果を貼っておきます。
ソースコードも貼っておきます。
#define MAGIC 55821
input double Lots = 0.1; // 取引ロット数
int Ticket_L = 0; // エントリー(買い)注文の結果をキャッチする変数
int Exit_L = 0; // エグジット(売り)注文の結果をキャッチする変数
// ------------------------------------------------------------
void OnTick()
{
double M15_Close1 = iClose(NULL,15,1); // 1本前の15分足
double M15_Close2 = iClose(NULL,15,2); // 2本前の15分足
double H1_SMA20_00 = iMA(NULL,60,20,0,MODE_SMA,PRICE_CLOSE,0); // 現在(Close0)の1時間足SMA
OrderSelect(Ticket_L,SELECT_BY_POS,MODE_TRADES); // 保有中の買いポジションを選択
// 買いエグジット
if(
M15_Close2 > H1_SMA20_00
&& M15_Close1 < H1_SMA20_00
&& ( Ticket_L != 0 && Ticket_L != -1 )
)
{
Exit_L = OrderClose(Ticket_L,Lots,Bid,3,Red);
if( Exit_L ==1 ) {Ticket_L = 0;}
}
// 買いエントリー
if(
M15_Close2 < H1_SMA20_00
&& M15_Close1 > H1_SMA20_00
&& ( Ticket_L == 0 || Ticket_L == -1 )
)
{
Ticket_L = OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,0,MAGIC,0,Blue);
}
}
免責事項:本記事で載せたソースコードはあくまで1つの例に過ぎないです。(しかも、残念な例かもしれません。) ですので、利用する際はデモアカウント稼働までに止めていただくようお願いします。ライブアカウントでの稼働は想定していません。
自動売買システムが用意できたら、まずはデモ口座で様子を見ます。
デモ口座へ自動売買システムをセットする方法は、前回の記事↓↓で書きました。
イケそうなら状況に応じてLotを上げてみてください。デモ口座であっても資金が増えるとうれしいし、自信にもなりますよ。
私自身の話をすれば、今年(2021年)の6月~9月にかけて、Exnessのデモ口座を利用していました。
そこでわかったことを少しシェアします。
MT5やAPIの環境と比べてスプレッドが広めなので、超短期売買(スキャルピングや1時間未満ホールドのデイトレード)などで利益を出すのは難しいと感じました。 30分足より上であれば勝負できるかなと感じました。
スプレッドが広いとはいえ、MT4業者の中では、Exnessは検討に値するスプレッド値(5,000~10,000Point)だと思います。ほかのMT4業者はもっとめちゃめちゃ広くて、長期足であっても、とても利益を出せそうにないです。
おわりに
仮に、勝ち負けトータルで、1日に1万円の利益を残してくれる自動売買プログラムを用意できたとします。
株や為替だと、月に20日くらいしか市場が開いていないので、月の利益は20万円です。
しかし、ビットコインだと土日も開いているので、月に30万円になる計算です。
しかもそれが毎月続くわけです。同じ性能なのに、年間で120万円もの差が開いてきます。
なので、土日のビットコイン自動売買は、やってみる価値があると思っています。