前回の記事より一年開いてしまいました(^^;
記事の最後に、スキャルピングBOTを作るのであれば、ビットコインよりもスプレッドの小さい普通のFXの方が有利なのではないか?というようなことを書いていました。
しかし、根本的な問題が発生しました。通常のFXの取引所は仮想通貨の取引所のようにAPIでのトレードが許可されている取引所が少ないということです。
もちろん全くないわけではありません。国内の取引所でもOANDA証券ではAPIを使ったトレードをすることができます。ただし、一ヶ月の取引量が多い人限定のサービスでした。
では、通常のFXではBOTによるトレードをする人が少ないのかというとそうではありません。こちらはAPIではなく、メタトレードというソフトを介したBOTトレードが主流でした。
ちなみにBOTという言葉も使われずEA(エキスパートアドバイザ)という言葉が使われます。
何というか……歴史と文化が違った印象ですw
まぁ、こうなると、使ってみたくなりますよね?w
メタトレーダー4(MT4)を使ってみる。専用言語のMQL4を勉強する。EAを作る。メタトレーダー5(MT5)を使えば、仮想通貨でのトレードもできることを知る。専用言語のMQL5はMQL4と全然書き方が違うことを知る。MQL5を勉強する……。
……としていると、あっという間に一年が経過したワケですね(^^;
しかしまぁ、ある程度、やりきった感はあるので、自分なりのまとめ記事を書くことにしました。
まず、APIの有利な点は固定費が抑えられることです。これしかないと言っても過言ではないですw
自宅のパソコンで動かす予定の人にとってはあまり関係のない話ですが、APIであればLinuxOSの安いVPSで簡単に動かせます。対して、EAを動かすのであれば、基本はWindowsServerです。どうしても割高になってしまいます。
それ以外の点については、EAが圧勝でした。個人的に重要だと思える点は下記の3点です。
APIだと、移動平均一つとっても全部自分で準備しなければなりません。単純移動平均くらいなら、開発言語にも関数があると思います。
けれど、ほとんどのものは関数があるかどうか調べ、それっぽいライブラリがあるか調べ、なければ作り……となってしまいます。
EAであれば、必要なものは基本的にあります。移動平均を使いたいなら、iMA関数です。引数を変えるだけで、SMAにもEMAにもWMAにもなります。
ボリンジャーバンドならiBands、RSIならiRsi、一目均衡表ですらiIchimokuで簡単に実装できます。
APIでバックテストをするために板情報を記録するコードも書いたりもしました。どこの取引所もそこまで古いデータを提供してくれないことが多いです。
EAであれば、EA向けのデータをダウンロードして読み込めば、過去十年分の検証などを簡単にすることができます。
そして、これがなにげに本当に重要で……。
自分の作ったBOTが今、偶然勝てているだけなのか、本当に勝てるものなのかということがはっきり分かります。
EAを作ってみて、一ヶ月程度の検証は全く当てにならないということがよくわかりました。
APIだと取引所が変われば、基本的に作り直しです。酷いところだと、ローソク足の情報すら提供されておらず、取引履歴データからローソク足を計算するところから始めなければならなかったりします。
EAだと基本的にはそのまま移植が可能です。調整しなければならないのは取引所ごとの売買ルールの部分くらいです。最低・最大ロット数、ストップ・リミット注文の際の値幅制限、IOC・FOKなどの制限。
このくらいを気にしておけば大体問題なく動きます。
結論
APIを使ったトレーディングBOTを作るより、メタトレーダーを使ってEAを作成した方が圧倒的に有利
さて、僕のブログを読んでいる人の多くは仮想通貨界隈の方だと思います。そうすると、メタトレーダーに馴染みがない人が多いと思います。
そこでメタトレーダーについて簡単に解説しておきます。ここまでBOTやEAについてしか書いてこなかったので、メタトレーダー自体が得体の知れない上級者向けのツールに感じられるかもしれません。実際にはメタトレーダー自体は初心者でも簡単にFXをすることができる超多機能なツールです。
面白いことに、メタトレーダーは業者のサーバー用のソフトと、トレーダー向けの売買ソフトの2つで成り立っています。
ちょっとややこしいですね。
仮にですが、僕がFXの取引業者を始めるとします。すると、普通はサーバーを準備して、取引データを処理するためのサーバー側のプログラムを開発して、次にトレーダーが使うためのソフトを開発する……という流れになります。
しかし、サーバー側のソフトをメタトレーダーにすると、もちろんライセンス料は発生しますが、特に何も開発しなくても、すべてが揃った状態で、すぐに顧客に提供できるようになるワケです。
普段から、メタトレーダーを使っている人もサーバー側の部分はあまり意識しない部分です。けれど、ここがメタトレーダーの面白い部分、これだけシェアを伸ばしている理由です。
メタトレーダーには2つの重要なバージョンがあります。MT4とMT5です。基本的に互換性がなく、非常に厄介です。
機能性を考える限り、新しいMT5の方が良いのですが、上述したようにサーバーがあって初めて使えるものなので、現状、MT4のみを採用している業者も多いです。
多くの業者がMT4とMT5の両方をサポートするようになってきましたが、国内ではまだまだ少数派です。
海外の新しい業者であれば、MT5のみを採用しているというケースも稀にあります。
さらに、互換性がないので、EAもMT4のものとMT5のものは別のものです。それぞれ、MQL4、MQL5という別の言語で書かれています。
もし、誰かが作ったEAを購入して運用しようとしているのであれば、現状はMT4用のEAの方が圧倒的に多いです。
自分で開発するという人も注意が必要です。当然、MQLを学ぶことになるわけですが、解説してくれているサイトもMQL4の方が圧倒的に多いのが現状です。
自分で開発して自分で運用するだけであれば、MT5を使った方が良いとは思いますが、僕みたいなスキルの低い趣味プログラマの場合、MT4を選んだ方が良いようにも思います。
※結局僕は両方で作ったんですけどねw
……とまぁ、一概にどちらが良いとは言えないところですね(^^;
まぁ、すでに両方でEAを作ってみた僕としては、今さらMT4を使おうとは思いませんが。EAを作って売るほどのスキルは持ち合わせていませんし。
■最終的にどこまでやったか
現状、MT4で低レバレッジ向けのEAを作成し、2つの取引所で運用しています。
次にMT5でハイレバレッジ向けのEAを作成し、3つの取引所で運用しています。
どちらのEAも2012年初から2021年末までの期間でのバックテストで収支はプラスになっていますが、現状はハイレバレッジ向けのEAは損失を出しています。
トータルはプラスになっていますが、長い目で見ないと何とも言えないところなんでしょうね(^^;
ところで、こうしてみると、国内の取引所よりも海外の取引所を好んで使っているように見えますよね。これにはいろいろ事情があるのですが……。
実をいうと、海外のFX業者は仮想通貨FXもできるケースが結構あるんですよね……。
つまり、もともと作ろうと思っていたビットコインスキャルピングBOTもメタトレーダーとEAという組み合わせて作れるということです。
さらに言うなら、すで販売されている多くのEAでビットコインのトレーディングBOTとして使えるということです。
というわけで、次回は海外FXについて、それから、これから何らかの自動売買(FXも仮想通貨も)を始める人へオススメの方法をまとめてみようと思います。
続きの記事はこちら