MetaTrader 5のヘルプアルゴリズム取引、自動売買ロボットエキスパートアドバイザーとカスタム指標

エキスパートアドバイザーとカスタム指標

取引プラットフォ—ムには主に自動売買ロボットと指標の2つのカテゴリがあります。自動売買ロボットアプリケーションは取引操作の実行、指標プログラムは価格分析と価格変動のパターンの検出に使われます。指標は自動売買ロボットで直接指標することができ、完全な自動取引システムが生まれます。

自動売買ロボットや指標の実行の方法 #

エキスパートアドバイザーを開始するには、チャートに接続します。ナビゲーターウィンドウでエキスパートアドバイザーにダブルクリックするかチャートにドラッグアンドドロップするのが一番簡単な方法です。

チャートでの自動売買ロボットの起動

エキスパートアドバイザープロパティウィンドウが開かれます。チャートでエキスパートアドバイザーを起動するには「OK」をクリックします。エキスパートアドバイザーの起動が成功すると、その名前と自動売買が有効アイコンがチャートの右上の隅に表示されます。

もしアイコンが自動売買が無効の場合、エキスパートアドバイザーは取引操作ができません。自動売買はエキスパートアドバイザー設定と取引プラットフォームオプションで有効にできます。

  • 各チャートで実行できるエキスパートアドバイザーは1つのみです。おなじチャートで2つ目のエキスパートアドバイザーが起動されると1つ目のエキスパートアドバイザーは削除されます。
  • 1つのチャート上に適応される指標の数には制限がありません。

起動前のアプリケーション設定 #

アプリケーションがチャート上で起動される前に、アプリケーションプロパティのウィンドウが開きます。

共有

「共有」タブには、名前、バージョン、著作権、ソフトウェア開発会社名(最後の2つのパラメータは、対応するウェブページへのリンクとして表すことができます)、説明などの、アプリケーションに関する情報が含まれています。

エキスパートアドバイザーにライセンスが必要な場合(例えばマーケットからダウンロードや購入された場合)、適応するライセンスの詳細(有効期限、デモ)がここに表示されます。

エキスパートアドバイザー起動に使われる各パラメータはウィンドウの下部で設定されます。

  • シグナル設定の修正を許可する — このオプションによってMQL5アプリケーションはシグナル購読/購読解除することや シグナル設定を編集することができます。MQL5アプリケーションからシグナルデータベースにアクセスするための機能は、動的にシグナルの品質の独自の分析を行う購読を管理し、リスクを調整することができます。シグナル管理機能の詳細はMQL5リフェレンスに記載されています。
  • 自動売買を許可する — このオプションはエキスパートアドバイザーの取引アクティビィーを制限します。この制限は(バックテストと混同されるべきではない)リアルタイムモードでエキスパートアドバイザーの分析機能をテストするときに役立つことがあります。このオプションが有効であってもエキスパートアドバイザーの自動売買機能はプラットフォームの共通設定で無効にできるのでご注意下さい。

全てのエキスパートアドバイザーに共通なパラメータは取引プラットフォーム設定で指定されます。

自動売買ロボットと指標の入力パラメータ #

アプリケーションは入力パラメータをもつことができます。その使用は、アプリケーションの動作をより柔軟に制御することができます。開発者が提供しなかった場合、アプリケーションには入力パラメータがない場合があります。

入力パラメータ

アプリケーションパラメータの変更の方法

パラメータを変更するには、それをダブルクリックして、新しい値を入力します。

パラメータのプリセットを使用する方法

パラメータの現在のセットを保存するには「保存」ボタン、以前に保存したセットを読み込みするには「読み込み」ボタンを使用することができます。入力パラメータのセットは取引プラットフォームの/Presets フォルダーに保存されます。

デフォルト設定を復元する方法

デフォルト設定を復元するには「リセット」をクリックします。

すでに接続されたエキスパートアドバイザーは別々に設定できます。しかし、エキスパートアドバイザープロパティウィンドウは現在の実行中には開くことができません。これは Start() 関数の呼び出しの合間にのみ可能です。この場合エキスパートアドバイザーはパラメータウィンドウが閉じられるまで起動しません。入力パラメータが変更した場合、エキスパートアドバイザーは「OK」ボタンが押された後で新しい入力パラメータで再度初期化されます。

外部関数(DLL)を使用するプログラム #

エキスパートアドバイザーがEX5やDLLファイルからインポートした関数を使用する場合には「仕様」タブが表示されます。外部のDLLを使用するとプログラムの機能を拡張することができます。しかし、それは潜在的に危険です。この機能は信頼できるアプリケーションのみで許容されるべきです。

依存関係

エキスパートアドバイザーに使用されるファイルはツリーとして表示されます。緑色のアイコンは、MQL5プログラムからの関数の呼び出しを示し、赤いアイコンはDLL内の関数の呼び出しを示します。

DLLを有効/無効にするオプションは、タブの上部に提供されています。

  • DLLの使用を許可する — エキスパートアドバイザーは機能拡張のためにDLLを使用できます。このオプションを有効にすると、このようなライブラリーは何ら制限なく使用することができます。MQL5アプリケーションがDLLを使用するのにかかわらずインポートが禁止されている場合(このオプションが無効になっている)は、アプリケーション起動ウィンドウの「OK」ボタンが表示されません。

アプリケーションの起動が安全であることを確認していない場合は「DLLの使用を許可する」オプションは有効にされるべきではありません。未知のソースから入手したアプリケーションは、サードパーティのDLLを使用することにより損傷を与える可能性があります。

エキスパートアドバイザー取引の制御の方法 #

自動売買の可能性は、取引プラットフォームレベル、またはそれぞれの自動売買ロボットで制御することができます。

ツールバーの「自動売買が有効自動売買が有効」ボタン(及びオプション — エキスパートアドバイザーでの似たオプション)はプラットフォームの自動売買を有効/無効にします。 これがオフにされた場合は、エキスパートアドバイザ—設定で個別に自動売買を有効にしても、自動化された取引はすべてのエキスパートアドバイザーで無効になっています。それを有効にすると自動取引が個別にパラメータで無効にされていない限り、エキスパートアドバイザーは、取引を許可されています。

エキスパートアドバイザーの取引の規制

自動取引権限は、パラメータではなくナビゲーターウィンドウから個々のエキスパートアドバイザーのために管理することができます。ナビゲーターウィンドウには、口座で実行されているエキスパートアドバイザーのリストがあります。リストには、エキスパートアドバイザーの名前に加えてそれが実行されているチャートの名前も表示されています。アイコンが、エキスパートアドバイザーが取引を許可されているかどうかを示します。

現在の口座で実行されているエキスパートアドバイザー

コンテクストメニューは任意のエキスパートアドバイザーの自動売買を有効または無効にするだけでなく、プロパティ表示またはチャートからの除去するためのコマンドが含まれています。

自動売買に影響を与えるプラットフォーム設定 #

自動売買に影響する設定はプラットフォームオプションのエキスパートアドバイザータブで見られます。

エキスパートアドバイザー

下記の設定が用意されています。

  • 自動売買を許可する — このオプションはエキスパートアドバイザースクリプトを使った取引を許可または禁止します。無効の場合、スクリプトとエキスパートアドバイザーは動作しますが、取引することができません。この制限はリアルタイムモードでエキスパートアドバイザーの分析能力をテストするために役立ちます(これは履歴データでのテストとは異なります)。
    このオプションはプラットフォーム全体での自動売買を有効/無効にします。無効にした場合、エキスパートアドバイザーの設定で個別に自動売買が有効にされていても、エキスパートアドバイザーの取引は許可されません。有効にした場合、個別のエキスパートアドバイザーのパラメータで無効にされていない限り、エキスパートアドバイザーの取引は許可されます。
  • 口座が変更されたら自動売買を停止する — このオプションは、口座が変更されたときエキスパートアドバイザーやスクリプトによっての取引を無効にする防御機構を表します。これは例えばデモ口座からリアル口座に切り替えるときに便利です。
  • プロファイルが変更されたら自動売買を停止するプロファイルには、ワークスペース内のすべてのチャートの現在の設定に関する大量の情報が保存されています。特に、プロファイルには接続されたエキスパートアドバイザーに関する情報が含まれています。プロファイルに含まれるエキスパートアドバイザーは新しいティックの到着とともに動き始めます。プロファイル変更の際のエキスパートアドバイザーによった取引を防止するために、このオプションを有効にします。
  • チャートの銘柄または時間足が変更されたら自動売買を停止する — このオプションが有効になっている場合、チャートの時間足または銘柄が変更されたとき、接続されているエキスパートアドバイザーの取引が自動的に禁止されます。
  • DLLの使用を許可する(信頼できるアプリケーションのみで有効)mql5アプリケーションは機能拡張のためにDLLを使用することがあります。このオプションは、アプリケーションの起動時に使用される「DLLインポートを許可」パラメータの初期値を決定します。未知のエキスパートアドバイザーで作業する場合、インポートを無効にすることをお勧めします。
  • WebRequestを許可するURL一覧 — MQL5のWebRequest()関数は、GETとPOSTリクエストを使用してウェブサイト情報を受信/送信します。MQL5アプリケーションがそのようなリクエストを送信するには、このオプションを有効にして、信頼するウェブサイトのURLを手動で明示的に指定します。セキュリティ上の理由から、このオプションはデフォルトで無効になっています。
    信頼されたリストからアドレスを削除するには、それを選択し「Delete」キーを押します。

よく使用するプログラムへのクイックアクセス #

よく使用するプログラムへのクイックアクセスには「お気に入り」とホットキーを使います。

自動売買ロボット、指標またはスクリプトを選択し、コンテクストメニューを使用して、お気に入りに追加します。お気に入りのプログラムのすべてがナビゲーターの別のタブに表示され、簡単にアクセスすることができます。

チャート上のクイックスタートのために、任意のプログラムにショートカットキーを割り当てることができます。これはナビゲーターウィンドウのコンテクストメニューで操作できます。

プログラムのお気に入りへの追加とホットキーの割り当て

上記の例では「Alt+1」キーはスクリプトに設定されています。それらが押されると、スクリプトはすぐに現在開いているチャート上に起動されます。

サービス #

取引プラットフォームには、特別なプログラムタイプである「サービス」があります。これらのアプリによって、証券会社の取引サーバに実装されているのと同じような、ターミナル用のカスタム価格フィードの作成と外部システムからの価格のリアルタイム配信の実装が可能になります。サービスは、バックグラウンドで他のサービスタスクを実行するためにも使用できます。

エキスパートアドバイザー、指標、スクリプトとは異なり、サービスは特定のチャートにリンクされていません。このようなアプリケーションはバックグラウンドで実行され、ターミナルの起動時に自動的に起動されます(アプリケーションが強制的に停止された場合を除く)。<br2>

[ナビゲータ]を使用したサービス管理:

[ナビゲータ]からのサービス管理

異なるパラメータで複数のエキスパートアドバイザーまたは指標のコピーを実行するには、それらを異なるチャートで起動する必要があります。この場合、異なるプログラムインスタンスが作成され、独立して動作します。サービスはチャートにリンクされていないため、サービスインスタンスを作成するための特別なメカニズムが実装されています。ナビゲータからサービスを選択して、そのコンテキストメニューの[サービスの追加]をクリックします。これにより標準のMQL5プログラムダイアログが開き、取引やシグナルへのアクセスを有効/無効にしたり、パラメータを設定したりできます。

インスタンスの作成、サービスの起動および停止

サービスインスタンスは適切なインスタンスメニューを使用して起動および停止できます。すべてのインスタンスを管理するには、サービスメニューを使用します。

Pythonスクリプト #

Python言語用の機械学習、プロセス自動化、データ分析、視覚化ライブラリは多数あります。高度な言語の可能性は、Python統合モジュールを介してプラットフォームに適用できるようになりました。

  • Pythonツールを使用して、取引所データを取引プラットフォームから簡単かつ迅速に取得し分析できます。1つのコマンドで数十万の金融銘柄ティックをリクエストできます。
  • 統計を計算するための口座取引状態と取引履歴を取得します
  • 独自のアルゴリズムに従って取引操作を実行します

Pythonスクリプトは、通常のMQL5プログラムと同様に、プラットフォームチャートで直接起動できます。これらのスクリプトには、ナビゲーターで特別なアイコンが付いています。

取引プラットフォームでのPythonスクリプトの実行

スクリプトメッセージは、[ツールボックス]->[エキスパート]セクションの下に表示されます。

Pythonスクリプトは、他のMQL5スクリプトおよびエキスパートアドバイザーと並行して同じチャートで起動できます。反復して実行されているスクリプトを停止するには、チャートから削除します。.

サードパーティのPythonライブラリを使用するときに追加の口座保護を有効にするには、ターミナル設定で[外部Python APIによる自動取引を無効にする]オプションを使用できます。

口座を保護する目的で、Pythonスクリプトの自動取引を明示的に許可する必要があります

Pythonスクリプトは、このオプションが無効になっている場合にのみ取引操作を実行できます。