「MT4でもっと効率的にトレードしたい...でも、プログラミングは難しそう」
「オリジナルのサインツールを作りたい...でも、どこから始めればいいか分からない」
「バックテストで戦略を検証したい...でも、そのためのツールの作り方が分からない」
実は、MQL4プログラミングを使えば、これらの悩みを全て解決できるんです。
今回の記事では、MT4上に矢印を表示させるサインツールの作り方を、プログラミング初心者の方にも分かりやすく解説します。
一般的な情報とは違い、実際のコードも公開しながら、指定条件で矢印を出すまでの具体的な流れを丁寧に説明していきます。
さらに、矢印サインを出せるようになった後のバックテスト方法まで紹介するので、自分のロジックを客観的に検証することも可能になります。
MT4でのトレードをもっと効率的にしたい、オリジナルのツールを作ってみたいという方は、ぜひ最後までお読みください。
この記事の目次
MQL4でMT4の矢印サインツールは作れる?
MQL4プログラミングを覚えれば、MT4に矢印を表示させることはできるのでしょうか?
答えはYESです。
MT4上にある条件を満たしたときに矢印を表示させることは可能です。
あなたはトレードをするにあたって自分のロジックがありますよね?
例えば
- RSIの値が70以上でショートに、30以下でロングに
- ストキャスティクスの2本線が80以上でショート、20以下でロング
- ボリンジャーバンドが2σタッチでショート、-2σタッチでロング
- 短期MAと長期MAのゴールデンクロスでロング、デットクロスでショート
などなど、
エントリーをするときにエントリー条件をある程度決めてから取引しているでしょう。
しかし、これらのエントリーポイントを判断するには、本来ならずっとチャートに張り付いていないといけませんが、矢印を表示させることができれば常にチャートに張り付いていなくても大丈夫なのです。
MQL4では矢印を表示させることだけではなくて、同時にサインを鳴らしたり、スマホ版MT4にプッシュ通知を送るといったこともできます。
MQL4プログラミングで矢印を表示させることによって、オリジナルのサインツールが作れて効率アップができるためMQL4言語をマスターしてサインツールを作りましょう。
MT4の矢印サインツールを自作するメリットとは?
MQL4プログラミングで矢印を表示させるメリットも紹介していきます。
メリットはたくさんありますが、3つだけ紹介しますね。
チャートに張り付く時間を短縮できる
まずMQL4プログラミングで矢印を表示させる最大のメリットは、チャートに張り付く時間を短縮することができるためです。
チャートに張り付いていなくても指定した条件が来ればサインが鳴る仕様にすることができるため、他のことをしている間でもインジケーターがサインを知らせてくれます。
これはとても大きなメリットなのではないでしょうか。
チャートを見ていると離れている間にサインがなってしまったら、エントリーポイントを逃してしまうという思いから、PCの前から離れられなくなってしまいます。
しかし、サインツール化することで、PCの前から離れていてもサインを知らせてくれるためとても便利です。
自分の目で確認していたものを、サインインジケーターが監視してくれていると考えたらとても便利だと思います。
チャートを見る時間を短縮して他のことに当てられたら、家の家事ができたり、子供や家族との時間ができたりと人生はより豊かになります。
さらに自分のロジックで資金が増えるようになったら最高ですよね。
複数のテクニカル指標が同時に監視可能
サイン条件を視覚化することにより他の要素を見ることができます。
エントリーをする際
- オシレーターインジケーターの値
- 移動平均線
- ローソク足の形
- 波形
などは最低限見ると思います。
しかし、この4つの要素を一瞬でみるのは少し大変ですよね?
そのためオシレーター系インジケーターと、移動平均線をサインインジケーター化してしまいましょう。
そうすることでローソク足の形と波形をじっくりと見ることができます。
人間の脳みそは、マルチタスクが得意な方と苦手な方がいます。
僕はマルチタスクができないタイプですので、「サインツール+裁量」でエントリーをしています。
なるべくプログラムで解決できるところはインジケーターにやってもらって、プログラムではできないこと(波形やローソク足のプライスアクション)を自分の裁量でエントリーをしています。
というのもサインが出てエントリーをするだけで損益分岐点を超えるインジケーターを作ることができれば、サインが出てエントリーをするだけでも資金はプラスになるからです。
プラス裁量で負けやすいポイントを回避できれば勝率はさらに上がります。
このようにインジケーターのサイン条件を視覚化することができれば、他の要素をじっくりと見れるのもメリットだといえますね。
バックテストをとることも可能
サイン矢印を表示するだけでなくて、MQL4プログラミングを覚えることができれば、サインの結果のバックテストをとることも可能です。
バイナリーオプションで使用するなら、次足での反発確率を研究したりできます。
FXで使用するなら、指値20pips、逆指値10pipsなどに設定してバックテストをとることが可能です。
プログラミングを覚えることで自分のロジックがどれだけの反発率なのかわかるため非常に便利ですね。
もし勝率が高いロジックならサイン通りに淡々と打っていけば資金は増えますし、勝率がイマイチなら負けるポイントを研究して避けるポイントを見つける必要があります。
このようにバックテストが取れるのもサインツール作成の最大のメリットでしょう。
MT4に矢印を表示させるサインツール作成方法を解説!
MQL4プログラミングで矢印を表示させる方法を簡単に紹介していきましょう。
今回はRSI(14)の値が70以上で下矢印、30以下で上矢印というインジケーターを作っていきます。
仕上がりイメージはこんな感じです。
これだけではエントリーはとてもできませんが、サインを出すまでの過程を紹介していきますね。
順番としては
- 矢印バッファーの宣言
- RSIの値を取得
- RSIの条件を満たしたらサインの条件文を書く
上の流れで作成が可能です。
詳しく解説していきますね。
矢印バッファーの宣言
まずは矢印サインの宣言を行います。赤枠で囲った式で矢印の宣言をしています。
最初にMT4に「下でこのサインを使いますよ」と宣言しておくことで、下の文で簡単に呼び出すことができるのです。
今回はBuffer_0が上矢印、Buffer_1が下矢印とし宣言しておきます。
流れは
- プロパティ関数で矢印の大きさと、色を指定
- Buffer_0とBuffer_1を宣言
- バッファーに矢印サインを当てはめておく
この流れを赤枠内で行っています。
赤枠内のことを行うことで、以下の文でBuffer_0と書けば上矢印を読みこむことができます。
そのためまずは矢印サインの宣言というのを行うのです。
int OnInit()とはインジケーターを入れた時に一度だけ通る関数のことを言います。
その時に使う矢印をMT4に読みこませておくのです。
SetIndexBuffer()という関数を使います。
SetIndexBuffer(0,Buffer_0);
とすることで0番目のバッファ-、名前はBuffer_0と読みこませます。
ただバッファーは初期のままだとラインのため矢印に変えていきます。
その式が、
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,241);
です。
SetIndexStyleという関数を使い0番目のバッファーはアローですよと宣言し、SetIndexArrow(0,241);でアローの番号を宣言します。
241は上矢印、242は下矢印です。
これで準備はおしまいです。
RSIの値を取得
次にRSIの値を読みこみます。
基本的にMT4に標準で入っているインジケーターは呼び出し方が決まっています。
RSIの場合は以下の通りです。
iRSI(symbol,timeframe, period, applied_price, shift );
この文の通りに呼び出せば簡単にRSIの値を取得することができるのです。
今回はrsiという変数を作り、そこにRSIの値を保存していきます。
●symbolは通貨ペア、現在のチャートの場合はNULLにする
●timeframeは時間軸のことで現在表示中の時間の場合は0にする
●periodは期間のため今回は14に
といった感じです。
ここで呼び出したRSIの値を下の条件文に入れる感じですね。
RSIの条件を満たしたらサインの条件文を書く
次にRSIのサインの条件文を書いていきましょう。
条件文は基本的にはif文を使って書くことが多いです。
RSIが30以下で上矢印はこのように書きます。
if(rsi<=30){
Buffer_0[i] = iLow(NULL,0,i)-20*Point;}
もしRSIの値が30以下の時にBuffer_0[i](上矢印)を安値より20ポイント下に表示させる
RSIが70以上で上矢印はこんな感じです。
if(rsi>=70){
Buffer_1[i] = iHigh(NULL,0,i)+20*Point;}
もしRSIの値が70以上の時にBuffer_1[i](下矢印)を高値より20ポイント上に表示させる
こんな感じに書いていくことでRSI70以上30以下でサインを出すツールは作れます。
最初は大変ですが、慣れれば簡単にできますので少しずつ覚えましょう。
今回は流れだけこんな感じなんだと覚えていただけるだけでもいいかと思います。
動画でも詳しく解説しておりますので見てみてください。
サインツールの作り方・開発するまでの流れをご紹介!
今回MT4上に矢印サインを出す方法を簡単にご説明しましたが、サインツール開発までの流れも少し解説していきましょう。
- ロジックの言語化
- ツールの作成
- バックテスト
- 修正
上記の繰り返しでサインツールは作られます。
まずは「どんな条件でサインを出すのか?」を言語化をします。
例えば、RSIのサインを作るなら
- 値は○○以上○○以下か
- RSIの期間、適応価格はどうするのか
- 一本前のRSIの値はどのくらいがいいのか
- 急騰急落のみサインを出すのか、それともすべて出すのか
などなど、RSIだけでも言語化しなければいけない点はたくさんあります。
まずはロジックを細かく言語化することから始めましょう。
次にそのロジックでプログラムを組んでみます。
途中エラーなどが発生する場合もあるかと思いますが、エラーがでる=どこかが間違えているということなので、根気よく完成させましょう。
もしもわからない場合はネットで調べて、それでも解決できない場合はプログラムに詳しい方などに聞いてみるといいです。
途中で諦めるのが、一番もったいないですので最後までやり抜きましょう。
エラーが発生した場合必ず原因があります。
この記事によくある原因などまとめましたのでご覧になってください。
プログラムが無事完成したら、バックテストをとりましょう。
バックテストは少なくても1年分、できれば3年から5年分は取りたいところです。
バックテストの結果を見て、細かい修正や何分足での勝率がいいか?通貨ペア別の勝率、時間帯別の勝率を見て修正をしましょう。
ポイントはどんなところで負けている傾向があるかを見ることです。
その時の形を言語化することができれば、勝率を上げることが可能です。
これを永遠と繰り返せば最強のサインツールができます。
いいサインツールができれば販売もできますし、自動売買化、EA化も視野に入れられます。
このような流れでインジケーターは開発されていますので、興味がある方はチャレンジしてみてはどうでしょうか。
サインツールが最短で作れるようになるMQLプログラミングスクールを紹介!
- MQL4プログラミングを覚えればMT4上に矢印を表示させることはできる
- チャートに張り付く時間を短縮することができるのとバックテストが取れるのが最大のメリット
- MT4上に矢印を出す方法は、矢印バッファーの宣言、RSIの値を取得、RSIの条件を満たしたらサインの条件文を書くという流れで作成できる
- インジケーター開発はロジックの言語化→ツールの作成→バックテスト→修正の流れで行なわれる
MQL4プログラミングを覚えてオリジナルのサインツールを作ることができれば、時間短縮にもなりますし、バックテストもとることができます。
今回は簡単な矢印サインの出し方を解説しましたが、そんなに難しくはないことがお分かりいただけましたか?
MQL4プログラミングって難しそうと思っている方が多いですが、意外と単純で難しくないということを今回は皆さまに伝えたかったです。
当サイトのプログラミングスクールでは、プログラミング完全初心者がインジケーター、EAを開発し、バックテストを取れるようになるまで徹底的に教えています。
さらにMQL4プログラマーとし仕事が取れるようになるレベルまで、さらにプログラムチームで共同開発のインジケーターやEAを作っていけるような環境を用意しています。
興味がある方はぜひこちらをご覧になってください。
⇩⇩