MQL4とMQL5のプログラム記事

icon

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

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

新しい記事を追加
最新 | ベスト
preview
プログラミングパラダイムについて(第2部):オブジェクト指向アプローチによるプライスアクションエキスパートアドバイザーの開発

プログラミングパラダイムについて(第2部):オブジェクト指向アプローチによるプライスアクションエキスパートアドバイザーの開発

オブジェクト指向プログラミングのパラダイムとMQL5コードへの応用について学びます。この第2回目の記事では、オブジェクト指向プログラミングの具体的な内容をより深く掘り下げ、実践的な例を通して実体験を提供します。EMA指標とローソク足価格データを使用した、手続き型プライスアクションエキスパートアドバイザー(EA)をオブジェクト指向コードに変換する方法を学びます。
preview
出来高による取引の洞察:トレンドの確認

出来高による取引の洞察:トレンドの確認

強化型トレンド確認手法は、プライスアクション、出来高分析、そして機械学習を組み合わせることで、真の市場動向を見極めることを目的としています。この手法では、取引を検証するために、価格のブレイクアウトと平均比50%以上の出来高急増という2つの条件を満たす必要があります。さらに、追加の確認手段としてLSTMニューラルネットワークを活用します。システムはATR (Average True Range)に基づいたポジションサイズ設定と動的リスク管理を採用しており、誤ったシグナルを排除しつつ、多様な市場環境に柔軟に対応できる設計となっています。
preview
母集団最適化アルゴリズム:モンキーアルゴリズム(MA)

母集団最適化アルゴリズム:モンキーアルゴリズム(MA)

今回は、最適化アルゴリズムであるモンキーアルゴリズム(MA、Monkey Algorithm)について考えてみたいと思います。この動物が難関を乗り越え、最もアクセスしにくい木のてっぺんまで到達する能力が、MAアルゴリズムのアイデアの基礎となりました。
母集団最適化アルゴリズム
母集団最適化アルゴリズム

母集団最適化アルゴリズム

最適化アルゴリズム(OA)の分類についての入門記事です。この記事では、OAを比較するためのテストスタンド(関数群)を作成し、広く知られたアルゴリズムの中から最も普遍的なものを特定することを試みています。
preview
MQL5のパラボリックSARトレンド戦略による取引戦略の自動化:効果的なEAの作成

MQL5のパラボリックSARトレンド戦略による取引戦略の自動化:効果的なEAの作成

この記事では、MQL5を使用してパラボリックSAR戦略を基にした取引戦略を自動化する方法について説明します。効果的なエキスパートアドバイザー(EA)を創り出します。このEAは、パラボリックSAR指標によって識別されたトレンドに基づいて取引を実行します。
preview
リプレイシステムの開発—市場シミュレーション(第6回):最初の改善(I)

リプレイシステムの開発—市場シミュレーション(第6回):最初の改善(I)

この記事では、システム全体の安定化を開始します。安定化がなければ次のステップに進むことができない可能性があります。
preview
DoEasy - コントロール(第6部):パネルコントロール、内部コンテンツに合わせたコンテナサイズの自動変更

DoEasy - コントロール(第6部):パネルコントロール、内部コンテンツに合わせたコンテナサイズの自動変更

本稿では、Panel WinFormsオブジェクトの作業を続け、パネル内にあるDockオブジェクトの一般的なサイズに合わせた自動サイズ変更を実装します。さらに、銘柄ライブラリオブジェクトに新しいプロパティを追加します。
preview
どんな市場でも優位性を得る方法(第5回):FRED EURUSD代替データ

どんな市場でも優位性を得る方法(第5回):FRED EURUSD代替データ

本日の議論では、セントルイス連邦準備銀行の広義のドル指数に関する代替日次データとその他のマクロ経済指標の集合を使用して、EURUSDの将来の為替レートを予測しました。残念ながら、データはほぼ完璧な相関関係にあるように見えますが、モデルの精度において際立った向上は実現できず、投資家は代わりに通常の市場相場を使用した方がよい可能性があることを示唆している可能性があります。
preview
データサイエンスと機械学習(第20回):アルゴリズム取引の洞察、MQL5でのLDAとPCAの対決

データサイエンスと機械学習(第20回):アルゴリズム取引の洞察、MQL5でのLDAとPCAの対決

MQL5取引環境での適用を解剖しながら、これらの強力な次元削減テクニックに隠された秘密を解き明かしていきます。線形判別分析(LDA)と主成分分析(PCA)のニュアンスを深く理解し、戦略開発と市場分析への影響を深く理解します。
preview
プライスアクション分析ツールキットの開発(第1回):チャートプロジェクター

プライスアクション分析ツールキットの開発(第1回):チャートプロジェクター

このプロジェクトは、MQL5アルゴリズムを活用して、MetaTrader 5向けの包括的な分析ツールセットを開発することを目的としています。これらのツールは、スクリプトやインジケーターからAIモデルやエキスパートアドバイザー(EA)に至るまで幅広く、市場分析プロセスの自動化を実現します。場合によっては、これらのツールによって、高度な分析を人間の介入なしで実行し、適切なプラットフォームに結果を予測することも可能になります。どのようなチャンスも逃しません。一緒に強力な市場分析用カスタムツールチェストを構築するプロセスを探求していきましょう。まず、「チャートプロジェクター」と名付けたシンプルなMQL5プログラムを開発することから始めます。
preview
一からの取引エキスパートアドバイザーの開発(第12部):Times and Trade (I)

一からの取引エキスパートアドバイザーの開発(第12部):Times and Trade (I)

今日は、注文の流れを読むために、高速な解釈を持つTimes & Tradeを作成します。これは、システムを構築していくうえで最初の部分です。次回は、足りない情報を補って、システムを完成させる予定です。この新しい機能を実装するために、エキスパートアドバイザー(EA)のコードにいくつかの新しいものを追加する必要があります。
preview
Python、ONNX、MetaTrader 5:RobustScalerとPolynomialFeaturesデータ前処理を使用したRandomForestモデルの作成

Python、ONNX、MetaTrader 5:RobustScalerとPolynomialFeaturesデータ前処理を使用したRandomForestモデルの作成

この記事では、Pythonでランダムフォレストモデルを作成し、モデルを訓練して、データ前処理をおこなったONNXパイプラインとして保存します。その後、MetaTrader 5ターミナルでモデルを使用します。
preview
知っておくべきMQL5ウィザードのテクニック(第37回):線形カーネルとMatérnカーネルによるガウス過程回帰

知っておくべきMQL5ウィザードのテクニック(第37回):線形カーネルとMatérnカーネルによるガウス過程回帰

線形カーネルは、線形回帰やサポートベクターマシンの機械学習で使用される、この種の行列の中で最も単純な行列です。一方、Matérnカーネルは、以前の記事で紹介したRBF (Radial Basis Function)をより汎用的にしたもので、RBFが想定するほど滑らかではない関数をマッピングするのに長けています。売買条件を予測する際に、両方のカーネルを利用するカスタムシグナルクラスを構築します。
preview
一からの取引エキスパートアドバイザーの開発(第15部):Web上のデータにアクセスする(I)

一からの取引エキスパートアドバイザーの開発(第15部):Web上のデータにアクセスする(I)

MetaTrader5ではどのようにオンラインデータにアクセスするのでしょうか。Web上にはたくさんのサイトや場所があり、膨大な量の情報が掲載されています。知るべきことは、どこを調べて、この情報をどのように使用するのが最善かということです。
preview
データサイエンスと機械学習—ニューラルネットワーク(第02回):フィードフォワードNNアーキテクチャの設計

データサイエンスと機械学習—ニューラルネットワーク(第02回):フィードフォワードNNアーキテクチャの設計

フィードフォワード(予測制御)ニューラルネットワークについて説明する前に、少し説明しておくことがあって、設計もその1つです。入力、隠れ層の数、および各ネットワークのノードに対する柔軟なニューラルネットワークを構築および設計する方法を見てみましょう。
DoEasyライブラリのグラフィックス(第73部): グラフィック要素のフォームオブジェクト
DoEasyライブラリのグラフィックス(第73部): グラフィック要素のフォームオブジェクト

DoEasyライブラリのグラフィックス(第73部): グラフィック要素のフォームオブジェクト

本稿からは、ライブラリでのグラフィックの使用に関する新しい大きなセクションを始めます。本稿では、マウスステータスオブジェクト、すべてのグラフィック要素の基本オブジェクト、およびライブラリのグラフィック要素のフォームオブジェクトのクラスを作成します。
preview
一からの取引エキスパートアドバイザーの開発(第24部):システムの堅牢性の提供(I)

一からの取引エキスパートアドバイザーの開発(第24部):システムの堅牢性の提供(I)

この記事では、堅牢で安全な使用を保証するために、システムの信頼性を高めます。望ましい堅牢性を実現する方法の1つは、コードを可能な限り再利用して、常にさまざまな場合にテストされるようにすることです。しかし、これは方法の1つにすぎません。もう1つは、OOPを使用することです。
preview
ニューラルネットワークが簡単に(第28部):方策勾配アルゴリズム

ニューラルネットワークが簡単に(第28部):方策勾配アルゴリズム

強化学習法の研究を続けます。前回は、Deep Q-Learning手法に触れました。この手法では、特定の状況下でとった行動に応じて、これから得られる報酬を予測するようにモデルを訓練します。そして、方策と期待される報酬に応じた行動がとられます。ただし、Q関数を近似的に求めることは必ずしも可能ではありません。その近似が望ましい結果を生み出さないこともあります。このような場合、効用関数ではなく、行動の直接的な方針(戦略)に対して、近似的な手法が適用されます。その1つが方策勾配です。
preview
ニューラルネットワークが簡単に(第34部):FQF(Fully Parameterized Quantile Function、完全にパラメータ化された分位数関数)

ニューラルネットワークが簡単に(第34部):FQF(Fully Parameterized Quantile Function、完全にパラメータ化された分位数関数)

分散型Q学習アルゴリズムの研究を続けます。以前の記事では、分散型の分位数Q学習アルゴリズムについて検討しました。最初のアルゴリズムでは、与えられた範囲の値の確率を訓練しました。2番目のアルゴリズムでは、特定の確率で範囲を訓練しました。それらの両方で、1つの分布のアプリオリな知識を使用し、別の分布を訓練しました。この記事では、モデルが両方の分布で訓練できるようにするアルゴリズムを検討します。
preview
ティッカーテープパネルの作成:改良版

ティッカーテープパネルの作成:改良版

ティッカーテープパネルの基本バージョンを復活させるというアイデアはいかがでしょうか。まずおこなうのは、資産のロゴやその他の画像などの画像を追加できるようにパネルを変更して、ユーザーが表示された銘柄をすばやく簡単に識別できるようにすることです。
preview
MQL5の圏論(第17回):関手とモノイド

MQL5の圏論(第17回):関手とモノイド

関手を題材にしたシリーズの最終回となる今回は、圏としてのモノイドを再考します。この連載ですでに紹介したモノイドは、多層パーセプトロンとともに、ポジションサイジングの補助に使われます。
preview
最適化アルゴリズムを使用してEAパラメータをオンザフライで設定する

最適化アルゴリズムを使用してEAパラメータをオンザフライで設定する

この記事では、最適化アルゴリズムを使用して最適なEAパラメータをオンザフライで見つけることや、取引操作とEAロジックの仮想化について、実践的な側面から論じています。この記事は、最適化アルゴリズムをEAに実装するためのインストラクションとして使用できます。
preview
非定常過程と偽回帰

非定常過程と偽回帰

この記事では、モンテカルロシミュレーションを用いて非定常過程に回帰分析を適用しようとすると、偽回帰が発生することを示しています。
preview
マルコフ連鎖に基づく行列予測モデル

マルコフ連鎖に基づく行列予測モデル

マルコフ連鎖に基づいた行列予測モデルを作成します。マルコフ連鎖とは何でしょうか。また、マルコフ連鎖を外国為替取引にどのように活用できるのでしょうか。
preview
PythonとMQL5でロボットを開発する(第2回):モデルの選択、作成、訓練、Pythonカスタムテスター

PythonとMQL5でロボットを開発する(第2回):モデルの選択、作成、訓練、Pythonカスタムテスター

PythonとMQL5で自動売買ロボットを開発する連載を続けます。今日は、モデルの選択と訓練、テスト、交差検証、グリッドサーチ、モデルアンサンブルの問題を解決します。
preview
自動で動くEAを作る(第13回):自動化(V)

自動で動くEAを作る(第13回):自動化(V)

フローチャートとは何かご存じでしょうか。使い方はご存じですか。フローチャートは初心者向けだとお考えでしょうか。この新しい記事では、フローチャートの操作方法を説明します。
preview
知っておくべきMQL5ウィザードのテクニック(第17回):多通貨取引

知っておくべきMQL5ウィザードのテクニック(第17回):多通貨取引

ウィザードを介してEAが組み立てられた場合、デフォルトでは複数の通貨をまたいだ取引は利用できません。トレーダーが一度に複数の銘柄から自分のアイデアをテストする際に、2つの可能なトリックを検討します。
preview
ニューラルネットワークが簡単に(第89回):FEDformer (Frequency Enhanced Decomposition Transformer)

ニューラルネットワークが簡単に(第89回):FEDformer (Frequency Enhanced Decomposition Transformer)

これまで検討してきたすべてのモデルは、環境の状態を時系列として分析します。ただし、時系列は周波数特徴の形式で表現することもできます。この記事では、時系列の周波数成分を使用して将来の状態を予測するアルゴリズムを紹介します。
preview
MQL5でのAI搭載取引システムの構築(第6回):チャットの削除と検索機能の導入

MQL5でのAI搭載取引システムの構築(第6回):チャットの削除と検索機能の導入

連載第6回では、ChatGPT統合型エキスパートアドバイザー(EA)をさらに進化させ、サイドバーのインタラクティブな削除ボタン、大・小の履歴ポップアップ、新しい検索ポップアップを導入することで、トレーダーが永続的な会話履歴を効率的に管理および整理できるようにしました。これにより、チャートデータからのAI駆動のシグナルを維持しつつ、暗号化されたストレージに会話を安全に保存できます。
DoEasyライブラリのグラフィックス(第79部): 「アニメーションフレーム」オブジェクトクラスとその子孫オブジェクト
DoEasyライブラリのグラフィックス(第79部): 「アニメーションフレーム」オブジェクトクラスとその子孫オブジェクト

DoEasyライブラリのグラフィックス(第79部): 「アニメーションフレーム」オブジェクトクラスとその子孫オブジェクト

本稿では、単一のアニメーションフレームとその子孫のクラスを開発します。このクラスでは、形状の下の背景を維持および復元しながら、形状を描画できるようにします。
preview
CCI指標:アップグレードと新機能

CCI指標:アップグレードと新機能

この記事では、CCI指標をアップグレードする可能性について検討するとともに、この指標の修正を提示します。
DoEasyライブラリのグラフィックス(第75部): 基本的なグラフィック要素でプリミティブとテキストを処理するメソッド
DoEasyライブラリのグラフィックス(第75部): 基本的なグラフィック要素でプリミティブとテキストを処理するメソッド

DoEasyライブラリのグラフィックス(第75部): 基本的なグラフィック要素でプリミティブとテキストを処理するメソッド

本稿では引き続き、CCanvas標準ライブラリクラスを使用したすべてのライブラリグラフィカルオブジェクトの基本的なグラフィック要素クラスを開発します。グラフィカルプリミティブを描画するメソッドとグラフィック要素オブジェクトにテキストを表示するメソッドを作成します。
preview
MQL5の圏論(第7回):多重集合、相対集合、添字集合

MQL5の圏論(第7回):多重集合、相対集合、添字集合

圏論は、数学の多様かつ拡大を続ける分野であり、最近になってMQL5コミュニティである程度取り上げられるようになりました。この連載では、その概念と原理のいくつかを探索して考察することで、トレーダーの戦略開発におけるこの注目すべき分野の利用を促進することを目的としたオープンなライブラリを確立することを目指しています。
preview
弁証法的探索(DA)

弁証法的探索(DA)

本記事では、弁証法の考え方に着想を得た大域最適化手法である弁証法的アルゴリズム(Dialectical Algorithm, DA)を紹介します。このアルゴリズムは、集団を「思索的思考者(speculative thinkers)」と「実践的思考者(practical thinkers)」に独自に分割する点が特徴です。テストでは、低次元問題において最大98%の高い性能を示し、全体的な効率は57.95%に達しました。本記事ではこれらの指標を解説し、アルゴリズムの詳細な説明とさまざまな関数に対する実験結果を提示します。
preview
MQL5入門(第14回):初心者のためのカスタムインジケーター作成ガイド(III)

MQL5入門(第14回):初心者のためのカスタムインジケーター作成ガイド(III)

MQL5でチャートオブジェクトを使ってハーモニックパターンインジケーターを構築する方法を学びましょう。スイングポイントの検出、フィボナッチリトレースメントの適用、そしてパターン認識の自動化について解説します。
preview
MQL5クックブック - マクロ経済イベントデータベース

MQL5クックブック - マクロ経済イベントデータベース

この記事では、SQLiteエンジンに基づいてデータベースを処理する可能性について説明します。CDatabaseクラスは、OOP原則を便利かつ効率的に使用するために作成されました。その後、マクロ経済イベントのデータベースの作成と管理に関与しています。この記事では、CDatabaseクラスの複数のメソッドを使用する例を示します。
preview
MQL5における圏論(第12回):順序

MQL5における圏論(第12回):順序

この記事は、MQL5でのグラフの圏論実装に従う連載の一部であり、順序について詳しく説明します。2つの主要な順序タイプを検討することで、順序理論の概念が取引の意思決定に情報を提供する上で、モノイド集合をどのようにサポートできるかを検証します。
preview
ニューラルネットワークが簡単に(第49回):Soft Actor-Critic

ニューラルネットワークが簡単に(第49回):Soft Actor-Critic

連続行動空間の問題を解決するための強化学習アルゴリズムについての議論を続けます。この記事では、Soft Actor-Critic (SAC)アルゴリズムについて説明します。SACの主な利点は、期待される報酬を最大化するだけでなく、行動のエントロピー(多様性)を最大化する最適な方策を見つけられることです。
preview
ニューラルネットワークが簡単に(第25部):転移学習の実践

ニューラルネットワークが簡単に(第25部):転移学習の実践

前々回、前回と、ニューラルネットワークのモデルを作成・編集するためのツールを開発しました。いよいよ転移学習技術の利用可能性を実例で評価することになります。
DIYテクニカル指標
DIYテクニカル指標

DIYテクニカル指標

この記事では、独自のテクニカル指標を作成できるアルゴリズムについて検討します。非常に単純な初期仮定で、非常に複雑で興味深い結果を得る方法を学びます。