English Русский 中文 Español Deutsch Português 한국어 Français Italiano Türkçe
「EA 階層」を用いたMQL5 Expert Advisors の簡単作成

「EA 階層」を用いたMQL5 Expert Advisors の簡単作成

MetaTrader 5トレーディングシステム | 28 10月 2015, 08:56
1 310 0
eatree
eatree

はじめに

「EA 階層」 は最初のドラッグアンドドロップ MetaTrader MQL5 Expert Advisor ビルダーです。みなさんのコンピュータでローカルに実行しているのはウィンドウズのアプリケーションです。グラフィックユーザーインターフェースを用いて複雑な MQL5 を作成することが可能です。

「EA 階層」ではボックスをつなぐことによってExpert Advisors を作成します。ボックスには MQL5 関数、テクニカルインディケータ、カスタムインディケータ、値などが入っています。あるボックスのアウトプットは別のボックスのインプットに連結し、『ボックスの階層』を形成します。EA 階層は『ボックス階層』から MQL5 コードを作成し、その後お手持ちのコンピュータにインストールされたMetaTrader 5 プラットフォームを使用して MQL5 コードを実行可能な Expert Advisorに変換します。

図1 EA 階層グラフィックユーザーインターフェース

図1 EA 階層グラフィックユーザーインターフェース


以下の項では「EA 階層」の基本コンポーネントを検証していきます。

1. 基本コンセプト

『ボックス』と『ボタン』のコンセプト

ボックスは「EA 階層」内の情報を表現します。そこにはテクニカルインディケータ、数学的関数等が含まれています。各ボックスにはインプットボタンとアウトプットボタンがあります。この例ではボックス「追加」にA、B、С のラベルが付けられたインプットボタンが3つと、OUTとラベルのつけられたアウトプットボタンが1つあります。

各ボックスにはインデックスに従った名前を用いて独自のラベルが付けられています。今回の例ではラベル Add_1 ボックス名が「追加」 でインデックスが1であることを示しています。これはボックスレイアウトに最初に作成されたボックスであることを意味します。

図2 ボックス追加

図2 ボックス追加

ボタン連結

両者が同じデータタイプであれば、一つのボックスのアウトプットボタンは別のボックスのインプットボタンに連結されます。たとえば両方がダブルデータタイプの場合です。

今回の例では、Add_2 ボックスの OUT ボタンを If_Else_1 ボックスの A ボタンに連結します。

図3 "Add" ボックス + "if else" ボックス

図3 "Add" ボックス + "If-Else" ボックス

2. 『トレード』ボックス

「トレード」ボックスは EA 階層の主要なボックスです。それには多くのインプットボタンがあります。もっとも重要なボタンは openLong、openShort、closeLong、 closeShort です。それにはまた数多くのトレーディングパラメータもあります。

 図4 『トレード』ボックス

図4 『トレード』ボックス

3. 『MM』(資金管理)ボックス

MM ボックスは「EA 階層」において「資金管理」を行います。それには数個のインプットボタンがあります。そのアウトプットボタンを「トレード」ボックスの MM ボタンに連結します。

図5 『トレード』ボックス + MM ボックス

図5 『トレード』ボックス + MM ボックス


4. ロジックボックス

「ロジックボックス」はトレードボックスの条件ボタン同士を連結するのに重要です。: openLong、openShort、closeLong、 closeShort やレイアウト内残りのボックスです。

If-Else ロジックボックス

If-Else ボックスはそのロジックを持ちます。

A 演算子 B であれば、T(アウトプットボタン)は 真、 そうでなければ F(アウトプットボタン)は真。

ここで演算子は~に等しい、~に等しくない、~未満、~より大きい、がありえます。

図6 "If-Else" ロジックボックス

図6 "If-Else" ロジックボックス

クロスオーバーロジックボックス

クロスオーバー ボックスはこのロジックを持ちます。

A 演算子1 B そして C 演算子2 D であれば T(アウトプットボタン)は真、そうでなければ F(アウトプットボタン)は真。

ここで演算子1 および演算子2 は~に等しい、~に等しくない、~未満、~より大きい、がありえます。shift ボタンは連結するインディケータの インデックスを設定します。

今回の例ではこのロジックです。

ストキャスティクスメイン > 現ストキャスティクス シグナル また

ストキャスティクス メイン> 前ストキャスティクス シグナル

であれば T は真、 F は偽

図7 クロスオーバー + ストキャスティクスロジックボックス

図7 『クロスオーバー』 + 『ストキャスティクス』 ロジックボックス

AND ロジックボックス

AND ボックスは次のロジックを持ちます。

A AND B AND C AND D であれば OUT(アウトプットボタン)は 真

図8 『AND』ボックス

OR ロジックボックス

OR ボックスは次のロジックを持ちます。

A OR B OR C OR Dであれば、 OUT(アウトプットボタン)は真

図9 『OR』ボックス

図9 『OR』ボックス


5. テクニカルインディケータボックス

MACD移動平均 (MA)テクニカルインディケータボックスなど、テクニカルインディケータメニューに挙げられている テクニカルインディケータは数多くあります。

MACD テクニカルインディケータボックス

図10 MACD テクニカルインディケータボックス

図10 MACD テクニカルインディケータボックス

MA (移動平均)テクニカルインディケータボックス

図11 MA (移動平均)テクニカルインディケータボックス

図11 MA (移動平均)テクニカルインディケータボックス

6. カスタムインディケータ

テクニカルインディケータツールは「テクニカルインディケータメニュー」と「ツールバー」で利用可能です。「EA 階層」はただの MQL5 カスタムインディケータです。

7. MQL5 関数

「EA 階層」には以下を含む数多くの MQL5 関数向けボックスがあります。

  • iOpen、iClose、HighestHigh、 LowestLowなどの「時系列ボックス」
  • 変換関数
  • 数学的関数
  • 文字列関数

8. 解説:シンプルな Expert Advisor の作成

本セクションでは本稿で取り上げられているツールを何点か使用してシンプルな EAを作成します。

まず Expert Advisor のトレードルールをリストアップします。

エントリールール:

ロングポジションをオープンします。

  1. MACD メイン > 現 MACD シグナル また
  2. MACD メイン < 前 MACD シグナル また
  3. EMA(20) > 前 EMA(20)

ショートポジションをオープンします。

  1. MACD メイン < 現 MACD シグナル また
  2. MACD メイン >前 <a4>MACD</a4> シグナル また
  3. 現C EMA(20) < 前 EMA(20)

終了ルール

ロングのクローズ:「ショートのオープン」に同じ
ショートのクローズ:「ロングのオープン」に同じ

デフォルトのトレードボックスを使用し、資金管理設定はしません。

では始めましょう。

1. 「トレード」ボックスを作成し AND ボックスを作成します。そしてそのアウトプットをトレード」ボックスの openLong ボタンに連結します。


図12 トレードボックス + And ボックス

図12 トレードボックス + And ボックス

2. 使用のクロスオーバーボックスを作成しその T(真) アウトプットボタンを And ボックスの A ボタンに連結します。

図13 トレードボックス + And ボックス + クロスオーバーボックス

図13 トレードボックス + And ボックス + クロスオーバーボックス

3. 使用の MACD ボックスを作成し、それの「メイン」アウトプットボタンをクロスオーバーボックスの A ボタンと Cボタンに連結します。またその「シグナル」アウトプットボタンをクロスオーバーボックスの B ボタンと D ボタンに連結します。.

ここでのロジックは以下です。

MACD メイン > 現 MACD シグナル また
      
MACD メイン < 前 MACD シグナル

図14 トレードボックス + And ボックス + MACDボックス

図14 トレードボックス + And ボックス + MACDボックス


4. MA と If-Else ボックスを作成します。 MAボックスのメインアウトプットボタンを If-Else ボックスの A ボタンと Bボタンに連結します。 If-Else ボックスのOUTPUT をAnd ボックスのBボタンに連結します

openLong 条件のサブ階層は今、これら3つの条件で完成しました。

  1. MACD メイン > 現 MACD シグナル また
  2. MACD メイン < 前 MACD シグナル また
  3. EMA(20) > 前 EMA(20)

図15 トレードボックス + And ボックス + クロスオーバーボックス+ MACDボックス+ MAボックス+ if else ボックス

図15 トレードボックス + And ボックス + クロスオーバーボックス+ MACDボックス+ MAボックス+ if else ボックス

5. 別の And ボックスを作成し、そのアウトプットボタンをトレードボックスの openShort ボタンに連結します。

6. openShort ロジックは openLong の逆なので、クロスオーバーボックスの F アウトプットボタンを新しい And ボックスのA ボタンに連結します。また、If-Else ボックスのF アウトプットボタンを新しいAnd ボックスの B ボタンに連結します。


 図16 トレードボックス + And ボックス + クロスオーバーボックス+ MACDボックス+ MAボックス+ if else ボックス + And ボックス

図16 トレードボックス + And ボックス + クロスオーバーボックス+ MACDボックス+ MAボックス+ if else ボックス + And ボックス

7. 終了シグナルを取得するため、最初のAnd ボックスの OUT 変数をトレードボックスの closeLong ボタンに連結し、二番目のAnd ボックスのOUT 変数をトレードボックスの closeShort b ボタンに連結します。

 図17 トレードボックスへの CloseShort 追加
 図17 トレードボックスへの CloseShort 追加

8. MACD および MA ボックスの両方でダブルクリックして作成する MQL5 EA のインプット変数とする変数の数を選択します。

図18 入力パラメータ

図18 入力パラメータ

9. これでレイアウトは完成です。「レイアウト」を保存し、MQL5 ファイルを保存します。そしてMetaEditor 5 で新規MQL5 Expert Advisorファイルを開き、これをコンパイルします。

図19 作成された Expert Advisor

図19 作成された Expert Advisor

10. ついに MetaTrader 5 ストラテジーテスタで選択したインプット変数を最適化します。


図20 Expert Advisorの検証 

図20 Expert Advisorの検証


おわりに

「EA 階層」を使用するメリットは以下のように数々あります。

  • やさしいドラッグアンドドロップのグラフィックユーザーの使用と理解
  • プログラム経験は不要
  • MQL5をすぐに学習可能
  • トレーディング秘訣の守秘
  • 数日、数か月の代わりに数分と、Expert Advisor 作成時間の削減
  • 複数通貨および複数時間枠対応の複雑な MQL5 Expert Advisors が作成可能
  • Expert Advisorへの複数トレーディング戦略組み込み可能
  • コードを保存しダイアグラム(ボックス階層図)をロードすることで簡単に再利用可能
  • それでもMQL5 カスタムインディケータはインポート可能
  • いつでも正しい MetaTrader 5 MQL が作成可能

MetaQuotes Ltdにより英語から翻訳されました。
元の記事: https://www.mql5.com/en/articles/337

添付されたファイル |
eatree-sample.mq5 (33.7 KB)
『のるかそるか』の Forex 戦略 『のるかそるか』の Forex 戦略
本稿の目的は『のるかそるか』の賭博原理を取り入れたもっともシンプルなトレーディング戦略を作成することです。収益性のある Expert Advisor を作成したいのではありません。目標は初期デポジットを可能な限り最高の確率で数倍に増やすことです。ForEx でジャックポットを当てること、またテクニカル分析についてなにも解らずインディケータを一つも使わずにすべてを失うことは可能でしょうか?
MQL5-RPC. MQL5からのリモートプロシージャコール:ウェブサービスアクセスと、利益のためのXML-RPC ATC アナライザー MQL5-RPC. MQL5からのリモートプロシージャコール:ウェブサービスアクセスと、利益のためのXML-RPC ATC アナライザー
この記事は、リモートプロシージャコールを可能にするMQL5-RPCフレームワークを紹介します。XML-RPCの基礎から始め、MQL5の実装、そして、二つの実例を紹介します。最初の例は、外部のウェブサービスを使用するというもので、二つ目は、XML-RPC ATC 2011 Analyzerサービスのクライアントの例です。もし、ATC 2011からの異なる統計の実装や分析方法に興味のある場合、この記事はうってつけだと思います。
MetaTrader 5 プラットフォームに新しい UI 言語を追加する方法 MetaTrader 5 プラットフォームに新しい UI 言語を追加する方法
MetaTrader 5 プラットフォームのユーザーインターフェースは複数言語に翻訳されています。あなたの母国語がサポートされている言語に含まれていなかったとしてもご心配なく。MetaQuotes Software Corp. が全利用者に対して提供する特別な MetaTrader 5 MultiLanguage Pack ユーティリティを使用して簡単に翻訳することができるのです。本稿ではMetaTrader 5 プラットフォームに新しい ユーザーインターフェース言語を追加する方法を提示します。
MetaTrader 4へのシグナル提供者としてのMetaTrader 5利用 MetaTrader 4へのシグナル提供者としてのMetaTrader 5利用
MetaTrader 4での実行結果をMetaTrader 5 プラットフォームにおいてトレーディング分析する方法の分析と例本稿では MetaTrader 5でシンプルなシグナルプロバイダーの作成方法とそれを複数クライアント、動作中の MetaTrader 4にも連携する方法を示します。またみなさんの MetaTrader 4 実アカウントにおいて自動売買チャンピオンシップの出場者をフォローする方法を見つけ出します。