ブレイクアウト手法のMT4のEAは稼げるのか

MT4のEAにはさまざまなトレード手法があり、中でも大きな利益を狙える可能性があるのがブレイクアウト手法のEAです。ブレイクアウトはレンジ相場から大きなトレンド相場に発展する際に出現する値動きで、ブレイクアウトが生じるとブレイクした方向に大きく値が動くことがあります。ブレイクアウトの手法でエントリーが成功すると大きな利益を出すことができるため、初心者にも人気の手法です。では実際ブレイクアウト手法のEAはしっかりと稼ぐことができるのでしょうか。

 

ブレイクアウトが発生し大きく予想の方向に値が動くと、先述のように大きな利益を得ることがあります。しかしながらブレイクアウト手法には落とし穴がいくつかあります。

 

ひとつ目はブレイクアウトは必ずしも長期的なトレンドに繋がるわけではないということです。たとえば上昇方向にブレイクアウトが成功しても、上昇が長く続かずすぐに下降することも多々あります。そうすると利益を出し続けることができません。またブレイクアウトはだましも多く、一度ブレイクアウトしたと思ってもトレンドが発生しきらずトレンド相場が終わってしまうこともよくあります。

 

そしてブレイクアウト手法のEAの最大の落とし穴は、ブレイクアウト自体そう頻繁に起こるものでなく、エントリーのチャンスが少ないという点です。川祖背相場の70%程度はレンジ相場と言われており、トレンド相場の発生は1日の中でも30%程度しかありません。

 

しかしながら24時間自動で売買をしてくれるEAを活用すれば、少ないチャンスを確実に捉えてくれるため、ブレイクアウトが生じた際にはきっちり利益を出してくれるでしょう。ブレイクアウト手法のEAを選ぶ際には、だましに対する対応をきちんと行っているかを見極めてください。優秀なブレイクアウトのMT4のEAを選べばトレンド相場できちんと利益を出してくれます。

MT4 のEAのソースコードとは

MT4 のEAのソースコードとは

MetaTrader4 (MT4)のExpert Advisor(EA)はソースコードを構築することでだれでも自動売買ツールを作成することが可能です。今回は、このEAの背後にある「ソースコード」に焦点を当てて、その概要や重要性、そして基本的な構造について詳しく解説します。

1. ソースコードとは

ソースコードとは、プログラムの元となる書かれたコードのことを指します。このコードを通じて、プログラムは特定の命令や動作を実行するようになっています。MT4のEAにおけるソースコードは、MQL4というプログラミング言語で記述されます。

2. MQL4言語の特徴

MQL4は、C言語をベースにした言語で、特に取引ロジックや金融マーケットの動向に特化して設計されています。以下は、MQL4の主な特徴です。

取引指示のための専用関数が多数用意されている。
金融インディケーターや時間関数など、取引に関連する多様な機能がサポートされている。
MT4環境に組み込まれており、容易にバックテストやデバッグが行える。

3. 基本的なEAのソースコードの構造

以下は、MT4のEAのソースコードの基本的な構造を示す例です。

// 宣言部
input double TakeProfit = 10.0;
input double StopLoss = 10.0;

int OnInit()
{
// EAの初期化時のコード
return(INIT_SUCCEEDED);
}

void OnDeinit(const int reason)
{
// EAの終了時のコード
}

void OnTick()
{
// 新しい価格データが到着する度に実行されるコード
double CurrentPrice = iClose(Symbol(), 0, 0);
if (条件) {
OrderSend(Symbol(), OP_BUY, 1.0, CurrentPrice, 3, 0, 0, “”, 0, 0, Green);
}
}
このコードは大まかに、以下の3つの部分に分けられます。

a.宣言部: EAの動作に必要なパラメータや変数を宣言する部分。
b.OnInit()関数: EAが初めてチャートに追加される際に実行される部分。
c.OnTick()関数: 価格の更新があるたびに実行される部分。取引ロジックの主要部分がここに記述されます。

 

4. ソースコードの重要性

EAのソースコードは、その取引戦略やロジックを正確に反映するものであり、トレーダーの意図をコンピュータに伝える役割を果たします。よって、ソースコードの品質や正確性が取引結果に直結するため、非常に重要となります。

5. ソースコードのカスタマイズと最適化

MT4のEAのソースコードは、トレーダーの取引戦略や考えに合わせてカスタマイズ可能です。これにより、市場の変動やトレード戦略の変更に柔軟に対応することができます。また、定期的にソースコードの最適化や調整を行うことで、より高いパフォーマンスのEAを目指すことができます。

以上のようにMT4のEAのソースコードは、その動作や取引戦略を制御する中心的な要素です。MQL4という特有の言語を使用しており、取引に関するさまざまな機能やツールを利用して、効果的な自動取引を実現することができます。正確で最適化されたソースコードを持つことは、成功するEAの鍵となります。

EAでのBidとAsk

MT4(MetaTrader 4)のEAでのBidとAsk

BidとAskは、市場参加者が購入または売却する際の価格を示すもので、MT4(MetaTrader4)のEA(Expert Advisors)でも売買の際に使用します。EAは、プログラミングされた条件に基づいて取引を実行する自動売買プログラムです。これにより、トレーダーは感情の影響を受けずに市場を取引することができ、効率的かつ一貫したトレードを行うことができます。EAが取引を行う際に重要なのは、市場の価格を決定する要素であるBid(買い注文)とAsk(売り注文)です。

Bidは、市場での現在の最高価格で買いたいトレーダーが支払う価格を指します。一方、Askは、市場での現在の最低価格で売りたいトレーダーが受け取る価格を指します。市場のスプレッドは、BidとAskの価格差です。スプレッドは通常、取引所やブローカーの手数料として取られます。

EAがトレードを行う場合、通常は特定の条件が満たされた際に取引が行われます。例えば、特定のテクニカルインジケーターが一定のレベルに達した場合、EAが自動的に売買注文を出すことがあります。この際、EAは現在のBidとAskの価格を考慮して、適切な取引価格を決定します。

しかし、注意が必要なのは、MT4のEAがBidとAskの価格を正確に取得する方法です。MT4のEAは通常、チャート上に表示されるBidとAskの価格を使用しますが、これはリアルタイムの市場価格とは少し異なることがあります。市場の変動によってスプレッドが広がったり縮まったりするため、実際の取引価格はEAが計算した価格とは異なることがあります。

したがって、EAを使用する際には、BidとAskの価格を正確に取得する方法や、スプレッドの影響を考慮する方法について慎重に検討する必要があります。一般的には、API(Application Programming Interface)を使用してリアルタイムの市場データを取得する方法や、EA内でスプレッドを考慮した計算を行う方法があります。

要するに、MT4のEAはBidとAskの価格を適切に理解し、市場の変動やスプレッドの影響を考慮してプログラムされる必要があります。これによって、より正確で効果的な自動売買プログラムを開発し、トレードの成功率を向上させることができるでしょう。

MT4のEAとインジケーター

MT4のEAとインジケーター

MT4のEAは自動で売買を行ってくれるソフトで、プログラミングされたロジックに従いトレードを繰り返します。売買の判断基準に利用されるのがインジケーターです。インジケーターは為替チャートに表示し、インジケーターのサインをもとにテクニカル分析を行います。インジケーターは非常に多くの種類があり、MT4にはメジャーな30種類のインジケーターが搭載されています。MT4に搭載されていないものであっても、インターネット上でダウンロードしてMT4で利用することができます。

このインジケーターから出たサインをもとに売買を行うようプログラミングされているのがEAです。EAは自分自身でトレードのタイミングを計っているのではなく、インジケーターが出したサイン通りにトレードを行っています。たとえば、このラインにタッチしたらエントリーする、といったことがプログラミングされています。人間の目で行っていたことをプログラミング化し、EAはそれを繰り返しています。EAトレードだけを行っている方でも、ある程度インジケーターの知識は必要です。

インジケーターをいかに使いこなせるかで、チャート分析を正確に行えるかが変わってきます。たくさんのインジケーターを使えば正確にチャート分析を行えるというわけではありません。それぞれのインジケーターの役割や意味を理解したうえでチャートに表示させなければ、もしくはEAにプログラミングしなければ、全く意味がありません。

裁量トレードであってもEAを作成する場合であっても、必要なインジケーターを見極め、チャートに表示させ根拠を持ってトレードをすることが大切です。初心者のうちはメインのインジケーターをひとつやふたつ程度に絞り、使いこなせるように練習するといいでしょう。どれだけ上級者であっても3~4つ程度のインジケーターを使う方が大半です。

MT4のEAをMT5用に変換するには?

MT4のEAをMT5用に変換するには?

MT4のEAをMT5で使えるように変換するには、コンバーターソフトが必要です。MT4のEAはMT4でしか稼働せず、MT5で使うにはコードをアップデートしなければいけないからです。インターネットで無料で配布されているので、MT5に乗り換えた方はコンバーターソフトを活用してください。たいていのソフトは難解な手順なく、かんたんに変換できます。

変換用のソフトはさまざまありますが、たいていの場合EAだけでなくインジケーターやスクリプトもMT4で使っていたものをそのままMT5用に変換することができます。そのためMT5に乗り換えても、今までと同じ環境でEAトレードや裁量トレードを行うことができます。

現在のところまだまだMT4の方が主流ではありますが、いずれMT5が主流となってくるでしょう。実際、MT4の開発元であるメタクオーツ社でも、MT4の配布を終了し、MT5を全面的に押し出しています。いずれはMT4は廃止となるようです。

MT5は、動作スピードが大幅に改善され、細かな機能もより充実しています。インジケーターも豊富に搭載されているため、利便性も向上しています。裁量トレードでも、エントリーポイントをきっちり見極めれるため、より精度の高いトレードができるようになりました。

MT4が長く使われていることから、MT4対応のEAが圧倒的に多いため、MT5への乗り換えがなかなか進んでいませんが、将来的にはMT5へと移行していくでしょう。MT5用のEAが少ないため、コンバーターソフトを使いMT5用に変換するという方法を取らなければなりませんが、これからはMT5用のEAもどんどん開発されていくでしょう。そうなれば変換用のソフトも不要になります。過渡期の一時的な対策として、変換用のコンバーターソフトを活用しながら、徐々に乗り換えていくのがいいでしょう。

自作EAはデコンパイルされる?

MT4の自作EAはデコンパイルされる?

MT4のEAは自作することができますが、2022年現在デコンパイル対策は必要なのでしょうか。結論から言うと、現在ではMT4のEAはデコンパイル出来ないようになっています。

デコンパイルとは、EAからソースコードファイルを復元させることで、デコンパイルできてしまうとEAのロジックを含むソースコード全てが盗まれてしまう可能性があります。2014年以前のMT4のEAでは、このデコンパイルが比較的かんたんにできてしまう仕様だったため、悪質なデコンパイルサイトが横行していました。EAは知識財産に当たるため、著作権の侵害です。EA開発者はデコンパイルしてソースコードを盗まれないようにする対策が求められていました。EA自体にプロテクターを掛けるといった対策が一般的でしたが、中にはプログラマーがプロテクター解除を受注しているケースもあったようです。

しかしそれに対しMT4側も著作権保護のために対策を取りました。2014年に行われたbuild610へのアップデート以降は、デコンパイルができないような仕様になりました。現在のMT4のメタエディタで作成したEAは、コンパイルして保存すればデコンパイルはできません。それにより無料・有料でデコンパイルを受けていたサイトは現在ではほぼ確認できません。

ではEAのソースコードは全く見れなくなってしまったのでしょうか。EAのソースコードは、EA開発者自身がオープンソースとして公開している場合に限り確認することができます。日本では一部のみ公開や、コードが完全にコピーされないように工夫されているものが多いです。海外のMT4のEA掲示板では、完全オープンソースのEAも多く掲示されているので、プログラミングの練習を行いたい方は一度掲示板を覗いてみてください。オープンソースのものであれば、自己流にコードを組みなおすこともできます。

MQL言語を学ぶメリット

MT4のEAで使われるMQL言語を学ぶメリット

MT4のEAで使われるプログラミング言語はMQL言語で、MT4の開発元メタクォーツ社が開発しました。MQL言語は、プログラミング業界で幅広く使われている、C言語に近いとされています。C言語を扱ったプログラミング経験のある方なら、比較的扱いやすいでしょう。MQL言語に関する専門書も販売されています。MQL言語では、メタクォーツ社のEA、カスタムインジケーター、スクリプトを開発することができます。MQL言語を学ぶことでどういったメリットがあるのでしょうか。

▷EAのロジックへの理解が深まる
自分自身でEAのプログラミングができるようになると、思いついたロジックは全て検証することができます。このロジックはうまくいくのではないか、この手法はEAで使えるのではないか、など自由にEAを作成し、デモ口座でテスト稼働させることが可能です。それにより、ロジックの落とし穴や、ロジックの組み合わせ方の相性の良し悪しなどが見えてきます。

▷配布されているEAの中身が理解できる
インターネット上では無数にEAが配布されていますが、優秀なEAかどうかの判断はなかなか難しいものです。少ない説明だけではどういった中身なのかの判断が難しいときもあります。しかし自分でEAを作って検証することで、EAの中身への理解力が高まります。検証を重ねていくことで、どういったロジックならうまくいくのか、使われている手法の欠点にはどのようなカバーが必要かなどが分かってきます。そうすることで優秀なEAの判断が素早く正確にできるようになるでしょう。EAの欠点がすぐに分かるようにもなります。

配布されているMT4のEAの中にはオープンソースのEAもあり、MQL言語の勉強やEAの理解を深めるためにとても役立ちます。無料のリソースを活用してMQL言語を学んでみてください。

MT4でEAを2つ以上稼働させたいときは?

MT4でEAを2つ以上稼働させる場合、基本は「ひとつのMT4でひとつのEA」です。システム上ひとつのMT4でEAを2つ以上稼働させることは可能ですが、相互干渉のリスクがあるのでおすすめではありません。相互干渉が起きてしまった場合は、EAでエラーが起きてしまう可能性があります。EAを2つ以上稼働させたいときは、EAごとにMT4をインストールするようにしてください。

またEAごとにMT4を分ける、つまり口座を分けることで資金管理をしやすくなるというメリットもあります。EAごとにMT4つまり口座を分けることで、他の口座でのトレードに影響を与えることもなくなります。複数アカウントを保有している場合のロスカットは口座ごとに行われます。たとえばひとつのEAで大きく損失を出してしまいロスカットされてしまっても、他の口座には影響を与えません。EA同士で損益を相殺することはできませんが、損益がEAごとに独立しているので、EAごとの資金管理がしやすくなります。トレードごとにMT4を使い分けることで、トレードの検証がよりかんたんにできます。相互干渉を避けるためだけでなく管理の利便性の点からもEAを2つ以上稼働させる場合は、EAごとにMT4を分けることを推奨します。

MT4のEAにコメントを設定する方法

MT4にはポジションのコメント表示機能があり、ポジションオーダー時にコメントを残すことができます。EAではEAの名前やバージョン情報などがコメント欄に入力されています。複数のEAを稼働させている際や裁量トレードで複数のトレード方法を行っている際に、どのポジションがどのEAあるいはトレードで発注されたものなのかを判別するために活用することができます。

コメントの入力方法は以下の手順です。

  1. MT4上部のメニューバーから「ツール」→「新規注文」をクリックする。
  2. 「注文パネル」が表示され「Comment」欄があるのでそこに入力する。

コメントを確認する方法は以下の手順です。

  1. MT4上部の「ターミナル」アイコンをクリックする。(もしくはチャート画面でキーボードのF9を押す。)
  2. ターミナル左下の「取引」タブを選択する。
  3. 保有中のポジション一覧が表示され、見たいポジションの上で右クリックする。
  4. 「Comment」を選択する。
  5. ポジションの右側にコメントが表示される。

コメントは最大31文字まで入力することが可能です。トレードの詳細を入力しておくことで、過去の取引履歴を見たときやトレードの分析のときなどにも役立ちますのでぜひ利用してみてください。

MT4のEAに関する通知をメール送信する方法

多くのインジケーターやEAには通知機能がついているので、MT4で指定したメールアドレスに通知をメール送信することができます。メール通知にはGmailのアドレスが必要です。手順は以下の通りです。

①セキュリティ設定を変更する

  1. Googleにログインし「Googleアカウント管理」→「セキュリティ」をクリックする。
  2. 「安全性の低いアプリのアクセス」の許可を有効にする。

②MT4での設定

  1. MT4上部のメニューバーから「ツール」→「オプション」をクリックする。
  2. 「オプション設定」から「E-メール」タブを選択する。
  3. 「有効にする」にチェックを入れ、詳細を入力する。
    • SMTPサーバー:smtp.gmail.com:465(コピペする)
    • SMTPログインID:Gmailのアドレス
    • SMTPパスワード:Gmailのパスワード
    • 発信元:Gmailのアドレス
    • 送信先:受信したいメールアドレス
  4. 「テスト」をクリックする。

「送信先」に指定したアドレスに「Test message」という内容でメール送信がされているか確認してください。受信しない場合は、迷惑メールに振り分けられている可能性もあります。送信先のアドレスはGmail以外でも可能ですが、設定にはGmailのアドレスが必要となります。