MQL5プログラミング記事

icon

取引戦略をプログラミングするためのMQL5言語を、ほとんどがコミュニティメンバーによって書かれた数多くの公開記事で学びます。記事は統合、テスター、取引戦略等のカテゴリに分けられていて、プログラミングに関連する疑問への解答を素早く見つけることができます。

新着記事をフォローして、フォーラムでディスカッションしてください。

新しい記事を追加
最新 | ベスト
MetaTrader 4でMQL5ウィザードの既製エキスパートアドバイザーが機能
MetaTrader 4でMQL5ウィザードの既製エキスパートアドバイザーが機能

MetaTrader 4でMQL5ウィザードの既製エキスパートアドバイザーが機能

本稿ではMetaTrader 4のためのMetaTrader 5取引環境の簡単なエミュレータについてお話しします。このエミュレータは標準ライブラリの取引クラスの移行と調整を実装するものです。その結果、MetaTrader 5ウィザードで生成されたエキスパートアドバイザーは、そのままMetaTrader 4でコンパイルして実行することができます。
MQL5 クックブック: インジケーターサブウィンドウコンソールーボタン
MQL5 クックブック: インジケーターサブウィンドウコンソールーボタン

MQL5 クックブック: インジケーターサブウィンドウコンソールーボタン

この記事では、ボタンコンソールでユーザーインターフェースを開発する例を紹介します。ユーザーにインタラクティヴィティ性を伝えるため、ボタンはカーソルが図上にある際に色を変えます。ボタンの上にカーソルがある状態で、ボタンの色は、わずかに暗くなり、ボタンがクリックされた時には、わずかにより暗くなります。さらに、ツールチップをそれぞれのボタンに加え、直感的なインターフェースを作成します。
インジケーターの開発を依頼するための要件定義を作成する方法
インジケーターの開発を依頼するための要件定義を作成する方法

インジケーターの開発を依頼するための要件定義を作成する方法

最もよくあるトレードシステムの開発の第一歩は、相場行動パターンを識別できるテクニカルインジケーターの作成です。 専門的に開発されたインジケーターを、フリーランスのサービスからオーダーすることができます。 この記事からは、適切な要件定義を作成する方法を学習します。より速く、希望のインジケーターを取得するのに役立ちます.
確率をトレードギャップに適用する
確率をトレードギャップに適用する

確率をトレードギャップに適用する

この記事では、トレード戦略の作成とテストに確率と数学的統計手法を適用します。 また、価格とランダムウォークの差を使用して、最適なトレードリスクを探します。 価格がゼロドリフトランダムウォークのように振る舞うならば、収益性の高いトレードは不可能であることが証明されています。
MQL5 クックブック:単一ウィンドウでのマルチ タイム フレームのモニター
MQL5 クックブック:単一ウィンドウでのマルチ タイム フレームのモニター

MQL5 クックブック:単一ウィンドウでのマルチ タイム フレームのモニター

MetaTrader 5 には解析に利用可能なタイムフレームが21あります。そういったウィンドウでは特別なチャートオブジェクトを利用することができます。既存のチャートにそのチャートオブジェクトを入れ、シンボル、タイムフレーム、その他プロパティを設定することができるのです。本稿ではそのようなチャートグラフィカルオブジェクトの詳細情報を提供します。同時にサブウィンドウにマルチチャートオブジェクトを設定することができるようになるコントロール(ボタン)を持つインディケータを作成します。またチャートオブジェクトは正確にサブウィンドウにフィットし、チャートまたはターミナルのサイズが変更されると自動で調整されます。
エキスパートアドバイザーの資金管理のためのファンクション
エキスパートアドバイザーの資金管理のためのファンクション

エキスパートアドバイザーの資金管理のためのファンクション

トレード戦略の開発は主に市場に入り、そして、出るためのパターンの探索と、ポジションの維持に注目している。もし自動トレーディングのためにあるパターンをルールとして形式化できれば、トレーダーはポジションの量、マージンのサイズを計算する問題に立ち向かい、さらに貸付資金の安全なレベルを維持して自動モードでオープンなポジションを確実にするであろう。この論説では MQL5 言語を用いてこれらの計算を行う簡単な例を構築する
インジケーターへのエントリの解決
インジケーターへのエントリの解決

インジケーターへのエントリの解決

トレーダーにはさまざまな事態が発生します。 多くの場合、勝ちトレードは、負けトレードと照らし合わせながら、戦略を再構成することができます。 どちらの場合でも、既知のインジケーターとトレードを比較します。 この記事では、インジケーターを使ったトレードの比較方法を考察します。
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第14部): 銘柄オブジェクト
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第14部): 銘柄オブジェクト

MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第14部): 銘柄オブジェクト

本稿では、銘柄コレクションを作成するための基本オブジェクトとなる銘柄オブジェクトクラスを作成します。このクラスによって、さらなる分析と比較に必要な銘柄のデータを取得できるようになります。
拡散と収束の自動探索
拡散と収束の自動探索

拡散と収束の自動探索

本稿では、シンプル、隠れ、拡張、トリプル、クワドラプル、収束のあらゆる種類の拡散、またA、B、Cクラスの拡散を考察し、それらをチャート上で検索及び表示するためのユニバーサル指標が開発されます。
市場とそのグローバルパターンの物理学
市場とそのグローバルパターンの物理学

市場とそのグローバルパターンの物理学

本稿では、市場を少しでも理解してるシステムはどれでも世界規模で運用できるという前提を試してみます。理論やパターンは発明せずに既知の事実のみを使用し、これらの事実を徐々に数学的分析の言語に翻訳していきます。
ディナポリ取引システム
ディナポリ取引システム

ディナポリ取引システム

本稿では、ジョー・ディナポリによって開発されたフィボレベルベースの取引システムについて説明します。システムの背後にあるアイデアと主なコンセプトが説明され、それらをさらに明確にする、シンプルな指標が例として示されます。
OpenCL:パラレルワールドへの橋渡し
OpenCL:パラレルワールドへの橋渡し

OpenCL:パラレルワールドへの橋渡し

2012年1月下旬、MetaTrader 5の開発を支援するソフトウェア開発企業はMQL5でのOpenCLのネイティブサポートを発表しました。本稿では解説例を用いてMQL5 環境におけるOpenCL のプログラミング基礎を記述し、処理スピードを上げるプログラムのシンプルな最適化例を提供します。
トレーダーの為の正規表現
トレーダーの為の正規表現

トレーダーの為の正規表現

正規表現(英語ではregular expressions) とは、正規表現のパターンやマスクと呼ばれる指定されたルールに従ったテキストを処理する為の特別な言語です。この記事では、MQL5のRegularExpressionsライブラリを使用した取引レポートの処理をご紹介し、それを使った最適化結果をデモンストレーションします。
DoEasyライブラリの時系列(第41部): 複数銘柄・複数期間指標の例
DoEasyライブラリの時系列(第41部): 複数銘柄・複数期間指標の例

DoEasyライブラリの時系列(第41部): 複数銘柄・複数期間指標の例

本稿では、DoEasyライブラリの時系列クラスを使用して、選択された時間枠で選択された通貨ペアのチャートをサブウィンドウでローソク足として表示する複数銘柄・複数期間指標の例を検討します。ライブラリクラスを少し変更し、プログラム入力の列挙を格納してコンパイル言語を選択するための別のファイルを作成します。
指定されたマジックナンバーによるトータルポジションボリューム計算のための最適化された手法
指定されたマジックナンバーによるトータルポジションボリューム計算のための最適化された手法

指定されたマジックナンバーによるトータルポジションボリューム計算のための最適化された手法

本稿では指定されたシンボルのトータルポジションボリューム計算とマジックナンバーに関する問題について考察します。提案する手法では取引履歴の最小限を要求し、トータルポジションがゼロに最も近い時刻を見つけ、最近の取引についての計算を行います。クライアント端末のグローバル変数による作業も考察します。
シグナルのクイック評価:トレーディング、ドローダウン/ロードとMFE/ MAE配信チャート
シグナルのクイック評価:トレーディング、ドローダウン/ロードとMFE/ MAE配信チャート

シグナルのクイック評価:トレーディング、ドローダウン/ロードとMFE/ MAE配信チャート

購読者は、多くの場合、シグナルプロバイダーのアカウントの総成長を分析することによって、適切なシグナルを検索します。しかし、特定のトレード戦略の潜在的なリスクを分析することも重要です。この記事では、その性能に基づいてトレードシグナルを評価するための簡単かつ効率的な方法を紹介します。
MQL5ウィザード:トレーディングシグナル用モジュール作成方法
MQL5ウィザード:トレーディングシグナル用モジュール作成方法

MQL5ウィザード:トレーディングシグナル用モジュール作成方法

この記事は、価格のクロスオーバーと移動平均に関するシグナルの実行とともに、トレーディングシグナルクラスの記述方法、 MQL5ウィザードのトレーディングストラテジー生成プログラムへの挿入方法、MQL5ウィザードにおいて生成されるクラスの記述フォーマットやストラクチャーについて紹介します。
グラフィカルインタフェース I: ライブラリストラクチャの準備(チャプター 1)
グラフィカルインタフェース I: ライブラリストラクチャの準備(チャプター 1)

グラフィカルインタフェース I: ライブラリストラクチャの準備(チャプター 1)

本稿は、グラフィカルインタフェースの開発に関するあと一つのシリーズの始まりです。現在、MQLアプリケーション内で高品質なグラフィカルインタフェースを迅速かつ簡単に作成できるよコードライブラリは1つもありません。ここで、グラフィカルインタフェースとは私たちになじみ深いオペレーティングシステムで使用されるグラフィカルインタフェースを意味します。
トレンドの長さは?
トレンドの長さは?

トレンドの長さは?

本稿では、フラット(不活発な市場)に対したトレンドの期間を特定することを目的としたいくつかのトレンド識別法を紹介します。理論的には、トレンドとフラットの比率は30〜70%と考えられます。これを確認していきます。
preview
時間の取扱い(第1部):基本

時間の取扱い(第1部):基本

時間の処理、証券会社のオフセット、夏時間または冬時間への変更を簡素化および明確化する関数とコードスニペット。正確なタイミングは取引において重要な要素になることがあります。現在時刻でロンドンやニューヨークの証券取引所がすでに開いているかまだ開いていないか、外国為替取引の取引時間はいつ開始および終了するかなどです。手動で取引して生活しているトレーダーにとって、これは大きな問題ではありません。
標準ライブラリのトレーディングストラテジークラスの探求- ストラテジーのカスタマイズ
標準ライブラリのトレーディングストラテジークラスの探求- ストラテジーのカスタマイズ

標準ライブラリのトレーディングストラテジークラスの探求- ストラテジーのカスタマイズ

この記事では、トレーディングストラテジークラスの標準ライブラリをどのように探求していくか、そして、カスタムストラテジーやフィルター/シグナルをMQL5ウィザードのパターン・モデルロジックを用いてどのように追加するかについて紹介したいと思います。最終的に、MetaTrader5の標準インジケーターを用いて独自の戦略を追加できるようになり、MQL5ウィザードがシンプルで強力なコードや、機能的なエキスパートアドバイザーを作成できるようになります。
プライスヒストグラム(マーケット特性)とMQL5への導入
プライスヒストグラム(マーケット特性)とMQL5への導入

プライスヒストグラム(マーケット特性)とMQL5への導入

「マーケットプロファイル」は非常に優秀な思索家、 ピーター・スタイドルマイヤー氏によって展開されました。氏は全く異なるモデルセットに導く『水平的な』また『垂直的な』マーケットの動きに関する情報の別の解釈の仕方を提案しました。潜在するマーケットの拍動、または均衡と不均衡の周期と呼ばれる基本パターンがある、と仮定したのです。本記事では、プライスヒストグラムについて考察していきたいと思います。それは、マーケットプロファイルの最も単純なモデルです。また、その MQL5への導入について述べていきたいと思います。
時系列の予測(第1部):経験的分解モード(EMD)法
時系列の予測(第1部):経験的分解モード(EMD)法

時系列の予測(第1部):経験的分解モード(EMD)法

この記事では、経験的分解モードに基づいて時系列を予測するアルゴリズムの理論と実際の使用法について説明します。また、このメソッドのMQL実装を提案し、テスト指標とエキスパートアドバイザーを提示します。
MetaTrader5のカスタムウォークフォワード最適化
MetaTrader5のカスタムウォークフォワード最適化

MetaTrader5のカスタムウォークフォワード最適化

この記事では、MQL で実装された組み込みのテスターおよび補助ライブラリを使用して、ウォークフォワード最適化による正確なシミュレーションを扱います。
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第25部): 取引サーバから返されたエラーの処理
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第25部): 取引サーバから返されたエラーの処理

MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第25部): 取引サーバから返されたエラーの処理

サーバに取引注文を送信した後は、エラーコードやエラーがないことを確認する必要があります。本稿では、取引サーバによって返されるエラーの処理について考察し、未決取引リクエストを作成する準備をします。
MQL5 クックブック:Position プロパティの取得
MQL5 クックブック:Position プロパティの取得

MQL5 クックブック:Position プロパティの取得

本稿では position プロパティをすべて取得しユーザーに対してダイアログボックスにそれを表示するスクリプトを作成します。スクリプト実行時外部パラメータのドロップダウンリストから利用可能なモード2種類から選択することができます。現在シンボルの position プロパティのみ閲覧するかすべてのシンボルの position プロパティを閲覧するかです。
Expert Advisors最適化のカスタム基準作成
Expert Advisors最適化のカスタム基準作成

Expert Advisors最適化のカスタム基準作成

MetaTrader 5 クライアント端末は Expert Advisor パラメータを最適化する幅広い機会を提供します。またストラレジーテスタに含まれる最適化評価基準に対して、開発者には自身の基準を作成するチャンスが与えられています。これは Expert Advisorsを検証し最適化する数えきれない可能性に導きます。本稿ではそのような基準を、複雑なもの単純なもの双方、作成する実践的方法について記述します。
Growing Neural Gas: MQL5への実装
Growing Neural Gas: MQL5への実装

Growing Neural Gas: MQL5への実装

本稿では、Growing neural gas (GNG)と呼ばれるクラスタの適用アルゴリズを実装するムMQL5プログラム開発方法をお見せしていきます。本稿は言語ドキュメンテーションを学習し、一定のプログラミングスキルがあり、神経情報科学分野の基礎知識がある方を対象としています。
3つのラインブレイクチャートを作成するためのインディケータ
3つのラインブレイクチャートを作成するためのインディケータ

3つのラインブレイクチャートを作成するためのインディケータ

本稿は Steve Nison 氏が著書 "Beyond Candlesticks" で提案している「3つのラインブレークチャート」について取り上げます。このチャートの最大のメリットはそれにより前の変動に関して価格のマイナー変動にフィルターを描けることができることです。チャート作成の原則、インディケータのコード、それに基づくトレーディング戦略例についてお話していこうと思います。
preview
MQL5を使った線の扱い方

MQL5を使った線の扱い方

今回は、MQL5によるトレンドラインや支持線と抵抗線といった、最も重要な線の扱い方についてご紹介します。
インディケーターを別のインディケーターに適用
インディケーターを別のインディケーターに適用

インディケーターを別のインディケーターに適用

OnCalculate() 関数呼び出しショートフォームのインディケーターを書くとき、インディケーターが価格データだけでなく、他のインディケーターデータによっても計算できる事実を見逃すかもしれません。 (内蔵またはカスタムのインディケーターにかかわらず)。他のインディケーターデータに正しく適用するためにインディケーターを改善したいですか?本記事ではそのような修正に必要なステップを復習します。
ウェブからの債券利回りデータのスクレイピング
ウェブからの債券利回りデータのスクレイピング

ウェブからの債券利回りデータのスクレイピング

EAのパフォーマンスを向上させるために、金利データの収集を自動化します。
ユニバーサル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.
ローソク足分析技術の研究(第1部): 既存パターンの確認
ローソク足分析技術の研究(第1部): 既存パターンの確認

ローソク足分析技術の研究(第1部): 既存パターンの確認

本稿では、よくあるローソク足のパターンを考察し、それが今日の市場で依然として適切で効果的であるかどうかの理解を試みます。ローソク足分析は20年以上前に登場し、それ以来かなり普及しています。日本発祥のローソク足は、多くのトレーダーによって、最も便利で分かりやすい資産価格の視覚化形式だと考えられています。
MQL5 コードの保護:パスワード保護、キージェネレータ、時間制限、リモートライセンス、高度 EA ライセンスキー暗号化技術
MQL5 コードの保護:パスワード保護、キージェネレータ、時間制限、リモートライセンス、高度 EA ライセンスキー暗号化技術

MQL5 コードの保護:パスワード保護、キージェネレータ、時間制限、リモートライセンス、高度 EA ライセンスキー暗号化技術

開発者のほとんどは自分の書いたコードの保護を必要としています。本稿は MQL5 ソフトウェアを保護するいくつかの異なる方法を紹介します。 - MQL5 スクリプト、Expert Advisors、インディケータに対しライセンス機能を提供する手法を紹介します。パスワード保護、キージェネレータ、アカウントライセンス、時間制限判定、MQL5-RPC 呼び出しを使用するリモート保護も取り上げます。
ベイズ分類器及び特異スペクトル解析法に基づく指標を用いた市場動向の予測
ベイズ分類器及び特異スペクトル解析法に基づく指標を用いた市場動向の予測

ベイズ分類器及び特異スペクトル解析法に基づく指標を用いた市場動向の予測

本稿では、ベイズの定理に基づいた特異スペクトル解析(SSA)と重要な機械学習法の予測機能を組み合わせて、時間効率の良い取引のための推奨システムを構築するというイデオロギーと方法論について検討します。
preview
自動取引のための便利でエキゾチックな技術

自動取引のための便利でエキゾチックな技術

本稿では、自動取引のためのいくつかの非常に興味深く有用な技術を紹介します。それらのいくつかには馴染みがあるかもしれません。最も興味深い手法を取り上げ、なぜ使用する価値があるのかを説明します。さらに、これらの技術の実際面での傾向を示します。エキスパートアドバイザーを作成し、説明されているすべての技術を相場履歴を使用してテストします。
MQL5 と MQL4 でのシンボル選択とナビゲーションユーティリティの開発
MQL5 と MQL4 でのシンボル選択とナビゲーションユーティリティの開発

MQL5 と MQL4 でのシンボル選択とナビゲーションユーティリティの開発

経験豊富なトレーダーが認識している事実として、トレードにおいて最も時間のかかるものはポジションを開いたり追跡したりするのではなく、シンボルを選択してインプットポイントを探すことというものがあります。 この記事では、ブローカーが提供するトレード商品のインプットポイントの検索を簡素化するEAを開発します。
preview
可視化の可能性 Rのプロットに似たMQL5のグラフィックス ライブラリ

可視化の可能性 Rのプロットに似たMQL5のグラフィックス ライブラリ

トレードロジックを勉強する際、チャートの視覚的な表現は非常に重要です。科学分野で人気のある数々のプログラミング言語 (R や Python など) は可視化のための関数”プロット”があります。これらは視覚化するために、線、点の分布、ヒストグラムなどを描くことができます。MQL5でも、CGraphics クラスを使用して、同じことができます。
の処理 トレードイベント in Expert Advisor を使って OnTrade() 関数
の処理 トレードイベント in Expert Advisor を使って OnTrade() 関数

の処理 トレードイベント in Expert Advisor を使って OnTrade() 関数

MQL5は様々なタイプのイベント (タイマーイベント、トレードイベント、カスタムイベントなど)を含め、非常に多くの革新をもたらしました。イベントを取り扱う性能で全く新しいタイプの自動・準自動の売買プログラムを作成できます。本記事ではトレードイベントを考え、トレードイベントを処理するOnTrade() 関数のコードを書きます。