MQL5言語での自動売買ロボットのプログラミング例に関する記事

icon

エキスパートアドバイザーはプログラミングの「頂点」であり、それぞれの自動取引の開発者の求めたゴールです。このセクションの記事を読んで、ご自分の自動売買ロボットを作成してください。記述された手順に従うことにより、どのように自動取引システムを作成し、デバッグし、テストするかを学びます。

記事はMQL5プログラミングを教えるだけでなく、どのようにトレーディングアイデアとテクニックを導入するかを示します。どのようにトレーリングストップをプログラムするか、どのように資金管理を適用するか、どのようにインディケータ値を取得するかなど、さらに多くのことを学べます。

新しい記事を追加
最新 | ベスト
MQL5 Cookbook:トレードレベルを設定/変更する際エラーを避ける方法
MQL5 Cookbook:トレードレベルを設定/変更する際エラーを避ける方法

MQL5 Cookbook:トレードレベルを設定/変更する際エラーを避ける方法

シリーズの前稿 "MQL5 Cookbook: Analyzing Position Properties in the MetaTrader 5 Strategy Tester" からの Expert Advisor への取り組みの続編として、既存の関数を改良、最適化しつつ有用な関数を数多く用いて Expert Advisor を強化していきます。今回 Expert Advisor は MetaTrader 5 「ストラテジーテスタ」で最適化可能な外部パラメータを取得し、いくつかの点でシンプルなトレーディングシステムのようになります。
preview
平均足と移動平均を組み合わせると良好なシグナルを提供できるのか

平均足と移動平均を組み合わせると良好なシグナルを提供できるのか

戦略を組み合わせることで、より良い機会が得られる可能性があります。指標やパターンを組み合わせたり、さらに良いことに指標とパターンを組み合わせたりして、追加の確認要素を得ることができます。移動平均はトレンドを確認し、それに乗るのに役立ちます。これらは、そのシンプルさと、分析に付加価値をもたらす実証済みの実績により、最もよく知られているテクニカル指標です。
「EA 階層」を用いたMQL5 Expert Advisors の簡単作成
「EA 階層」を用いたMQL5 Expert Advisors の簡単作成

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

「EA 階層」は最初のドラッグアンドドロップ MetaTrader MQL5 Expert Advisor ビルダーです。使用法がひじょうに簡単なグラフィックユーザーインターフェースを用いて複雑な MQL5 を作成することが可能です。「EA 階層」ではボックスをつなぐことによってExpert Advisors を作成します。ボックスには MQL5 関数、テクニカルインディケータ、カスタムインディケータ、値などが入っています。『ボックス階層』を利用して「EA 階層」は Expert Advisor の MQL5 コードを作成します。
マルチ通貨システム エキスパートアドバイザーの作成
マルチ通貨システム エキスパートアドバイザーの作成

マルチ通貨システム エキスパートアドバイザーの作成

この記事は、複数のシンボルをトレードし、同時にいくつものトレーディングシステムを使用するエキスパートアドバイザーのストラクチャーを紹介します。もしすでにすべてのEAにおいて最適な入力パラメーターを特定し、それぞれに対して個別に良いテスト結果を得ているのであれば、もしすべての戦略を合わせて同時に全EAをテストすればどのような結果を得ることができるか、ご自身に尋ねてみてください。
メカニカル・トレーディングシステム "スタニスラブの三角形"
メカニカル・トレーディングシステム "スタニスラブの三角形"

メカニカル・トレーディングシステム "スタニスラブの三角形"

スタニスラブ・チャバショブ(Stanislav Chuvashov)氏のアイデアに基づいたメカニカル・トレーディングシステムの概要とプログラムコードを提供します。三角形の構造は上部・下部フラクタルからなる2本のラインの交差から成っています。
ユニバーサルEA:戦略トレードモード(その1)
ユニバーサルEA:戦略トレードモード(その1)

ユニバーサルEA:戦略トレードモード(その1)

EAの開発者は、プログラミングのスキルに関係なく、信頼性の高い取引プロセスを整理するため、同じタスクとアルゴリズムの問題に直面しています。この記事では、これらのタスクの解決に着手し、トレードアイデアを記述するための便利なCStrategyエンジンの可能性を説明します。
preview
アルゴリズム取引システムを設計する理由と方法を学ぶ

アルゴリズム取引システムを設計する理由と方法を学ぶ

この記事では、MQL5のいくつかの基本に言及した後で、単純なアルゴリズム取引システムを設計することによって初心者がアルゴリズム取引システム(エキスパートアドバイザー)を設計するためのMQLの基本を示します。
preview
MQL5の行列とベクトル

MQL5の行列とベクトル

特別な「matrix」と「vector」データ型を使用すると、数学表記に非常に近いコードを作成することができます。行列とベクトルのメソッドを使用すると、計算でネストされたループを作成したり配列で正しいインデックスを作成したりする必要がなくなるため、複雑なプログラムの開発における信頼性と速度が向上します。
preview
自動で動くEAを作る(第03回):新しい関数

自動で動くEAを作る(第03回):新しい関数

今日は、自動モードでシンプルかつ安全に動作するエキスパートアドバイザー(EA)を作成する方法を紹介します。前回は、自動売買EAで使用するオーダーシステムの開発に着手しましたが、必要な関数のうち1つしか作っていません。
考えられる.EAをリアルタイムで最適化するためのインジケータの使用法
考えられる.EAをリアルタイムで最適化するためのインジケータの使用法

考えられる.EAをリアルタイムで最適化するためのインジケータの使用法

トレーディングロボットの効率は、そのパラメータの正しい選択 (最適化) に依存します。 ただし、ある特定の時間間隔で最適と見なされるパラメータは、別の期間でもその有効性を保持することはできません。 その上、EA がテストの期間で利益を出したとしてもリアルでは損失になることもあります。 継続的な最適化における問題はこれらを背景としています。 ルーチンワークに直面するとき、人は自動化する方法を模索しようとします。 この記事では、この問題を解決するための非標準的なアプローチを提案します。
グラフィカルインタフェースIII:シンプルボタンと多機能ボタンのグループ(チャプター 2)
グラフィカルインタフェースIII:シンプルボタンと多機能ボタンのグループ(チャプター 2)

グラフィカルインタフェースIII:シンプルボタンと多機能ボタンのグループ(チャプター 2)

シリーズの最初の章は、シンプルボタンと多機能ボタンについてでした。2番目の記事は、アプリケーション内でユーザーがセット(グループ)のうちオプションのいずれかを選択することができる際の要素の作成を可能にする相互接続されたボタンのグループに専念します。
グラフィカルインターフェイスを備えたエキスパートアドバイザ : 機能の設定(第2部)
グラフィカルインターフェイスを備えたエキスパートアドバイザ : 機能の設定(第2部)

グラフィカルインターフェイスを備えたエキスパートアドバイザ : 機能の設定(第2部)

これは手動取引のためのマルチシンボルシグナルエキスパートアドバイザーの作成に関する記事の第2部です。私たちはすでにグラフィカルインターフェースを作成しました。この記事では、インターフェースとプログラムの機能を融合させる方法について説明します。
preview
MetaTrader5でDirectXを使用して3Dグラフィックスを作成する方法

MetaTrader5でDirectXを使用して3Dグラフィックスを作成する方法

3D グラフィックスは、隠れたパターンの視覚化を可能にし、膨大な量のデータを分析するための優れた手段です。 今回のタスクは MQL5 で直接解決できますが、DireсtX 関数は 3 次元オブジェクトの作成が可能です。 したがって、MetaTrader5で3Dゲームをすることも、複雑なプログラムを作成することさえ可能です。 シンプルな 3 次元図形を描画して、3D グラフィックスをしましょう。
グラフィカルインタフェース I: フォームボタンとインターフェイス要素削除のための関数(チャプター 4)
グラフィカルインタフェース I: フォームボタンとインターフェイス要素削除のための関数(チャプター 4)

グラフィカルインタフェース I: フォームボタンとインターフェイス要素削除のための関数(チャプター 4)

本稿では、コントロールのクリックによるフォーム管理のメソッドを追加してWindowクラスの開発を続けていこうと思います。フォームのボタンによってのプログラムの終了を有効にするだけでなく、フォームの最小化と最大化機能も実装します。
UML ツールを用いたExpert Advisorの開発方法
UML ツールを用いたExpert Advisorの開発方法

UML ツールを用いたExpert Advisorの開発方法

本稿では UML グラフィカル言語を用いたExpert Advisorの開発方法についてお話します。そのツールはオブジェクト指向のソフトウェアシステムのビジュアルモデル化に使用されるものです。この方法のおもなメリットはモデル化プロセスの可視化です。本稿には Software Ideas Modelerを使用したExpert Advisorの ストラクチャとプロパティのモデル化を示す例が含まれています。
Expert Advisor パラメータのユーザーパネルからの『オンザフライ』の変更
Expert Advisor パラメータのユーザーパネルからの『オンザフライ』の変更

Expert Advisor パラメータのユーザーパネルからの『オンザフライ』の変更

本稿ではパラメータをユーザーパネルから管理できる Expert Advisor の実装を示すちょっとした例を提供します。『オンザフライ』でパラメータを変更するとき、Expert Advisor はのちにファイルから読み込みパネル上で適切に表示するために情報パネルからファイルに取得した値を書きます。本稿はマニュアルでトレードを行う方または半自動モードでトレードを行う方に適しているでしょう。
エキスパートアドバイザーを使って自分ルールでシグナルをコピーするには?
エキスパートアドバイザーを使って自分ルールでシグナルをコピーするには?

エキスパートアドバイザーを使って自分ルールでシグナルをコピーするには?

シグナルを購読していると、このような状況が起こることがあります。貴方の取引口座はレバレッジが1:100であるのに、プロバイダのレバレッジは1:500かつ最小ロットでトレードを行っていて、貴方の取引残高はほぼ同じ。そしてこの時コピー係数は10%から15%になるという状況です。この記事では、このような場合にどのようにコピー係数を上げたら良いかをお話しします。
グラフィカルインタフェース V:リストビュー要素(チャプター 2)
グラフィカルインタフェース V:リストビュー要素(チャプター 2)

グラフィカルインタフェース V:リストビュー要素(チャプター 2)

前の章では、縦横スクロールバーを作成するためのクラスを書きました。この章では、それを実装します。縦スクロールバーはそのコンパウンドの一部となるリストビュー要素を作成するためのクラスが記述されます。
グラフィックエキスパートアドバイザー: オートグラフ
グラフィックエキスパートアドバイザー: オートグラフ

グラフィックエキスパートアドバイザー: オートグラフ

本稿はトレードを管理する便利なインターフェースである画面表示の利用法について書いています。
Simulink:Expert Advisors開発者へのガイド
Simulink:Expert Advisors開発者へのガイド

Simulink:Expert Advisors開発者へのガイド

私はプロのプログラマではありません。そのため、トレーディングシステムの作業をする際、「シンプルから複雑へ」という原則は私にとって重要なものです。では私にとってシンプルとは正確にどういうことを言うのでしょうか?まず、システム作成プロセスの視覚化、そしてその動作のロジックです。また、手書きコードを最小限に抑えることです。本稿では、Matlabパッケージを基にトレーディングシステムを作成し検証することを目指しています。そしてIMetaTrader 5用のExpert Advisorを書いていきます。検証段階ではMetaTrader 5からの履歴データを使用します。
Expert Advisor 内での Expert Advisor コンテスト
Expert Advisor 内での Expert Advisor コンテスト

Expert Advisor 内での Expert Advisor コンテスト

仮想取引によって、適応型 Expert Advisor を作成することができます。それは実マーケットでトレードをオン、オフするものです。1件の Expert Advisor に複数の戦略を組み合わせます。マルチシステム Expert Advisor は自動でトレーディング戦略を選択します。それは実マーケットで仮想取引の収益性をもとにトレードを行うには最良のものです。この種の方法により、ドローダウンを減少し、マーケットでの作業の収益性を上げることができるのです。実験を行い、結果を他の人と共有してください。多くの人がみなさんの戦略ポートフォリオを知りたがっていると思います。
preview
手動チャートおよび取引ツールキット(第II部)チャートグラフィック描画ツール

手動チャートおよび取引ツールキット(第II部)チャートグラフィック描画ツール

これは連載の次の記事で、キーボードショートカットを使用してチャートグラフィックを手動で適用するための便利なライブラリを作成した方法を示します。使用されるツールには、直線とその組み合わせが含まれます。第2部では、第1部で説明した関数を使用して、描画ツールがどのように適用されるかを確認します。ライブラリは、チャート作成タスクを大幅に簡素化する任意のエキスパートアドバイザーまたはインディケーターに接続できます。このソリューションは外部DLLを使用せず、すべてのコマンドは組み込みのMQLツールを使用して実装されます。
MQL5クックブック - 移動チャンネルのシグナルトレーディング
MQL5クックブック - 移動チャンネルのシグナルトレーディング

MQL5クックブック - 移動チャンネルのシグナルトレーディング

この記事では、移動チャネルに基づいたシグナルを送信するクラスを実装するプロセスについて説明します。各々は、テスト結果を取引戦略が引き続きます。標準ライブラリのクラスは派生クラスを作成するために使用します。
グラフィカルインタフェース V:コンボボックス要素(チャプター 3)
グラフィカルインタフェース V:コンボボックス要素(チャプター 3)

グラフィカルインタフェース V:コンボボックス要素(チャプター 3)

シリーズの第五部の最初の2つの記事では、スクロールバーとビューリストを作成するためのクラスが作成されました。この章では、コンボボックスコントロールのクラスを作成する方法についてお話します。これはまた、とりわけ第五部の前の章で考慮された要素を含むコンパウンドコントロールです。
グラフィカルインタフェースIV:マルチウィンドウモードと優先度のシステム(チャプター2)
グラフィカルインタフェースIV:マルチウィンドウモードと優先度のシステム(チャプター2)

グラフィカルインタフェースIV:マルチウィンドウモードと優先度のシステム(チャプター2)

この章では、MQLアプリケーションでのマルチウィンドウインタフェースの作成の可能性をもたらすライブラリの実装を拡張します。また、グラフィカルオブジェクト上でのマウスの左クリックの優先順位のシステムを開発します。これは、要素がユーザのアクションに応答しない場合に発生する問題を回避するために必要です。
preview
ニューラルネットワークが簡単に(第8回): アテンションメカニズム

ニューラルネットワークが簡単に(第8回): アテンションメカニズム

以前の記事では、ニューラルネットワークを整理するための様々な選択肢を既に検証しました. また、画像処理アルゴリズムから借りた畳み込みネットワークについても検討しました. 今回の記事では、言語モデルの開発に弾みをつけた「アテンション・メカニズム」を考えることを提案します.
自己組織化特徴マップ(Kohonenマップ) - サブジェクトリビジッティング
自己組織化特徴マップ(Kohonenマップ) - サブジェクトリビジッティング

自己組織化特徴マップ(Kohonenマップ) - サブジェクトリビジッティング

この記事では、Kohonenマップで動作するのテクニックについて説明します。Kohonenマップで困難に直面し、MQL4とMQL5でのプログラミングの基本的なレベルがわかる研究者や経験豊富なプログラマーを対象としています。自己組織化特徴マップ(Kohonenマップ) - サブジェクトリビジッティング
MQL5 クックブック: マルチ通貨 Expert Advisor - シンプル、かしこい、迅速なアプローチ
MQL5 クックブック: マルチ通貨 Expert Advisor - シンプル、かしこい、迅速なアプローチ

MQL5 クックブック: マルチ通貨 Expert Advisor - シンプル、かしこい、迅速なアプローチ

本稿ではマルチ通貨 Expert Advisorに適切なシンプルなアプローチの実装について述べます。これは理想的な条件下でありながら各シンボルに対して異なるパラメータでExpert Advisor を検証/トレーディングする設定を可能にするということです。例として2個のシンボルに対するパターンを作成しますが、コードに少し変更を加えるだけで必要に応じてそれ以外のシンボルも追加できるようにしておきます。
グラフィカルインタフェース I: グラフィカルインタフェースの動画化(チャプター 3)
グラフィカルインタフェース I: グラフィカルインタフェースの動画化(チャプター 3)

グラフィカルインタフェース I: グラフィカルインタフェースの動画化(チャプター 3)

前回の記事では、コントロールのフォームクラスの開発に着手しました。本稿では、チャート領域にフォームを移動するためのクラスメソッドを書き入れによってそれを続行します。その後、このインターフェイスコンポーネントをライブラリコアに統合します。また、マウスカーソルが上をホバリングしたときにフォームコントロールの色が変わることを保証します。
preview
一からの取引エキスパートアドバイザーの開発(第7部):価格別出来高の追加(I)

一からの取引エキスパートアドバイザーの開発(第7部):価格別出来高の追加(I)

価格別出来高は、現存する最も強力なインジケータの1つです。ある程度の自信を持って取引するには、チャートにはこのインジケータが必須です。このインジケータはよく「テープリーディング」を好むトレーダーに使われますが、プライスアクションのみを使用して取引する場合にも活用できます。
グラフィカルインタフェース I: 種々のプログラム及びメタトレーダー4ターミナルでのライブラリのテスト(チャプター 5)
グラフィカルインタフェース I: 種々のプログラム及びメタトレーダー4ターミナルでのライブラリのテスト(チャプター 5)

グラフィカルインタフェース I: 種々のプログラム及びメタトレーダー4ターミナルでのライブラリのテスト(チャプター 5)

このグラフィカルインターフェイスに関するシリーズの第一部の前章では、フォームクラスは、そのコントロールを押すしてフォームの管理を許可するメソッドによって改善されました。本稿では、インディケータやスクリプトなどの異なるMQLプログラムでのテストが行われます。ライブラリはすべてのMetaTraderプラットフォームで使用できるクロスプラットフォーム対応として設計されたので、MetaTrader 4でもテストを行います。
グラフィカルインタフェース  II: 区切り線とコンテキストメニュー要素(チャプター 2)
グラフィカルインタフェース  II: 区切り線とコンテキストメニュー要素(チャプター 2)

グラフィカルインタフェース II: 区切り線とコンテキストメニュー要素(チャプター 2)

本稿では、区切り線要素を作成します。区切り線要素は、独立したインターフェース要素としてだけでなく、他の多くの構成要素の一部として使用することもできます。本稿ではまた、その後、コンテキストメニュークラスの開発に必要なものすべての詳細を考察します。それに加え、アプリケーションのすべてのグラフィカル・インターフェース要素へのポインタ格納の基本であるクラスに必要なすべての追加をご紹介します。
グラフィカルインタフェースVII: テーブルコントロール(チャプター 1)
グラフィカルインタフェースVII: テーブルコントロール(チャプター 1)

グラフィカルインタフェースVII: テーブルコントロール(チャプター 1)

MetaTraderグラフィカルインタフェースに関するシリーズの第七部では、テキストラベル、エディットボックスとレンダーボックスの3つのテーブルタイプについてお話します。後1つの重要かつ頻繁に使用されるコントロールはタブで、これは、他のコントロールのグループを表示/非表示してMQLアプリケーション内でスペースを有効に使ったインタフェースを開発することを可能にします。
クロスプラットフォームEA: マネーマネジメント
クロスプラットフォームEA: マネーマネジメント

クロスプラットフォームEA: マネーマネジメント

この記事では、クロスプラットフォームEAの マネーマネジメントメソッドの実装について説明します。 マネーマネジメントクラスは、EAによってエントリーされる次のトレードに使用するロットサイズの計算を担当します。
グラフィカルインタフェース V: 縦横のスクロールバー(チャプター 1)
グラフィカルインタフェース V: 縦横のスクロールバー(チャプター 1)

グラフィカルインタフェース V: 縦横のスクロールバー(チャプター 1)

MetaTrader環境でのグラフィカルインタフェースを作成するためのライブラリの開発の検討が続きます。シリーズの第一部の最初の記事では、縦横のスクロールバーを作成するためのクラスを作成します。
エキスパートシステム「コメンテーター」MQL4プログラムの組み込みインジケーターの実践的な使用
エキスパートシステム「コメンテーター」MQL4プログラムの組み込みインジケーターの実践的な使用

エキスパートシステム「コメンテーター」MQL4プログラムの組み込みインジケーターの実践的な使用

この記事は、MQL4でのプログラミングにおけるテクニカルインジケーターの使用について紹介しています。
オブジェクト指向アプローチによる EA モードのプログラミング
オブジェクト指向アプローチによる EA モードのプログラミング

オブジェクト指向アプローチによる EA モードのプログラミング

本稿は MQL5 でのマルチモード売買ロボットプログラミングの考えかたについて説明します。モードはすべてオブジェクト指向アプローチにより実装されます。どちらのモードクラス階層のインスタンスおよび検証用クラスも提供されます。売買ロボットのマルチモードプログラミングは MQL5 で書かれた EA の処理モードすべての特殊性を考慮するようになっています。関数および列挙はモード特定のために作成されています。
スピンドルチャートインジケーター
スピンドルチャートインジケーター

スピンドルチャートインジケーター

この記事は、スピンドルチャート描写とトレード戦略とEAにおけるその使い方に関するものです。まず、日本のロウソク足チャートとも繋がりがある、そのチャートについてみていきます。次に、MQL5言語でのソースコードベースでのインジケーターの実装について分析します。インジケーターとトレード手法に基づいてEAをテストしてみましょう。
グラフィカルインタフェースVI:スライダーとデュアルスライダーコントロール(チャプター 2)
グラフィカルインタフェースVI:スライダーとデュアルスライダーコントロール(チャプター 2)

グラフィカルインタフェースVI:スライダーとデュアルスライダーコントロール(チャプター 2)

前回の記事では、チェックボックス、編集コントロールやチェックボックスやコンボボックスを持つ編集コントロールの4つの頻繁にグラフィカルインタフェースで使用されるコントロールでライブラリを改良しました。第六部の第2章は、スライダーとデュアルスライダーコントロールに専念されます。
preview
MQL5でインタラクティブなグラフィカルユーザーインターフェイスを作成する(第1回):パネルの製作

MQL5でインタラクティブなグラフィカルユーザーインターフェイスを作成する(第1回):パネルの製作

この記事では、MetaQuotes Language 5 (MQL5)を使用して、グラフィカルユーザーインターフェイス(GUI)パネルを作成し、実装するための基本的な手順について説明します。カスタムユーティリティパネルは、一般的なタスクを簡素化し、重要な取引情報を可視化することで、取引におけるユーザーのインタラクションを向上させます。カスタムパネルを作成することで、トレーダーはワークフローを合理化し、取引操作の時間を節約することができます。