MQL5プログラミング記事

icon

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

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

新しい記事を追加
最新 | ベスト
通貨ペアパターンのテスト: 実用的なアプリケーションと実際のトレードの視点 第4部
通貨ペアパターンのテスト: 実用的なアプリケーションと実際のトレードの視点 第4部

通貨ペアパターンのテスト: 実用的なアプリケーションと実際のトレードの視点 第4部

この記事では、トレーディング通貨ペアバスケットのシリーズに結論付けを行います。 ここでは、残りのパターンをテストし、実際のトレードでの適用について説明します。 相場におけるエントリーと決済、パターンを分析し、複合インジケータの使用を考察します。
preview
トレーディングにおけるニューラルネットワークの実用化。 Python (パートI)

トレーディングにおけるニューラルネットワークの実用化。 Python (パートI)

今回は、Pythonによるディープニューラルネットワークのプログラミングに基づいたトレードシステムの実装を一つ一つ分析します。 Googleが開発した機械学習ライブラリ「TensorFlow」を使って行います。 また、ニューラルネットワークの記述にはKerasライブラリを使用します。
DIY マルチスレッド非同期 MQL5 WebRequest
DIY マルチスレッド非同期 MQL5 WebRequest

DIY マルチスレッド非同期 MQL5 WebRequest

この記事では、MQL5 での HTTPリクエストの処理効率を高めることができるライブラリについて説明します。 非ブロッキングモードでの WebRequest の実行は、補助チャートとEAを使用してカスタムイベントを交換し、共有リソースを読み取る追加のスレッドで実装されます。 ソースコードも同様に適用されます。
クロスプラットフォームEA: カスタムストップ、ブレイクイーブン、トレーリング
クロスプラットフォームEA: カスタムストップ、ブレイクイーブン、トレーリング

クロスプラットフォームEA: カスタムストップ、ブレイクイーブン、トレーリング

この記事では、クロスプラットフォームEAでのカスタムストップレベルの設定方法について説明します。 また、時間の経過とともにストップレベルを設定するメソッドについても説明します。
グラフィカルインタフェースIX:プログレスバーと折れ線グラフコントロール(チャプター2)
グラフィカルインタフェースIX:プログレスバーと折れ線グラフコントロール(チャプター2)

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

第九部の第2章はプログレスバーと折れ線グラフに専念されます。いつものように、これらのコントロールがカスタムMQLアプリケーションでどのように使用できるかを明らかにする詳細な実施例が存在します。
クロスプラットフォームEA:MQL5標準ライブラリからコンポーネントの再利用
クロスプラットフォームEA:MQL5標準ライブラリからコンポーネントの再利用

クロスプラットフォームEA:MQL5標準ライブラリからコンポーネントの再利用

クロスプラットフォームEAはMQL4に有用であり、MQL5標準ライブラリ内に一部コンポーネントが存在します。 この記事では、MQL4コンパイラと互換性のあるMQL5標準ライブラリの特定コンポーネントを作るメソッドを取り扱います。
スプレッドシートを使ってトレード戦略を構築する
スプレッドシートを使ってトレード戦略を構築する

スプレッドシートを使ってトレード戦略を構築する

この記事では、スプレッドシート(Excel、Calc、Google)を使ってあらゆる戦略を分析できるようにするための基本的な考え方や方法を解説します。 得られた結果をMetaTrader5のテスターと比較します。
ピボット平均オシレータの開発:累積移動平均の新規インジケータ
ピボット平均オシレータの開発:累積移動平均の新規インジケータ

ピボット平均オシレータの開発:累積移動平均の新規インジケータ

この記事では、MetaTraderプラットフォームのトレードインジケータとして累積移動平均(CMA)であるピボット平均オシレータ(PMO)を紹介します。 特に、データポイントとCMAの間の分数を計算する時系列の正規化インデックスとしてピボット平均(PM)を導入しました。 次に、2つのPMシグナルに適用される移動平均の差としてPMOを構築します。 提案されたインジケータの有効性をテストするためにEURUSDシンボルで行われた予備的な実験も行いましたが、さらなる検討と改善の余地があります。
GUIによる汎用的なオシレーター
GUIによる汎用的なオシレーター

GUIによる汎用的なオシレーター

この記事では、独自のグラフィカルインターフェイスを使用して、よくあるオシレーターに基づく汎用的なインジケータの作成プロセスについて説明します。GUIは、ユーザーが迅速かつ容易に、グラフ ・ ウィンドウから (開くことがなくそのプロパティ)、各オシレーターの設定を直接変更するとでき、特定のタスクに最適なオプションを選択することができます。
preview
移動平均でできること

移動平均でできること

この記事では、移動平均指標を適用するいくつかの方法について考察しています。曲線分析が含まれるそれぞれの方法には、アイデアを視覚化する指標が付属しています。ほとんどの場合、ここで紹介されているアイデアは、その尊敬すべき著者に帰属しています。私の唯一の仕事は、それらをまとめて、主要なアプローチを確認し、うまくいけば、より合理的な取引決定を下せるようにすることでした。この記事は、MQL5の初心者向けです。
ミクロ、ミドル、メイントレンドのインディケータ
ミクロ、ミドル、メイントレンドのインディケータ

ミクロ、ミドル、メイントレンドのインディケータ

本稿は James Hyerczyk著 "Pattern, Price & Time: Using Gann Theory in Trading Systems" から得たいくらかの考え方を基にインディケータやExpert Advisor形式でトレードの自動化可能性調査と分析を目的とします。完全にとは言わず、ここではモデル、すなわちギャン理論の最初の部分だけを対象とします。
preview
MQL4およびMQL5開発のフレームワーク内のOpenAI ChatGPT機能

MQL4およびMQL5開発のフレームワーク内のOpenAI ChatGPT機能

この記事では、エキスパートアドバイザー(EA)、指標、スクリプトの開発にかかる時間と労力を削減するという観点から、OpenAI ChatGPTの機能を理解するために、ChatGPTをいじっていきます。このテクノロジーについて簡単に説明し、MQL4およびMQL5でのプログラミングにこのテクノロジーを正しく使用する方法を説明します。
重回帰分析ストラテジージェネレータ兼ストラテジーテスタ
重回帰分析ストラテジージェネレータ兼ストラテジーテスタ

重回帰分析ストラテジージェネレータ兼ストラテジーテスタ

本稿ではトレーディングシステム開発のために重回帰分析を利用する方法を述べます。戦略検索自動化のための回帰分析の利用法を示します。例としてプログラミングに高い技能を要求せず作成され統合される回帰式を提供します。
ポイントおよびグラフチャート化インディケータ
ポイントおよびグラフチャート化インディケータ

ポイントおよびグラフチャート化インディケータ

現在マーケットの状況に関する情報を提供するチャートは数多くあります。「ポイント」や「グラフ」チャートのようにそれらの多くは遠い過去の遺産です。本稿は実時間のインディケータを用いて「ポイントとグラフ」チャート例について述べます。
preview
ニューラルネットワークが簡単に(第10回): Multi-Head Attention

ニューラルネットワークが簡単に(第10回): Multi-Head Attention

ニューラルネットワークにおける自己注意のメカニズムについては、以前に検討しました。実際には、最新のニューラルネットワークアーキテクチャは、いくつかの並列した自己注意スレッドを使用して、シーケンスの要素間のさまざまな依存関係を見つけます。このようなアプローチの実装を検討し、ネットワーク全体のパフォーマンスへの影響を評価しましょう。
Expert Advisorの限界と検証
Expert Advisorの限界と検証

Expert Advisorの限界と検証

このシンボルは月曜ににトレードできる? ポジションをオープンするのに必要なお金が十分ある? ストップロスが起こった時ロスの大きさは? ペンディングオーダーの数を制限するには? トレード操作が実行されたのは現在のバーそれとも以前のバー? トレードロボットがこの種の検証をできない場合、どんなトレードストラテジーも負け戦略になる可能性があります。本記事はどんなExpert Advisorにおいても便利な検証例を紹介します。
マルチモジュールEAの作成
マルチモジュールEAの作成

マルチモジュールEAの作成

MQLプログラミング言語によって、取引戦略のモジュール設計の概念を実装することができます。この記事では、別々にコンパイルされたファイルモジュールからなるマルチモジュールEAの作成例をご紹介します。
preview
MQL5を使ったシンプルな多通貨エキスパートアドバイザーの作り方(第1回):ADXとパラボリックSARの組み合わせによる指標シグナル

MQL5を使ったシンプルな多通貨エキスパートアドバイザーの作り方(第1回):ADXとパラボリックSARの組み合わせによる指標シグナル

この記事で紹介する多通貨エキスパートアドバイザー(EA)は、1つの銘柄チャートから複数の銘柄ペアの取引(新規注文、決済注文、注文の管理など)を行うことができるEA(自動売買ロボット)です。
取引き履歴に基づくトレーディングのプレーヤー
取引き履歴に基づくトレーディングのプレーヤー

取引き履歴に基づくトレーディングのプレーヤー

トレーディングのプレーヤーたったこれだけの短い言葉です。説明は必要ありませんね。ボタンのある小さな箱が心に浮かびます。ボタンを1つ押すと再現します。レバーを動かすと再現スピードが変化します。それとても似ています。本稿では、ほとんどリアルタイムでトレード履歴を再現するプログラムを紹介したいと思います。本稿はOOPの意味、インディケータとの連携、チャート管理についてもいくらか取り上げます。
ディープニューラルネットワーク(その5)DNNハイパーパラメータのベイズ最適化
ディープニューラルネットワーク(その5)DNNハイパーパラメータのベイズ最適化

ディープニューラルネットワーク(その5)DNNハイパーパラメータのベイズ最適化

本稿では、様々な訓練の変形によって得られたディープニューラルネットワークのハイパーパラメータにベイズ最適化を適用する可能性について検討します。様々な訓練の変形における最適なハイパーパラメータを有するDNNの分類の質が比較されます。DNN最適ハイパーパラメータの有効性の深さは、フォワードテストで確認されています。分類の質を向上させるための方向性が特定されています。
MеtaTrader 5 チャート上の水平図
MеtaTrader 5 チャート上の水平図

MеtaTrader 5 チャート上の水平図

水平方向の図は、ターミナルのチャート上で一般的ではありませんが、使用することができます。例えば、特定の期間のボリュームや価格分布を表示するインジケータを開発するとき、様々なマーケットデプスのバージョンを作成するときなどです。 この記事では、グラフィカルなプリミティブの配列としての水平ダイアグラムの構築と管理を検討します。
MQL5 ウィザードの NRTR に基づく NRTR インジケーターとトレーディングモジュール
MQL5 ウィザードの NRTR に基づく NRTR インジケーターとトレーディングモジュール

MQL5 ウィザードの NRTR に基づく NRTR インジケーターとトレーディングモジュール

この記事では、NRTR インジケーターを分析し、このインジケーターに基づいてトレードシステムを作成します。 追加のトレンド確認インジケーターと NRTR の組み合わせに基づいて戦略を作成する際に使用することができるトレードシグナルのモジュールを開発します。
取引における相関の実用化
取引における相関の実用化

取引における相関の実用化

この記事では、数値の相関の概念について説明し、また相関係数の計算方法と取引における実用的な応用について説明します。相関関係とは、2つ以上の確率変数(またはある程度許容できる程度の精度でそのように考えることができる数量)間の統計的関係です。この時、これらの値の1つまたはいくつかの値の変化は、別または他の値の系統的な変化を伴います。
preview
初心者からプロまでMQL5をマスターする(第1回):プログラミングを始める

初心者からプロまでMQL5をマスターする(第1回):プログラミングを始める

この記事は、プログラミングに関する連載の紹介です。読者がこれまでプログラミングを扱ったことがないことを前提としているため、この連載は基礎から始まります。プログラミング知識レベル:全くの初心者。
ジグザグの力(第二部)データの受け取り、処理、表示の例
ジグザグの力(第二部)データの受け取り、処理、表示の例

ジグザグの力(第二部)データの受け取り、処理、表示の例

本稿の最初の部分では、変更されたジグザグ指標と、そのタイプの指標のデータを受け取るためのクラスについて説明しました。ここでは、これらのツールに基づいて指標を開発する方法を示し、ジグザグ指標によって形成されたシグナルに従って取引を行うことを特徴とするテスト用のEAを作成します。さらに、本稿ではグラフィカルユーザインタフェースを開発するためのEasyAndFastライブラリの新しいバージョンを紹介します。
MetaTrader 5とMATLABの連携
MetaTrader 5とMATLABの連携

MetaTrader 5とMATLABの連携

本稿はMetaTrader 5とMatLab数学的パッケージの連携について詳しく述べていきます。それは、データ変換のメカニズム、デスクトップMatLabとの連携のためのユニバーサルライブラリの開発手順をさします。またMatLab環境で生成されるDLLの使用についても述べていきます。本稿は C++ 言語とMQL5をご存じの経験者を対象としています。
MQL5で3Dモデリング
MQL5で3Dモデリング

MQL5で3Dモデリング

時系列は、動的なシステムであり、確率変数の値が継続的または連続に等間隔で受信されます。市場分析の2Dから3Dへの移行は、複雑なプロセスと研究オブジェクトにおいて、新たな展望を与えます。この記事では、2次元データの3D表現をする可視化手法について説明します。3Dモデリングは、複雑なプロセスや現象を分析し、その結果を予測できます。
MetaTrader 5での複数銘柄残高グラフ
MetaTrader 5での複数銘柄残高グラフ

MetaTrader 5での複数銘柄残高グラフ

本稿では、グラフィカルインターフェイスに最後のテスト結果に基づいた複数銘柄の残高グラフと預金損失率グラフを備えたMQLアプリケーションの例を示します。
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第24部): 未決取引リクエストの使用 - リクエストオブジェクトクラス
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第24部): 未決取引リクエストの使用 - リクエストオブジェクトクラス

MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第24部): 未決取引リクエストの使用 - リクエストオブジェクトクラス

前の記事では、保留中取引リクエストの概念を確認しました。保留中リクエストは、実際には、特定の条件によって実行される一般的な取引注文です。本稿では、保留中リクエストオブジェクトの完全なクラス(基本リクエストオブジェクトとその子孫)を作成します。
MQL5ウィザード:新バージョン
MQL5ウィザード:新バージョン

MQL5ウィザード:新バージョン

本稿では、最新のMQL5ウィザードで利用できる新しい特徴について述べます。シグナルのアーキテクチャが変更され、さまざまなマーケットパターンにもどつくトレーディングロボットを作成することができるようになっています。本稿に含まれる例では、エキスパートアドバイザのインタラクティブな作成手順を説明しています。
MQL5を使用した整列法とその可視化
MQL5を使用した整列法とその可視化

MQL5を使用した整列法とその可視化

Graphic.mqhライブラリは、MQL5のグラフィックスで動作するように設計されています。本稿では、実用的なアプリケーションの例を示し、ソートの概念について説明します。ソートタイプには既に少なくとも1つの別個の記事が書かれておりソートタイプのいくつかは詳細な調査の対象なので、ここではソートの一般的な概念が説明されます。
トレーダーのハック: 定義と ForEach のブレンド (#define)
トレーダーのハック: 定義と ForEach のブレンド (#define)

トレーダーのハック: 定義と ForEach のブレンド (#define)

この記事は、現在MQL4でコーディングしていて、MQL5に切り替えたいとは思っていない人のためのものです。 今回はMQL4のスタイルでコードを書く方法を模索していきます。 #define プリプロセッサのマクロ置換を見ていきます。
ローソク足分析技術の研究(第2部): 新規パターンの自動検索
ローソク足分析技術の研究(第2部): 新規パターンの自動検索

ローソク足分析技術の研究(第2部): 新規パターンの自動検索

前回の記事では、さまざまな既存のローソク足の形成から選択された14のパターンを分析しました。すべてのパターンを1つずつ分析することは不可能であるため、別の解決策を見つけました。新しいシステムは、既知のローソク足タイプに基づいて新しいローソク足パターンを検索してテストします。
最適化管理 (パート I): GUI の作成
最適化管理 (パート I): GUI の作成

最適化管理 (パート I): GUI の作成

この記事では、MetaTrader ターミナルの拡張機能を作成するプロセスについて説明します。 このソリューションは、他のターミナルで最適化を実行する際、最適化プロセスを自動化するのに役立ちます。 このトピックに関する記事をいくつか書きます。 拡張機能は C# 言語とデザイン パターンを使用して開発されました。優先プログラミング言語の機能です。
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第28部): 未決取引リクエスト - 特定の条件下でのポジションの決済
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第28部): 未決取引リクエスト - 特定の条件下でのポジションの決済

MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第28部): 未決取引リクエスト - 特定の条件下でのポジションの決済

保留中リクエストを使用した取引を特徴とするライブラリ機能の開発を継続します。ポジションを開き、未決注文を出すための条件付き取引リクエストの送信をすでに実装しています。現在の記事では、条件付きのポジション決済(完全決済、部分決済、反対ポジションによる決済)を実装します。
EX5 ライブラリ使用による開発プロジェクトの促進
EX5 ライブラリ使用による開発プロジェクトの促進

EX5 ライブラリ使用による開発プロジェクトの促進

.ex5 ファイルにクラス/関数の実装詳細を非表示にすることでノウハウアルゴリズムを他の開発者と共有し、共通のプロジェクトを設定し、ウェブ上でそれらを進めていくことができるようになります。そして MetaQuotes チームが ex5 ライブラリクラスの直接継承機能を実現することに全力を傾ける一方で、われわれはそれをいますぐ実装していこうとしているのです。
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第4部)MQL4との互換性 - ポジション決済イベント
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第4部)MQL4との互換性 - ポジション決済イベント

MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第4部)MQL4との互換性 - ポジション決済イベント

MetaTrader 5およびMetaTrader 4プラットフォーム用のプログラムの開発を簡素化する大規模なクロスプラットフォームライブラリの開発を継続します。第10部では、MQL4とのライブラリの互換性に関する作業を再開し、ポジションを開くイベントと未決注文の発動イベントを定義しました。本稿では、ポジション決済イベントを定義し、未使用の注文プロパティを取り除きます。
初心者のためのMQL5:グラフィックオブジェクトのアンチバンダルプロテクト
初心者のためのMQL5:グラフィックオブジェクトのアンチバンダルプロテクト

初心者のためのMQL5:グラフィックオブジェクトのアンチバンダルプロテクト

グラフィックコントロールパネルが削除されたり、他の誰かによって変更されている場合、プログラムに対し、何をすべきか?この記事では、チャート上の「オーナーレス」オブジェクトを処理します。アプリケーションが削除された後に、プログラムで作成されたオブジェクトが残っている場合の処理を行います。
クロスプラットフォームEA:序章
クロスプラットフォームEA:序章

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

この記事では、クロスプラットフォームのEAを容易に開発できるメソッドを詳述します。提案メソッドは、両方のバージョンによって共有関数を統合し、互換性のない関数の派生クラスを分割します。
William Blauの指数MQL5におけるトレーディングシステムパート 1:インディケータ
William Blauの指数MQL5におけるトレーディングシステムパート 1:インディケータ

William Blauの指数MQL5におけるトレーディングシステムパート 1:インディケータ

本稿はWilliam Blau著"Momentum, Direction, and Divergence"に述べられるインディケータを紹介します。William Blau氏の手法により迅速に正確に価格曲線の変動を概算し、価格変動の傾向と変換点を判断し、価格ノイズを除去することができるようになりました。一方でまた、トレンドの終了と価格変動の逆転を示しながらマーケットの買いすぎ/売りすぎ状態、シグナルを検出することができます。