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

icon

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

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

新しい記事を追加
最新 | ベスト
グラフィカルインタフェースXI:標準グラフィックライブラリの統合(ビルド16)
グラフィカルインタフェースXI:標準グラフィックライブラリの統合(ビルド16)

グラフィカルインタフェースXI:標準グラフィックライブラリの統合(ビルド16)

グラフィックライブラリの科学的なグラフを作成するための新バージョン(CGraphicクラス)が最近発表されました。今回のアップデートでは、グラフィカルインターフェイス作成のために開発された当ライブラリにグラフを作成するための新しいコントロールを備えたバージョンが導入されます。さまざまな種類のデータを視覚化することがさらに簡単になりました。
クロスプラットフォームEA: ストップ
クロスプラットフォームEA: ストップ

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

この記事では、2つのプラットフォームMetaTrader4とMetaTrader5との互換性を確保するために、EAのストップの実装について説明します。
グラフィカルインターフェイスXI:テーブルセル内のテキストエディットボックスとコンボボックス(ビルド15)
グラフィカルインターフェイスXI:テーブルセル内のテキストエディットボックスとコンボボックス(ビルド15)

グラフィカルインターフェイスXI:テーブルセル内のテキストエディットボックスとコンボボックス(ビルド15)

このライブラリアップデートでは、テーブルコントロール(CTableクラス)に新しいオプションが追加されます。テーブルセル内のコントロールのラインアップが拡張され、今回はテキストエディットボックスとコンボボックスが追加されます。また、このアップデートでは、実行中にMQLアプリケーションのウィンドウのイズを変更する機能も導入されています。
ユニバーサルEA: シンボルプロパティへのアクセス (その 8)
ユニバーサルEA: シンボルプロパティへのアクセス (その 8)

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

このテーマの8番目のパートは、任意のトレーディングツールへアクセスする特殊なオブジェクト CSymbol クラスの説明をします。 EAで使用する場合、このクラスはEAのプログラミングを簡素化し、その関数を拡張することができ、シンボルプロパティのセットを提供します。
グラフィカルインターフェイスXI:レンダリングされたコントロール(ビルド14.2)
グラフィカルインターフェイスXI:レンダリングされたコントロール(ビルド14.2)

グラフィカルインターフェイスXI:レンダリングされたコントロール(ビルド14.2)

ライブラリのこの新バージョンでは、すべてのコントロールが個別のOBJ_BITMAP_LABEL型のグラフィカルオブジェクトに描画されます。また、コードの最適化についても引き続き説明し、ライブラリの中核クラスの変更について説明します。
グラフィカルインターフェイスXI:ライブラリコードのリファクタリング(ビルド14.1)
グラフィカルインターフェイスXI:ライブラリコードのリファクタリング(ビルド14.1)

グラフィカルインターフェイスXI:ライブラリコードのリファクタリング(ビルド14.1)

ライブラリが大きくなるにつれて、コードをサイズを減らすために最適化が再び必要がです。本稿で説明するライブラリのバージョンはさらにオブジェクト指向になっており、コードの学習もさらに容易になります。読者は、最新の変更の詳細な記述によって、独自のニーズに基づいて独自にライブラリを開発できるでしょう。
クロスプラットフォームEA: タイムフィルタ
クロスプラットフォームEA: タイムフィルタ

クロスプラットフォームEA: タイムフィルタ

この記事では、クロスプラットフォームEAによるさまざまな時間フィルタリングメソッドの実装について説明します。 時間フィルタクラスは、特定の時間が一定の時間構成設定に該当するかどうかをチェックします。
クロスプラットフォームEA: マネーマネジメント
クロスプラットフォームEA: マネーマネジメント

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

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

グラフィカルインターフェイスX:マルチラインテキストボックスでのテキスト選択(ビルド13)

本稿では、他のテキストエディタと同様に、さまざまなキーの組み合わせによってテキストを選択して選択したテキストを削除する機能を実装します。さらに、引き続きコードを最適化し、ライブラリの進化の第2段階の最終プロセスではすべてのコントロールが別々の画像(キャンバス)としてレンダリングされるため、これに向かってクラスを準備します。
Wolfe波動
Wolfe波動

Wolfe波動

このBill Wolfe氏によって提案された視覚的手法は、市場参入の瞬間と方向を特定するためのパターンを検出することを可能にし、価格目標とその到達時間を予測するのに役立ちます。本稿では、Wolfe波動を検索するジグザグに基づいた指標を作成する方法と、この指標に基づいた簡単なエキスパートアドバイザーで取引する方法について説明します。
MQL5 クックブック-ピボットトレーディングシグナル
MQL5 クックブック-ピボットトレーディングシグナル

MQL5 クックブック-ピボットトレーディングシグナル

この記事では、ピボットの反転に基づいたシグナルのクラスの開発と実装について説明します。 このクラスは、標準ライブラリを適用する戦略を形成するために使用されます。 フィルタを追加することにより、ピボット戦略を改善することができるでしょう。
グラフィカルインタフェースX: マルチラインテキストボックス内のワードラップアルゴリズム(ビルド12)
グラフィカルインタフェースX: マルチラインテキストボックス内のワードラップアルゴリズム(ビルド12)

グラフィカルインタフェースX: マルチラインテキストボックス内のワードラップアルゴリズム(ビルド12)

マルチラインテキストボックスの開発を続けましょう。今回の課題は、テキストがボックス幅を超えた場合には自動的にワードラップを行い、機会が生じた場合にはワードラップを取り消してテキストを前行に収めることです。
グラフィカルインターフェイスX:ソート、テーブル再構築とセル内のコントロール(ビルド11)
グラフィカルインターフェイスX:ソート、テーブル再構築とセル内のコントロール(ビルド11)

グラフィカルインターフェイスX:ソート、テーブル再構築とセル内のコントロール(ビルド11)

レンダーテーブルにデータソート、列と行の数の管理、コントロールを配置するためのテーブルのセルタイプの設定といった新しい機能を追加し続けます。
グラフィカルインターフェイスX:レンダーテーブルの更新とコード最適化(ビルド10)
グラフィカルインターフェイスX:レンダーテーブルの更新とコード最適化(ビルド10)

グラフィカルインターフェイスX:レンダーテーブルの更新とコード最適化(ビルド10)

レンダーテーブル(CCanvasTable)に新しい機能を補完していきます。テーブルには、ホバー時の列の強調表示;、各セルにアイコンの配列を追加する機能とそれらを切り替えるメソッド、 実行時にセルテキストを設定または変更する機能などが含まれます。
グラフィカルインタフェースX:レンダーテーブルの新機能(ビルド9)
グラフィカルインタフェースX:レンダーテーブルの新機能(ビルド9)

グラフィカルインタフェースX:レンダーテーブルの新機能(ビルド9)

今日までは、ライブラリの最も高度なテーブルはCTableでした。このテーブルは、OBJ_EDIT型のエディットボックスから組み立てられており、さらなる開発は難しいです。したがって、機能の最大化においては、ライブラリ開発の現段階を考慮しても、CCanvasTable型のレンダーテーブルを開発する方が賢明です。その現バージョンはまったく使えない状態ですが、この記事から始めて状況を改善していきましょう。
グラフィカルインタフェースX: マルチラインテキストボックス(ビルド8)
グラフィカルインタフェースX: マルチラインテキストボックス(ビルド8)

グラフィカルインタフェースX: マルチラインテキストボックス(ビルド8)

マルチラインテキストボックスについて説明します。OBJ_EDIT型のグラフィカルオブジェクトとは異なり、ここで説明されるバージョンには入力文字数の制限がありません。また、カーソルをマウスまたはキーを使用して移動してテキストボックスをシンプルなテキストエディタに切り替えるモードも追加されています。
グラフィカルインタフェースX:リストとテーブルの高度な管理コードの最適化(ビルド7)
グラフィカルインタフェースX:リストとテーブルの高度な管理コードの最適化(ビルド7)

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

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

グラフィカルインタフェースX: Timeコントロール、チェックボックスコントロールのリストとテーブルのソート(ビルド6)

グラフィカルインタフェースを作成するためのライブラリの開発が続きます。今回は、チェックボックスコントロールのリストとTimeが対象となります。さらに、CTableクラスではデータを昇順または降順に並べ替えることができるようになりました。
グラフィカルインタフェースX: テキストエディットボックス、ピクチャスライダー、及びシンプルなコントロール(ビルド5)
グラフィカルインタフェースX: テキストエディットボックス、ピクチャスライダー、及びシンプルなコントロール(ビルド5)

グラフィカルインタフェースX: テキストエディットボックス、ピクチャスライダー、及びシンプルなコントロール(ビルド5)

この記事では、テキストエディットボックス、ピクチャスライダー、および追加的なシンプルなコントロール(テキストラベルとピクチャ)の新しいコントロールについて検討します。ライブラリは成長を続けており、新しいコントロールの導入に加えて、以前作成されたものも改善されています。
不変なジグザグ
不変なジグザグ

不変なジグザグ

ジグザグは、MT5のユーザーの間で人気の高いインジケーターです。この記事では、ジグザグのさまざまなパターンを作成する可能性について分析します。この結果はEAの開発に有用であるばかりでなく、その関数を拡張する不変なインジケーターとなりえます。
80-20 トレード戦略
80-20 トレード戦略

80-20 トレード戦略

この記事では、80-20 トレード戦略を分析するためツール (インジケーターおよびEA) の開発について説明します。トレードルールは"ストリートスマート"より引用します。リンダラッシュクとローレンス · コナーズによる"短期的なトレード戦略”です。mql5を使用して、戦略ルールを定式化し、最近の相場のヒストリーベースで、インディケータとEAをテストします。
「タートルスープ」トレードシステムと ' タートル スープ プラス一 '
「タートルスープ」トレードシステムと ' タートル スープ プラス一 '

「タートルスープ」トレードシステムと ' タートル スープ プラス一 '

この記事では、2つのトレードシステム「タートルスープ」と「タートル スープ プラスワン'のルールについて扱います。リンダ ・ ブラッドフォード ・ ラシュキ と ローレンス a. コナーズによる 高確率短期のトレード戦略です。この戦略は、かなり人気があります。15~20年間の相場の動きに基づいてを開発したものです。
MQL5をプログラミングの基礎: ターミナルのグローバル変数
MQL5をプログラミングの基礎: ターミナルのグローバル変数

MQL5をプログラミングの基礎: ターミナルのグローバル変数

ターミナルのグローバル変数は、高度で信頼性の高いEAを開発するために欠かせないツールです。グローバル変数なしで MQL5で EA の開発をすることは想像を絶します。
グラフィカルインタフェースX: 標準チャートコントロール(ビルド4)
グラフィカルインタフェースX: 標準チャートコントロール(ビルド4)

グラフィカルインタフェースX: 標準チャートコントロール(ビルド4)

今回は、標準のチャートコントロールについて考えていきます。これによって水平スクロールを同期させる機能を持つサブチャートの配列の作成が可能になります。また、引き続き、ライブラリのコードを最適化してCPU負荷を軽減します。
グラフィカルインタフェースX: Easy And Fast (簡単で手早い)ライブラリの更新(ビルド3)
グラフィカルインタフェースX: Easy And Fast (簡単で手早い)ライブラリの更新(ビルド3)

グラフィカルインタフェースX: Easy And Fast (簡単で手早い)ライブラリの更新(ビルド3)

本稿では、Easy And Fast ライブラリの次のバージョン(バージョン3)を紹介します。特定の欠陥を修正して、新しい機能を追加しました。詳細は本稿で後ほどお話しします。
MQL5クックブック - 移動チャンネルのシグナルトレーディング
MQL5クックブック - 移動チャンネルのシグナルトレーディング

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

この記事では、移動チャネルに基づいたシグナルを送信するクラスを実装するプロセスについて説明します。各々は、テスト結果を取引戦略が引き続きます。標準ライブラリのクラスは派生クラスを作成するために使用します。
グラフィカルインタフェースX: Easy And Fast (簡単で手早い)ライブラリの更新(ビルド2)
グラフィカルインタフェースX: Easy And Fast (簡単で手早い)ライブラリの更新(ビルド2)

グラフィカルインタフェースX: Easy And Fast (簡単で手早い)ライブラリの更新(ビルド2)

シリーズの前回の記事の出版以来、Easy And Fast ライブラリにはいくつかの新機能が加わりました。ライブラリの構造とコードは部分的に最適化され、CPUの負荷が少し軽減されています. 多くのコントロールクラスで繰り返して現れるメソッドは、CElement基本クラスに移動されました。
グラフィカルインタフェースIX:プログレスバーと折れ線グラフコントロール(チャプター2)
グラフィカルインタフェースIX:プログレスバーと折れ線グラフコントロール(チャプター2)

グラフィカルインタフェースIX:プログレスバーと折れ線グラフコントロール(チャプター2)

第九部の第2章はプログレスバーと折れ線グラフに専念されます。いつものように、これらのコントロールがカスタムMQLアプリケーションでどのように使用できるかを明らかにする詳細な実施例が存在します。
MQLのソケットの使用およびシグナルプロバイダになる方法
MQLのソケットの使用およびシグナルプロバイダになる方法

MQLのソケットの使用およびシグナルプロバイダになる方法

現代の情報社会はソケットの存在なしに成り立つでしょうか?1982年に登場し現在までほぼ変わることなく、ソケットは私達の為に毎秒動いています。これは私達が暮らすマトリックスの神経終末ネットワークのベースです。
グラフィカルインタフェースIX:カラーピッカーコントロール(チャプター1)
グラフィカルインタフェースIX:カラーピッカーコントロール(チャプター1)

グラフィカルインタフェースIX:カラーピッカーコントロール(チャプター1)

本稿は、MetaTrader取引ターミナルのグラフィカルインタフェース作成ライブラリの開発に関するシリーズの第九部の初めとなります。それは2章で構成され、カラーピッカー、カラーボタン、プログレスバーや折れ線グラフなどのコントロールとインターフェースの新しい要素が提示されてます。
グラフィカルインタフェースVIII: ファイルナビゲータコントロール(チャプター3)
グラフィカルインタフェースVIII: ファイルナビゲータコントロール(チャプター3)

グラフィカルインタフェースVIII: ファイルナビゲータコントロール(チャプター3)

シリーズの第八部の前章では、ライブラリがマウスポインタ、カレンダー、ツリービューを開発するためのいくつかのクラスによって強化されました。本稿は、MQLアプリケーションのグラフィカルインターフェースの一部として使用できるファイルナビゲーターコントロールを扱います。
グラフィカルインタフェースVIII: ツリービューコントロール(チャプター2)
グラフィカルインタフェースVIII: ツリービューコントロール(チャプター2)

グラフィカルインタフェースVIII: ツリービューコントロール(チャプター2)

前のグラフィカルインターフェイス第八部では静的およびドロップダウンカレンダー要素に焦点が当てられました。この第2章は、グラフィカルインタフェースを作成するために使用されるすべての完全なライブラリーに含まれているツリービューという均等に複雑な要素に焦点を当てます。本稿で実装されるツリービューは複数の柔軟な設定とモードを含み、ニーズに合わせてコントロール要素を調整することができます。
グラフィカルインタフェースVIII:カレンダーコントロール(チャプター1)
グラフィカルインタフェースVIII:カレンダーコントロール(チャプター1)

グラフィカルインタフェースVIII:カレンダーコントロール(チャプター1)

このMetaTraderでのグラフィカルインタフェースの作成に専念した記事シリーズの第八部では、カレンダー、ツリービュー、およびファイルナビゲーターのような複雑な複合コントロールが検討されます。情報が大量のため、それぞれは個別の記事に書かれています。この部分の最初の章では、カレンダーコントロールとその拡張バージョンであるドロップダウンカレンダーに ついて説明します。
グラフィカルインタフェースVII: タブコントロール(チャプター2)
グラフィカルインタフェースVII: タブコントロール(チャプター2)

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

第七部の最初の章では、テーブルを作成するためのコントロールであるテキストラベルテーブル(CLabelsTable)、エディットボックステーブル(CTable)およびレンダーテーブル(CCanvasTable)の3つのクラスが紹介されました。本稿(チャプター2)ではタブコントロールが考察されます。
自己組織化特徴マップ(Kohonenマップ) - サブジェクトリビジッティング
自己組織化特徴マップ(Kohonenマップ) - サブジェクトリビジッティング

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

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

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

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

エキスパートアドバイザとインディケータに素早く制御パネルを追加する方法

自分のエキスパートアドバイザやインディケータに便利な制御パネルを追加したいけど、何をどうしたら良いかわかりませんか?この記事では、貴方のMQL4/MQL5プログラムに入力パラメータを持つダイアログパネルを『取り付ける方法』をステップバイステップでご紹介します。
ビル・ウィリアムズのシステムに基づく取引システムモジュール
ビル・ウィリアムズのシステムに基づく取引システムモジュール

ビル・ウィリアムズのシステムに基づく取引システムモジュール

この記事では、ビル・ウィリアムズの取引システムや、このシステムパターンをチャート上で発見しマーキングする為に開発されたMQL5モジュールの使用方法、見つけたパターンでの自動売買の原則、また様々な取引銘柄でのテスト結果を公開しています。
ユニバーサルEA:シグナルの標準メタトレーダーモジュールとの統合(その7)
ユニバーサルEA:シグナルの標準メタトレーダーモジュールとの統合(その7)

ユニバーサルEA:シグナルの標準メタトレーダーモジュールとの統合(その7)

このパートでは、シグナルモジュールとCStrategyエンジンの統合の可能性が、メタトレーダーの標準ライブラリにあることについて記述します。この記事では、カスタム戦略を作成するメソッドと同様に、シグナルの操作メソッドについて説明します。
ユニバーサルEA:カスタムトレーリングストップ(その6)
ユニバーサルEA:カスタムトレーリングストップ(その6)

ユニバーサルEA:カスタムトレーリングストップ(その6)

The sixth part of the article about the universal Expert Advisor describes the use of the trailing stop feature. The article will guide you through how to create a custom trailing stop module using unified rules, as well as how to add it to the trading engine so that it would automatically manage positions.