---
title: "エキスパートアドバイザーや指標の作成の方法 - アルゴリズム取引、自動売買ロボット - MetaTrader 5のヘルプ"
description: "取引プラットフォームには、内蔵言語 MetaQuotes Language5( MQL5 )、 MetaEditor 開発環境とストラテジーテスターが含まれます。 取引プラットフォームには MetaQuotes Language 5... - エキスパートアドバイザーや指標の作成の方法 - アルゴリズム取引、自動売買ロボット - MetaTrader 5のヘルプ"
image: "https://www.metatrader5.com/i/logo_metatrader5.png"
url: "https://www.metatrader5.com/ja/terminal/help/algotrading/autotrading"
---

[MetaTrader 5のヘルプ](https://www.metatrader5.com/ja/terminal/help) → [アルゴリズム取引、自動売買ロボット](https://www.metatrader5.com/ja/terminal/help/algotrading) → エキスパートアドバイザーや指標の作成の方法

# エキスパートアドバイザーや指標の作成の方法

取引プラットフォームには、内蔵言語 MetaQuotes Language5([MQL5](https://www.metatrader5.com/ja/terminal/help/algotrading/autotrading#mql5))、[MetaEditor](https://www.metatrader5.com/ja/terminal/help/algotrading/autotrading#metaeditor) 開発環境とストラテジーテスターが含まれます。

> MQL5で取引戦略の開発に関するすべての情報は [MQL5.community](https://www.mql5.com/)の公式サイトで見つけることができます。ウェブサイトセクション[コードベース](https://www.mql5.com/ja/code)にはそのまま使えるアプリケーションが含まれます。

## 取引ストラテジーのMQL5プログラミング言語 [#](#mql5)

取引プラットフォームには [MetaQuotes Language 5](https://www.mql5.com/)内蔵言語があります。これは5世代目の MQL 言語です。これによって自動売買をする[エキスパートアドバイザー](https://www.metatrader5.com/ja/terminal/help/algotrading/autotrading#type)の開発や、独自の取引ストラテジーの実装が可能です。MQL5を使用しての[カスタム指標](https://www.metatrader5.com/ja/terminal/help/algotrading/autotrading#type)、[スクリプト](https://www.metatrader5.com/ja/terminal/help/algotrading/autotrading#type)とファンクションライブラリーの作成も可能です。

MQL5の特徴：

- オブジェクト指向
-  C++ に似た構文
- 相場分析、ポジション管理、テクニカル指標の呼び出しなどに必要な多数の機能
- 高性能言語
- 新しい複雑な暗号化アルゴリズム、ファイルの整合性チェック、及び言語の複雑さによる逆コンパイルに対する強力な保護
- [OpenCL](https://www.mql5.com/ja/articles/405)はMQL5アプリケーションでの計算のためのビデオカードの使用をサポート
- デバッガを内蔵した[MetaEditor](https://www.metatrader5.com/ja/terminal/help/algotrading/autotrading#metaeditor)統合ソフトウェア開発環境

すべての言語構造と機能の詳細な説明はMQL5リファレンスに記載されています。MQL5に関するすべての必要な情報は[https://www.mql5.com](https://www.mql5.com/)での開発者コミュニティのウェブサイトでも見つけることができます。

## MetaEditor [#](#metaeditor)

MetaEditorは[MQL5](https://www.mql5.com/)総合開発環境です。それは取引プラットフォームのコンポーネントです。MetaEditorは[MQL5](https://www.metatrader5.com/ja/terminal/help/algotrading/autotrading#mql5)で作成されたソースコードの、編集、コンパイルとデバッグを可能にします。

- 定形チャートや自動売買ロボットを作成するためのMQL5Wizard MetaEditorは手早く MQL5プログラムを作成するのに役立つMQL5Wizardを含みます。MQL5Wizardを使用すればトレーダはプログラミングなしでエキスパートアドバイザーを簡単に作成できます。エキスパートアドバイザーの使用する売買シグナル、資金管理及びトレールストップアルゴリズムを選ぶだけです。エキスパートアドバイザーコ—ドは選択されたパラメータに基づいて自動的に作成されます。加えて、MQL5Wizardはプログラマーの作業を簡易化するMQL5プログラムテンプレートの作成を可能にします。
- ソースコードヘルプMetaEditorは言語構造を認識することができるので、関数を使用する方法のヒントを示唆し、プログラムのソースコードの様々な要素を強調します。これは、取引プログラムのソースコード内のナビゲーションを強化し、開発プロセスをスピードアップします。
- デバッグMetaEditorはトラブルシューティングを大幅に簡易化するために、プログラムのデバッグを可能にします。ソースコードのステップバイステップの実行は、変数値の監視を可能にします。
- コードの最適化のためのプロファイリングエディターはソフトウェアプロファイリングツールも提供します。ソースコード内の最も遅い機能を識別して、プログラムを最適化することができます。
- プログラムとソースコードライブラリーに関する記事エディターからは直接MQL5プログラミングチュートリアルの茄多を見つけることができます。さらに無料の自動売買プログラムの巨大なコードベースにアクセスすることができます。
- オンラインMQL5 Algo Forgeとバージョン管理サポートストレージは、安全なファイルの保存に加えて、失われたファイルの復元や、MQL5.communityアカウントを使用してのどのコンピュータからでものコードへのアクセスを提供します。

MetaEditorの詳細は内蔵されたヘルプファイルで見られます。MQL5の説明は内蔵されたレフェレンス及び [MQL5.community](https://www.mql5.com/)公式サイトで見られます。

## アルゴリズム取引の本 [#](#algobook)

初心者をサポートするために、アルゴリズム取引のロボットやアプリケーションの作成を学びたい人向けに設計された、MQL5プログラミングに関する2冊の包括的な書籍をリリースしました。学習プロセスをよりスムーズに進められるよう、これらの書籍は資料を体系的かつ構造的にまとめています。自動売買ロボットやアプリケーションの段階的な作成が詳細なコード例で解説されており、アルゴリズム取引のポイントを深く理解できます。

「[トレーダー向けMQL5プログラミング](https://www.mql5.com/ja/book)」は、MQL5に関する最も完全で詳細なチュートリアルであり、あらゆるレベルのプログラマーに対応しています。初心者はこの本を通じて基礎を学び、開発ツールや基本的なプログラミングの概念を学びます。MetaTrader 5取引プラットフォーム上で、最初のアプリケーションを作成、コンパイル、実行する方法も紹介されています。他のプログラミング言語の経験がある方は応用セクションに直接進み、自動売買ロボットや分析アプリケーションを作成することができます。

「[MQL5を使用したアルゴリズム取引のためのニューラルネットワーク](https://www.mql5.com/ja/neurobook)」は、MetaTrader 5プラットフォームで自動売買ロボットに機械学習を応用するためのガイドです。ニューラルネットワークの基礎からアルゴリズム取引での応用までがステップごとに解説されています。学習を進めながら、独自のAIソリューションを構築・訓練し、新しい機能を追加していくことができます。また、MQL5に加えて、PythonやOpenCLのプログラミングスキルを習得し、行列やベクトルの手法を使用して、複雑な数学的問題を効率的に解決する方法を学びます。

## 取引アプリケーション開発に関する記事 [#](#articles)

[MQL5.community](https://www.mql5.com/)ウェブサイトには[MQL4/MQL5プログラミングに関する記事](https://www.mql5.com/ja/articles)の大規模なライブラリがあります。記事は、アルゴリズム取引を含む多くの実用的なタスクを網羅しているので、アプリケーションを作成するための優れたガイドとなります。新しい記事は毎週公開されます。

利用可能なすべての記事のリストは、MetaEditorに直接表示されます。必要な資料を見つけるには[オンライン検索](https://www.metatrader5.com/ja/terminal/help/startworking/interface#search)を使用します。

![MQL4/MQL5プログラミングに関する記事](https://www.metatrader5.com/i/help/terminal/en/articles.png)

## MQL5アプリケーションの種類 [#](#type)

取引アプリケーションには主に3種類があります。

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

エキスパートアドバイザーは金融市場の効率的な運用のための分析及び取引活動の完全な自動化を可能にする機械的な取引システムです。これらは、受信されたシグナルに基づいて価格データ及び制御取引活動の迅速な技術的解析を実行することを可能にします。それらはまた、感情を排除して売買ストラテジーに厳密に従うことができます。

エキスパートアドバイザーはすべて取引プラットフォームの[/MQL5/Experts](https://www.metatrader5.com/ja/terminal/help/start_advanced/structure#ea)に保存されます。

### カスタム指標

カスタム指標とは、価格のダイナミクスを分析するために意図してカスタム開発されたテクニカル指標です。取引ストラテジーとエキスパートアドバイザーは、指標のアルゴリズムに基づいて開発されています。カスタム指標は、シンボル価格動態の分析に使用されます。指標はトレードできず、チャートにアクセスすることはできません。

指標はすべて取引プラットフォームの[/MQL5/Indicators](https://www.metatrader5.com/ja/terminal/help/start_advanced/structure#indicators) フォルダーに保存されます。

### スクリプト

スクリプトは、 [MQL5](https://www.metatrader5.com/ja/terminal/help/algotrading/autotrading#mql5)で書かれたアクションを1 回実行するためのアプリケーションです。スクリプトは分析及び取引機能を果たせます。[アドバイザー](https://www.metatrader5.com/ja/terminal/help/algotrading/autotrading#type)と異なり、スクリプトはリクエストによって実行されます。言葉を変えると、エキスパートアドバイザーの継続的な動作に比べて、スクリプトは機能を実行して停止します。

スクリプトはすべて取引プラットフォームの[/MQL5/Scripts](https://www.metatrader5.com/ja/terminal/help/start_advanced/structure#scripts) フォルダーに保存されます。

### サービス

[サービス](https://www.metatrader5.com/ja/terminal/help/algotrading/trade_robots_indicators#service)によって、証券会社の取引サーバに実装されているのと同じような、プラットフォーム用のカスタム価格フィードの作成と外部システムからの価格のリアルタイム配信の実装が可能になります。サービスは、バックグラウンドで他のサービスタスクを実行するためにも使用できます。

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

すべてのサービスは取引プラットフォームの[/MQL5/Services](https://www.metatrader5.com/ja/terminal/help/start_advanced/structure#scripts)フォルダに格納されています。

> フォルダ—内で、エキスパート、指標及びスクリプト、アプリケーションはサブフォルダに分類されています。ロケーションのストラクチャーは[ナビゲーター](https://www.metatrader5.com/ja/terminal/help/startworking/interface)ウィンドウに表示されます。

## 取引アプリケーションの作成と実行の方法 [#](#create)

「![MetaEditorで作成](https://www.metatrader5.com/i/help/terminal/en/create_icon.png)MetaEditorで作成」を[ナビゲーター](https://www.metatrader5.com/ja/terminal/help/startworking/interface)ウィンドウのエキスパートアドバイザー、指標またはスクリプトセクションのコンテクストメニューをクリックします。MetaEditorは F4を押しても起動できます。

![取引アプリケーション作成の開始](https://www.metatrader5.com/i/help/terminal/en/ea_create.png)

これは [MetaEditor](https://www.metatrader5.com/ja/terminal/help/algotrading/autotrading#metaeditor)を起動し自動的にMQL5Wizardを開きます。ソフトウェア開発を開始するために必要なプログラムテンプレートを生成するために使用されます。「Hello world」メッセージを[ジャーナル](https://www.metatrader5.com/ja/terminal/help/start_advanced/journal)に書く簡単なにスクリプトを作成しましょう。

![MQL5Wizardはアプリケーションテンプレートを作成します。](https://www.metatrader5.com/i/help/terminal/en/example_wizard_script.png)

作成されたテンプレートにPrint("Hello World");のコードを追加してF7を押してコンパイルし実行ファイルを生成します。実行ファイルはEX5拡張子を持ち、取引プラットフォームで実行できます。

![コンパイルとその結果](https://www.metatrader5.com/i/help/terminal/en/example_compile.png)

コンパイルの結果はエディターログに追加されます。

ソースコードはアプリケーションの種類に応じて、MQL5\Scripts\フォルダーに保存されます。実行ファイルは同じフォルダーに作成されます。ここで取引プラットフォームに戻って作成されたスクリプトを実行できます。

![取引プラットフォームでのスクリプトの実行](https://www.metatrader5.com/i/help/terminal/en/example_run_script.png)

> 自動売買プログラムの使用の詳細は[「エキスパートアドバイザーとカスタム指標」](https://www.metatrader5.com/ja/terminal/help/algotrading/trade_robots_indicators)セクションで説明されています。

## 取引アプリケーションの編集の方法 [#](#modify)

売買ロボットやカスタム指標の編集には「![変更](https://www.metatrader5.com/i/help/terminal/en/modify_icon.png) 変更」を[ナビゲーター](https://www.metatrader5.com/ja/terminal/help/startworking/interface)ウィンドウのコンテクストメニューでクリックするか選択してEnterを押します。これは [MetaEditor](https://www.metatrader5.com/ja/terminal/help/algotrading/autotrading#metaeditor)で選択された指標のソースコードを開きます。指標の変更後、再度コンパイルします（F7）。さもないと以前のバージョンがプラットフォームで使用されます。

## 取引アプリケーションのシャットダウンの方法 [#](#quit)

プラットフォームでの取引アプリケーションのシャットダウンの方法はいろいろあります。

| 自動売買ロボット | カスタムテクニカル指標 | スクリプト |
| --- | --- | --- |
| - [エキスパートリスト](https://www.metatrader5.com/ja/terminal/help/charts_advanced/charts_objects_list#ea)ウィンドウで「削除」をクリックします。<br>- [定形チャート](https://www.metatrader5.com/ja/terminal/help/charts_advanced/templates_profiles)を変更します。<br>- [プラットフォーム設定で適切なオプションが有効にされている](https://www.metatrader5.com/ja/terminal/help/startworking/settings#profile)場合に[プロファイル](https://www.metatrader5.com/ja/terminal/help/charts_advanced/templates_profiles#profiles)を変更します。<br>- 取引プラットフォームを消します。<br>- エキスパートアドバイザーが実行されているチャートを閉じます。<br>- 同じチャートで他のエキスパートアドバイザーを実行します。<br>- 「![エキスパートアドバイザーの削除](https://www.metatrader5.com/i/help/terminal/en/ea_remove_icon.png)削除」をチャート上のエキスパートアドバイザーのアイコンのコンテクストメニューでクリックします。 | - 「![指標の削除](https://www.metatrader5.com/i/help/terminal/en/delete_indicator_icon.png)削除」または指標のコンテクストメニューで「![指標ウィンドウの削除](https://www.metatrader5.com/i/help/terminal/en/delete_indicator_window.png)指標ウィンドウの削除」をクリックします。<br>- 「削除」を[インディケータリスト](https://www.metatrader5.com/ja/terminal/help/charts_advanced/charts_objects_list#indicators)ウィンドウでクリックします。<br>- [定形チャート](https://www.metatrader5.com/ja/terminal/help/charts_advanced/templates_profiles)を変更します。<br>- チャートを再び開きます。 | - [エキスパートリスト](https://www.metatrader5.com/ja/terminal/help/charts_advanced/charts_objects_list#ea)ウィンドウで「削除」をクリックします。このウィンドウにはまた実行中のスクリプトのリストが含まれます。<br>- [定形チャート](https://www.metatrader5.com/ja/terminal/help/charts_advanced/templates_profiles)を変更します。<br>- [プラットフォーム設定で適切なオプションが有効にされている](https://www.metatrader5.com/ja/terminal/help/startworking/settings#profile)場合に[プロファイル](https://www.metatrader5.com/ja/terminal/help/charts_advanced/templates_profiles#profiles)を変更します。<br>- [チャート](https://www.metatrader5.com/ja/terminal/help/charts_analysis/charts)銘柄を変更します。<br>- チャート[時間軸](https://www.metatrader5.com/ja/terminal/help/charts_analysis/charts#operations)を変更します。<br>- 取引プラットフォームを消します。<br>- スクリプトが実行中のチャートを閉じます。<br>- おなじチャートで別のスクリプトを実行します。<br>- チャート上のスクリプトアイコンのコンテクストメニューで「![スクリプト削除](https://www.metatrader5.com/i/help/terminal/en/script_remove_icon.png)削除」をクリックします。 |

> チャートで取引アプリケーションが実行中の場合、対応する実行ファイルが[ナビゲーター](https://www.metatrader5.com/ja/terminal/help/startworking/interface)ウィンドウから削除されても実行は停止しません。エキスパートアドバイザーは[取引プラットフォーム設定](https://www.metatrader5.com/ja/terminal/help/startworking/settings#enable_ea)で無効にされても完全には無効になりません。エキスパートアドバイザーの取引機能が無効になるだけです。

## ダウンロードされたMQ5ソースコードの実行の方法 [#](#mq5)

ソースコードのみがある場合 (*.MQ5)、それを対応したアプリケーションタイプのフォルダーに保存します。

- エキスパートアドバイザーは — /MQL5/Experts
- 指標は — /MQL5/Indicators
- スクリプトは —/MQL5/Scripts

取引プラットフォームデータフォルダーに迅速に移動するには![データフォルダーを開く](https://www.metatrader5.com/i/help/terminal/en/terminal_data_icon.png)[ファイル](https://www.metatrader5.com/ja/terminal/help/startworking/interface)メニューの「データフォルダーを開く」を使用します。

取引プラットフォームでファイルを実行するには、[MetaEditor](https://www.metatrader5.com/ja/terminal/help/algotrading/autotrading#metaeditor)でコンパイルします。

- MetaEditorは F4を押して開きます。
- MetaEditorではナビゲーターウィンドウのファイル名をダブルクリックしてソースコードを開きます。
- F7を押してコンパイルします。

これで取引プラットフォームで実行可能な *.EX5ファイルが作成されます。

> ソースファイル（*.MQ5）は取引プラットフォームの[ナビゲーター](https://www.metatrader5.com/ja/terminal/help/startworking/interface)ウィンドウには表示されません。

## In this section

- [エキスパートアドバイザーとカスタム指標](https://www.metatrader5.com/ja/terminal/help/algotrading/trade_robots_indicators)
- [自動売買ロボットと指標の見つけ場所](https://www.metatrader5.com/ja/terminal/help/algotrading/algotrading_get_ea_indicator)
- エキスパートアドバイザーや指標の作成の方法
- [ストラテジーテスト](https://www.metatrader5.com/ja/terminal/help/algotrading/testing)
- [テスターが履歴データをダウンロードする方法](https://www.metatrader5.com/ja/terminal/help/algotrading/test_preparation)
- [ストラテジーの最適化](https://www.metatrader5.com/ja/terminal/help/algotrading/strategy_optimization)
- [テスト機能](https://www.metatrader5.com/ja/terminal/help/algotrading/testing_features)
- [テストレポート](https://www.metatrader5.com/ja/terminal/help/algotrading/testing_report)
- [テストの可視化](https://www.metatrader5.com/ja/terminal/help/algotrading/visualization)
- [テストの操作ログ](https://www.metatrader5.com/ja/terminal/help/algotrading/tester_journal)
- [最適化の種類](https://www.metatrader5.com/ja/terminal/help/algotrading/optimization_types)
- [実際ティックと生成ティック](https://www.metatrader5.com/ja/terminal/help/algotrading/tick_generation)
- [メタテスターと遠隔エージェント](https://www.metatrader5.com/ja/terminal/help/algotrading/metatester)
- [グローバル変数](https://www.metatrader5.com/ja/terminal/help/algotrading/service_global)

```json
{"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ {"@type": "ListItem", "position": 1, "item": {"@id": "https://www.metatrader5.com/ja/terminal/help", "name": "MetaTrader 5のヘルプ"}}, {"@type": "ListItem", "position": 2, "item": {"@id": "https://www.metatrader5.com/ja/terminal/help/algotrading", "name": "アルゴリズム取引、自動売買ロボット"}}, {"@type": "ListItem", "position": 3, "item": {"@id": "https://www.metatrader5.com/ja/terminal/help/algotrading/autotrading", "name": "エキスパートアドバイザーや指標の作成の方法"}} ]}
{ "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{ "@type": "Question", "name": "MetaTrader 5: エキスパートアドバイザーや指標の作成の方法", "acceptedAnswer": { "@type": "Answer", "text": "取引プラットフォームには、内蔵言語 MetaQuotes Language5( MQL5 )、 MetaEditor 開発環境とストラテジーテスターが含まれます。 取引プラットフォームには MetaQuotes Language 5 内蔵言語があります。これは5世代目の MQL 言語です..." } }] }
```
