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

icon

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

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

新しい記事を追加
最新 | ベスト
グラフィカルインタフェース I: フォームボタンとインターフェイス要素削除のための関数(チャプター 4)
グラフィカルインタフェース I: フォームボタンとインターフェイス要素削除のための関数(チャプター 4)

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

本稿では、コントロールのクリックによるフォーム管理のメソッドを追加してWindowクラスの開発を続けていこうと思います。フォームのボタンによってのプログラムの終了を有効にするだけでなく、フォームの最小化と最大化機能も実装します。
preview
アルゴリズム取引システムを設計する理由と方法を学ぶ

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

この記事では、MQL5のいくつかの基本に言及した後で、単純なアルゴリズム取引システムを設計することによって初心者がアルゴリズム取引システム(エキスパートアドバイザー)を設計するためのMQLの基本を示します。
Expert Advisor パラメータのユーザーパネルからの『オンザフライ』の変更
Expert Advisor パラメータのユーザーパネルからの『オンザフライ』の変更

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

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

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

シグナルを購読していると、このような状況が起こることがあります。貴方の取引口座はレバレッジが1:100であるのに、プロバイダのレバレッジは1:500かつ最小ロットでトレードを行っていて、貴方の取引残高はほぼ同じ。そしてこの時コピー係数は10%から15%になるという状況です。この記事では、このような場合にどのようにコピー係数を上げたら良いかをお話しします。
UML ツールを用いたExpert Advisorの開発方法
UML ツールを用いたExpert Advisorの開発方法

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

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

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

前の章では、縦横スクロールバーを作成するためのクラスを書きました。この章では、それを実装します。縦スクロールバーはそのコンパウンドの一部となるリストビュー要素を作成するためのクラスが記述されます。
グラフィカルインタフェースIII:シンプルボタンと多機能ボタンのグループ(チャプター 2)
グラフィカルインタフェースIII:シンプルボタンと多機能ボタンのグループ(チャプター 2)

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

シリーズの最初の章は、シンプルボタンと多機能ボタンについてでした。2番目の記事は、アプリケーション内でユーザーがセット(グループ)のうちオプションのいずれかを選択することができる際の要素の作成を可能にする相互接続されたボタンのグループに専念します。
MQL5クックブック - 移動チャンネルのシグナルトレーディング
MQL5クックブック - 移動チャンネルのシグナルトレーディング

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

この記事では、移動チャネルに基づいたシグナルを送信するクラスを実装するプロセスについて説明します。各々は、テスト結果を取引戦略が引き続きます。標準ライブラリのクラスは派生クラスを作成するために使用します。
考えられる.EAをリアルタイムで最適化するためのインジケータの使用法
考えられる.EAをリアルタイムで最適化するためのインジケータの使用法

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

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

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

この記事では、Kohonenマップで動作するのテクニックについて説明します。Kohonenマップで困難に直面し、MQL4とMQL5でのプログラミングの基本的なレベルがわかる研究者や経験豊富なプログラマーを対象としています。自己組織化特徴マップ(Kohonenマップ) - サブジェクトリビジッティング
グラフィカルインターフェイスを備えたエキスパートアドバイザ : 機能の設定(第2部)
グラフィカルインターフェイスを備えたエキスパートアドバイザ : 機能の設定(第2部)

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

これは手動取引のためのマルチシンボルシグナルエキスパートアドバイザーの作成に関する記事の第2部です。私たちはすでにグラフィカルインターフェースを作成しました。この記事では、インターフェースとプログラムの機能を融合させる方法について説明します。
Simulink:Expert Advisors開発者へのガイド
Simulink:Expert Advisors開発者へのガイド

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

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

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

3D グラフィックスは、隠れたパターンの視覚化を可能にし、膨大な量のデータを分析するための優れた手段です。 今回のタスクは MQL5 で直接解決できますが、DireсtX 関数は 3 次元オブジェクトの作成が可能です。 したがって、MetaTrader5で3Dゲームをすることも、複雑なプログラムを作成することさえ可能です。 シンプルな 3 次元図形を描画して、3D グラフィックスをしましょう。
ユニバーサルEA:戦略トレードモード(その1)
ユニバーサルEA:戦略トレードモード(その1)

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

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

MQL5の行列とベクトル

特別な「matrix」と「vector」データ型を使用すると、数学表記に非常に近いコードを作成することができます。行列とベクトルのメソッドを使用すると、計算でネストされたループを作成したり配列で正しいインデックスを作成したりする必要がなくなるため、複雑なプログラムの開発における信頼性と速度が向上します。
preview
手動チャートおよび取引ツールキット(第II部)チャートグラフィック描画ツール

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

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

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

以前の記事では、ニューラルネットワークを整理するための様々な選択肢を既に検証しました. また、画像処理アルゴリズムから借りた畳み込みネットワークについても検討しました. 今回の記事では、言語モデルの開発に弾みをつけた「アテンション・メカニズム」を考えることを提案します.
preview
自動で動くEAを作る(第03回):新しい関数

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

今日は、自動モードでシンプルかつ安全に動作するエキスパートアドバイザー(EA)を作成する方法を紹介します。前回は、自動売買EAで使用するオーダーシステムの開発に着手しましたが、必要な関数のうち1つしか作っていません。
preview
MetaTrader 5のWebSocket — WindowsAPIの使用

MetaTrader 5のWebSocket — WindowsAPIの使用

この記事では、WinHttp.dllを使用してMetaTrader 5プログラム用のWebSocketクライアントを作成します。クライアントは最終的にクラスとして実装され、Binary.com WebSocketAPIに対してもテストされます。
グラフィカルインタフェースIV:マルチウィンドウモードと優先度のシステム(チャプター2)
グラフィカルインタフェースIV:マルチウィンドウモードと優先度のシステム(チャプター2)

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

この章では、MQLアプリケーションでのマルチウィンドウインタフェースの作成の可能性をもたらすライブラリの実装を拡張します。また、グラフィカルオブジェクト上でのマウスの左クリックの優先順位のシステムを開発します。これは、要素がユーザのアクションに応答しない場合に発生する問題を回避するために必要です。
preview
一からの取引エキスパートアドバイザーの開発(第7部):価格別出来高の追加(I)

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

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

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

MetaTrader環境でのグラフィカルインタフェースを作成するためのライブラリの開発の検討が続きます。シリーズの第一部の最初の記事では、縦横のスクロールバーを作成するためのクラスを作成します。
グラフィカルインタフェース I: 種々のプログラム及びメタトレーダー4ターミナルでのライブラリのテスト(チャプター 5)
グラフィカルインタフェース I: 種々のプログラム及びメタトレーダー4ターミナルでのライブラリのテスト(チャプター 5)

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

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

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

前回の記事では、コントロールのフォームクラスの開発に着手しました。本稿では、チャート領域にフォームを移動するためのクラスメソッドを書き入れによってそれを続行します。その後、このインターフェイスコンポーネントをライブラリコアに統合します。また、マウスカーソルが上をホバリングしたときにフォームコントロールの色が変わることを保証します。
グラフィカルインタフェース  II: 区切り線とコンテキストメニュー要素(チャプター 2)
グラフィカルインタフェース  II: 区切り線とコンテキストメニュー要素(チャプター 2)

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

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

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

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

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

シリーズの第五部の最初の2つの記事では、スクロールバーとビューリストを作成するためのクラスが作成されました。この章では、コンボボックスコントロールのクラスを作成する方法についてお話します。これはまた、とりわけ第五部の前の章で考慮された要素を含むコンパウンドコントロールです。
オブジェクト指向アプローチによる EA モードのプログラミング
オブジェクト指向アプローチによる EA モードのプログラミング

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

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

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

この記事では、クロスプラットフォームEAの マネーマネジメントメソッドの実装について説明します。 マネーマネジメントクラスは、EAによってエントリーされる次のトレードに使用するロットサイズの計算を担当します。
MQL5 クックブック: マルチ通貨 Expert Advisor - シンプル、かしこい、迅速なアプローチ
MQL5 クックブック: マルチ通貨 Expert Advisor - シンプル、かしこい、迅速なアプローチ

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

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

選択した基準による最適化結果の可視化

この記事では、前回の記事で始まった最適化結果を扱うMQLアプリケーションの開発を続けます。今回は、グラフィカルインターフェースを介して、別の基準を指定してパラメーターを最適化した後、最良の結果の表を作成する例をご紹介します。
MQL5クックブック - MQL5での未決注文の取り扱いとマルチカレンシーエキスパートアドバイザー
MQL5クックブック - MQL5での未決注文の取り扱いとマルチカレンシーエキスパートアドバイザー

MQL5クックブック - MQL5での未決注文の取り扱いとマルチカレンシーエキスパートアドバイザー

今回は、指値売り、逆指値売りなど未決注文に基づくトレーディングアルゴリズムを持つマルチカレンシーエキスパートアドバイザーを作成していきます。この記事は、以下を紹介します:特定の時間半位におけるトレーディング、未決注文の実行・修正・削除、最後のポジションが利取りや損切りにて閉じられたかのチェック、各シンボルにおける取引の履歴の管理などです。
エキスパートシステム「コメンテーター」MQL4プログラムの組み込みインジケーターの実践的な使用
エキスパートシステム「コメンテーター」MQL4プログラムの組み込みインジケーターの実践的な使用

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

この記事は、MQL4でのプログラミングにおけるテクニカルインジケーターの使用について紹介しています。
グラフィカルインタフェースVI:スライダーとデュアルスライダーコントロール(チャプター 2)
グラフィカルインタフェースVI:スライダーとデュアルスライダーコントロール(チャプター 2)

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

前回の記事では、チェックボックス、編集コントロールやチェックボックスやコンボボックスを持つ編集コントロールの4つの頻繁にグラフィカルインタフェースで使用されるコントロールでライブラリを改良しました。第六部の第2章は、スライダーとデュアルスライダーコントロールに専念されます。
ファイルの操作。重要な市場イベントの可視化例。
ファイルの操作。重要な市場イベントの可視化例。

ファイルの操作。重要な市場イベントの可視化例。

この記事では、外国為替証拠金取引市場でのより生産的なMQL4の使用を検証します。
ユニバーサルEA:保留注文とサポートヘッジ(その5)
ユニバーサルEA:保留注文とサポートヘッジ(その5)

ユニバーサルEA:保留注文とサポートヘッジ(その5)

この記事では、CStrategyの取引エンジンのさらなる詳細を扱います。多くの要望により、取引エンジンに保留中のサポート関数を追加しました。また、MT5の最新バージョンでは、ヘッジオプションを使用してアカウントをサポートしています。同じサポートがCStrategyに追加されています。この記事では、有効なヘッジオプションを持つアカウントのCStrategyと同様に、予約注文のアルゴリズムについて説明します。
ユニバーサルEA: シンボルプロパティへのアクセス (その 8)
ユニバーサルEA: シンボルプロパティへのアクセス (その 8)

ユニバーサルEA: シンボルプロパティへのアクセス (その 8)

このテーマの8番目のパートは、任意のトレーディングツールへアクセスする特殊なオブジェクト CSymbol クラスの説明をします。 EAで使用する場合、このクラスはEAのプログラミングを簡素化し、その関数を拡張することができ、シンボルプロパティのセットを提供します。
preview
自動で動くEAを作る(第07回):口座の種類(II)

自動で動くEAを作る(第07回):口座の種類(II)

今日は、自動モードでシンプルかつ安全に動作するエキスパートアドバイザー(EA)を作成する方法を紹介します。トレーダーは、自動EAが何をしているのかを常に意識しておく必要があります。そうすれば、もしEAが「レールから外れた」場合、トレーダーはできるだけ早くチャートからEAを取り除き、状況をコントロールすることができます。
グラフィカルインタフェースX:リストとテーブルの高度な管理コードの最適化(ビルド7)
グラフィカルインタフェースX:リストとテーブルの高度な管理コードの最適化(ビルド7)

グラフィカルインタフェースX:リストとテーブルの高度な管理コードの最適化(ビルド7)

ライブラリコードの最適化が必要です。それは、より規則正しく、学習のために読みやすく理解しやすくなければありません。さらに、以前に作成したコントロール(リスト、テーブル、スクロールバー)の開発が続きます。
クロスプラットフォームEA: ストップ
クロスプラットフォームEA: ストップ

クロスプラットフォームEA: ストップ

この記事では、2つのプラットフォームMetaTrader4とMetaTrader5との互換性を確保するために、EAのストップの実装について説明します。