MQL5言語のプログラミング例に関する記事

icon

MQL5言語でMetaTraderプラットフォームのインジケータと自動売買ロボットを作成する方法を示すコード例を含む膨大な記事のコレクションにアクセスします。ソースコードは記事に添付されているので、MetaEditorで開いて実行して、アプリがどのように機能するかを確認できます。

これらの記事は自動取引初心者にも、プログラム経験があるプロのトレーダーにも役に立つでしょう。それらは単に例を特徴とするだけではなく、新しいアイデアも含んでいます。

新しい記事を追加
最新 | ベスト
preview
初級から中級まで:テンプレートとtypename(I)

初級から中級まで:テンプレートとtypename(I)

この記事では、多くの初心者が避けがちな概念の1つを取り上げます。これはテンプレートに関連する話題で、多くの人がテンプレートの基本原理を理解していないため、決して簡単なテーマではありません。その基本原理とは、関数や手続きのオーバーロードです。
preview
DoEasy - コントロール(第22部):SplitContainer - 作成したオブジェクトのプロパティを変更する

DoEasy - コントロール(第22部):SplitContainer - 作成したオブジェクトのプロパティを変更する

今回は、新しく作成したSplitContainerコントロールのプロパティと外観を変更する機能を実装します。
preview
化学反応最適化(CRO)アルゴリズム(第2回):組み立てと結果

化学反応最適化(CRO)アルゴリズム(第2回):組み立てと結果

第2回では、化学演算子を1つのアルゴリズムに集め、その結果の詳細な分析を紹介します。化学反応最適化(CRO)法がテスト機能に関する複雑な問題の解決にどのように対処するかを見てみましょう。
preview
PythonとMQL5による多銘柄分析(前編):NASDAQ集積回路メーカー

PythonとMQL5による多銘柄分析(前編):NASDAQ集積回路メーカー

ポートフォリオのリターンを最大化するために、AIを活用してポジションサイジングと注文数量を最適化する方法について解説します。本稿では、アルゴリズムを用いて最適なポートフォリオを特定し、期待リターンやリスク許容度に応じてポートフォリオを調整する手法を紹介します。このプロセスでは、SciPyライブラリやMQL5言語を活用し、保有中のすべてのデータを基に、最適かつ分散化されたポートフォリオを構築します。
preview
高度なICT取引システムの開発:オーダーブロックインジケーターでのシグナルの実装

高度なICT取引システムの開発:オーダーブロックインジケーターでのシグナルの実装

この記事では、板情報(オーダーブックの数量)に基づいてオーダーブロックインジケーターを開発し、バッファを使用して最適化し、精度を向上させる方法を学習します。これにより、プロジェクトの現段階が終了し、リスク管理クラスとインジケーターによって生成されたシグナルを使用する取引ボットの実装を含む次の段階の準備が整います。
preview
行列分解:より実用的なモデリング

行列分解:より実用的なモデリング

行と列ではなく列のみが指定されているため、行列モデリングが少し奇妙であることに気付かなかったかもしれません。行列分解を実行するコードを読むと、これは非常に奇妙に見えます。行と列がリストされていることを期待していた場合、因数分解しようとしたときに混乱する可能性があります。さらに、この行列モデリング方法は最適ではありません。これは、この方法で行列をモデル化すると、いくつかの制限に遭遇し、より適切な方法でモデル化がおこなわれていれば必要のない他の方法や関数を使用せざるを得なくなるためです。
preview
古典的な戦略を再構築する(第14回):高確率セットアップ

古典的な戦略を再構築する(第14回):高確率セットアップ

高確率セットアップ(high probability setups)は、私たちの取引コミュニティではよく知られていますが、残念ながら明確には定義されていません。この記事では、「高確率セットアップ」とは具体的に何かを、経験的かつアルゴリズム的な方法で定義し、それを特定して活用することを目指します。勾配ブースティング木を用いることで、任意の取引戦略のパフォーマンスを向上させる方法、そしてコンピュータに対して「何をすべきか」をより明確かつ意味のある形で伝える手段を、読者に示します。
preview
リプレイシステムの開発(第33回):発注システム(II)

リプレイシステムの開発(第33回):発注システム(II)

今日も発注システムの開発を続けます。ご覧のように、他の記事ですでに紹介したものを大量に再利用することになります。とはいえ、この記事にはささやかなご褒美があります。まず、デモ口座からでもリアル口座からでも、取引サーバーで使えるシステムを開発します。MetaTrader 5プラットフォームを幅広く活用し、当初から必要なサポートをすべて提供します。
preview
集団型ADAM(適応モーメント推定法)

集団型ADAM(適応モーメント推定法)

この記事では、よく知られていて人気のあるADAM勾配最適化手法を集団アルゴリズムに変換し、さらにハイブリッド個体を導入して修正した方法を紹介しています。この新しいアプローチでは、確率分布を使って成功した判断の要素を組み合わせたエージェントを作ることができます。大きな革新点は、有望な解からの情報を適応的に蓄積するハイブリッド集団個体を形成することであり、それによって複雑な多次元空間での探索効率が高まります。
preview
ログレコードをマスターする(第8回):自己翻訳するエラーレコード

ログレコードをマスターする(第8回):自己翻訳するエラーレコード

「ログレコードをマスターする」第8回では、MQL5向けの強力なログライブラリであるLogifyにおける多言語エラーメッセージの実装について探っていきます。本記事では、コンテキストを含めたエラー構造の作り方、メッセージを複数言語に翻訳する方法、そして重大度レベルに応じたログの動的フォーマット方法について学びます。これらはすべて、クリーンで拡張可能であり、本番環境でも利用可能な設計にします。
preview
MQL5で取引管理者パネルを作成する(第9回):コード編成(I)

MQL5で取引管理者パネルを作成する(第9回):コード編成(I)

このディスカッションでは、大規模なコードベースを扱う際に直面する課題について掘り下げます。MQL5におけるコード構成のベストプラクティスを紹介し、取引管理パネルのソースコードの可読性と拡張性を向上させるための実践的なアプローチを実装します。また、他の開発者がアルゴリズム開発で活用できる再利用可能なコードコンポーネントの開発も目指しています。ぜひ最後までお読みいただき、ご意見をお寄せください。
preview
ダイナミックマルチペアEAの形成(第5回):スキャルピングとスイングトレードの切替設計

ダイナミックマルチペアEAの形成(第5回):スキャルピングとスイングトレードの切替設計

今回は、スキャルピングとスイングトレードのモードを状況に応じて切り替えることができるダイナミックマルチペアエキスパートアドバイザー(EA)の設計方法を解説します。シグナル生成、取引実行、リスク管理の構造面およびアルゴリズム面での違いを網羅し、市場状況やユーザー入力に応じてEAが状況に応じて戦略を切り替える仕組みを紹介します。
preview
リプレイシステムの開発(第51回):物事は複雑になる(III)

リプレイシステムの開発(第51回):物事は複雑になる(III)

この記事では、MQL5プログラミングの分野で最も難解な問題の1つである、チャートIDを正しく取得する方法と、オブジェクトがチャートにプロットされない場合がある理由について解説します。ここで提供される資料は教育目的のみに使用されるべきです。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを閲覧することは避けてください。
preview
初心者からエキスパートへ:市場構造を認識したRSI取引

初心者からエキスパートへ:市場構造を認識したRSI取引

本記事では、相対力指数(RSI)オシレーターを市場構造と組み合わせて取引するための実践的な手法を解説します。特に、チャネル型のプライスアクションパターンに焦点を当て、それらが一般的にどのように取引されているか、そしてMQL5をどのように活用してこのプロセスを強化できるかを説明します。最終的には、トレンド継続の機会をより高い精度と一貫性で捉えることを目的とした、ルールベースの自動チャネル取引システムを構築できるようになるでしょう。
preview
MQL5でSHA-256暗号化アルゴリズムをゼロから実装する

MQL5でSHA-256暗号化アルゴリズムをゼロから実装する

これまで、DLLを使用せずに暗号通貨取引所との統合を構築することは長らく課題とされてきました。しかし、本ソリューションは、市場へ直接接続するための包括的なフレームワークを提供します。
preview
MQL5とデータ処理パッケージの統合(第4回):ビッグデータの取り扱い

MQL5とデータ処理パッケージの統合(第4回):ビッグデータの取り扱い

今回は、MQL5と強力なデータ処理ツールを統合する高度なテクニックに焦点を当て、取引分析および意思決定を強化するためのビッグデータの効率的な活用方法を探ります。
preview
事後取引分析:ストラテジーテスターにおけるトレーリングストップと新しいストップレベルの選択

事後取引分析:ストラテジーテスターにおけるトレーリングストップと新しいストップレベルの選択

取引の質をさらに高めるため、今回はストラテジーテスターで完了済みの取引を分析するテーマを引き続き取り上げます。異なる種類のトレーリングストップを使用すると、既存の取引結果がどのように変化するかを見ていきましょう。
preview
MQL5で古典的な戦略を再構築する(後編):FTSE100と英国債

MQL5で古典的な戦略を再構築する(後編):FTSE100と英国債

この連載では、人気のある取引戦略を探り、AIを使ってその改善を試みます。今日の記事では、株式市場と債券市場の関係に基づく古典的な取引戦略を再考します。
preview
初級から中級へ:配列と文字列(I)

初級から中級へ:配列と文字列(I)

本日の記事では、いくつかの特殊なデータ型について見ていきます。まず、文字列とは何かを定義し、いくつかの基本的な操作方法を説明します。これにより、興味深いデータ型を扱えるようになりますが、初心者にとっては少し混乱することもあるかもしれません。ここで提示されるコンテンツは、教育目的のみに使用されることを意図しています。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを閲覧することは避けてください。
preview
初級から中級へ:配列と文字列(II)

初級から中級へ:配列と文字列(II)

この記事では、プログラミングがまだ非常に初歩的な段階にあるにもかかわらず、すでにいくつかの興味深いアプリケーションを実装できることを示します。今回は、比較的シンプルなパスワードジェネレーターを作成します。このようにして、これまでに説明してきたいくつかの概念を実際に適用することができます。加えて、特定の問題に対する解決策をどのように構築できるかについても考察していきます。
preview
古典的な戦略を再構築する(第8回):USDCADをめぐる為替市場と貴金属市場

古典的な戦略を再構築する(第8回):USDCADをめぐる為替市場と貴金属市場

この連載では、よく知られた取引戦略を再検討し、AIを使って改善できるかどうかを検証します。本日のディスカッションでは、貴金属と通貨の間に信頼できる関係があるかどうかを検証します。
preview
アンサンブル学習におけるゲーティングメカニズム

アンサンブル学習におけるゲーティングメカニズム

この記事では、アンサンブルモデルの検討をさらに進め、「ゲート」という概念に注目し、モデル出力を組み合わせることで予測精度や汎化性能の向上にどのように役立つかを解説します。
preview
分析型ボリュームプロファイル取引(AVPT):流動性アーキテクチャ、市場メモリ、アルゴリズム実行

分析型ボリュームプロファイル取引(AVPT):流動性アーキテクチャ、市場メモリ、アルゴリズム実行

分析型ボリュームプロファイル取引(AVPT, Analytical Volume Profile Trading)は、流動性構造と市場記憶がプライスアクションに与える影響を分析し、機関投資家のポジション構築や出来高駆動の構造をより深く理解する手法です。POC、HVN、LVN、バリューエリアを可視化することで、受容、拒否、アンバランスゾーンを高い精度で特定できます。
preview
人工蜂の巣アルゴリズム(ABHA):理論と方法

人工蜂の巣アルゴリズム(ABHA):理論と方法

この記事では、2009年に開発された人工蜂の巣アルゴリズム(ABHA)について説明します。このアルゴリズムは、連続的な最適化問題を解決することを目的としています。この記事では、蜂がそれぞれの役割を担って効率的に資源を見つける蜂のコロニーの行動から、ABHAがどのようにインスピレーションを得ているかを探ります。
preview
初級から中級まで:オーバーロード

初級から中級まで:オーバーロード

おそらく、この記事は初心者プログラマーにとって最も混乱を招くものになるでしょう。実際のところ、ここでは、同じコード内で必ずしもすべての関数や手続きが一意の名前を持つとは限らないことを示します。同じ名前の関数や手続きを使うことができるのです。これをオーバーロードと呼びます。
preview
リプレイシステムの開発(第73回):異例のコミュニケーション(II)

リプレイシステムの開発(第73回):異例のコミュニケーション(II)

この記事では、インジケーターとサービス間でリアルタイムに情報を伝達する方法について解説し、また時間軸を変更した際に発生しうる問題の原因とその解決方法について理解を深めます。おまけとして、最新バージョンのリプレイ/シミュレーションアプリへのアクセスも提供します。
preview
ニューラルネットワークが簡単に(第91回):周波数領域予測(FreDF)

ニューラルネットワークが簡単に(第91回):周波数領域予測(FreDF)

周波数領域における時系列の分析と予測を継続的に探求していきます。この記事では、これまでに学習した多くのアルゴリズムに追加できる、周波数領域でデータを予測する新しい方法について説明します。
preview
プッシュ通知による取引の監視:MetaTrader 5サービスの例

プッシュ通知による取引の監視:MetaTrader 5サービスの例

この記事では、取引結果をスマートフォンに通知するサービスアプリの作成について説明します。標準ライブラリオブジェクトのリストを処理して、必要なプロパティごとにオブジェクトの選択を整理する方法を学習します。
preview
汎用MLP近似器に基づくエキスパートアドバイザー

汎用MLP近似器に基づくエキスパートアドバイザー

この記事では、機械学習の深い知識がなくても利用できる、取引EAでのニューラルネットワークの簡単でアクセスしやすい使用方法を紹介しています。この方法では、目的関数の正規化を省略できるほか、「重みの爆発」や「収束停止」といった問題を解消し、直感的な学習と結果の視覚的な管理を可能にしています。
preview
MQL5で取引管理者パネルを作成する(第9回):コード編成(V):AnalyticsPanelクラス

MQL5で取引管理者パネルを作成する(第9回):コード編成(V):AnalyticsPanelクラス

この議論では、リアルタイムの市場データや取引口座情報の取得方法、さまざまな計算の実行、そしてその結果をカスタムパネルに表示する方法について探ります。これを実現するために、パネル作成を含むこれらすべての機能をカプセル化したAnalyticsPanelクラスの開発にさらに深く取り組みます。この取り組みは、モジュラー設計の原則とコード構造のベストプラクティスを用い、高度な機能を導入するNew Admin Panel EAの継続的な拡張の一環です。
preview
初心者からエキスパートへ:MQL5を使用したバックエンド操作モニター

初心者からエキスパートへ:MQL5を使用したバックエンド操作モニター

取引システムの内部動作を意識せずに、既製のソリューションをそのまま利用することは一見すると安心に思えますが、開発者にとっては必ずしもそうとは限りません。いずれアップデートや動作不良、あるいは予期しないエラーが発生し、その原因がどこにあるのかを正確に突き止め、迅速に診断して解決する必要に迫られます。本記事では、取引用エキスパートアドバイザー(EA)の裏側で通常どのような操作がおこなわれているのかを明らかにするとともに、MQL5を用いてバックエンド操作を表示し、記録するための専用カスタムクラスを開発します。これにより、開発者およびトレーダーの双方が、エラーの特定、挙動の監視、EAごとの診断情報に迅速にアクセスできるようになります。
preview
リプレイシステムの開発(第34回):発注システム (III)

リプレイシステムの開発(第34回):発注システム (III)

今回は、構築の第一段階を完成させます。この部分はかなり短時間で終わりますが、前回までに説明しなかった詳細をカバーします。多くの方が理解していない点をいくつか説明します。なぜShiftキーやCtrlキーを押さなければならないかご存じでしょうか。
preview
リプレイシステムの開発(第39回):道を切り開く(III)

リプレイシステムの開発(第39回):道を切り開く(III)

開発の第2段階に進む前に、いくつかのアイデアを修正する必要があります。MQL5に必要なことをさせる方法をご存知ですか。ドキュメントに書かれている以上のことをしようとしたことはありますか。そうでないなら、準備をしましょう。ここでは、ほとんどの人が普段やらないことをやるからです。
preview
初級から中級へ:変数(II)

初級から中級へ:変数(II)

今日は、static変数の取り扱いについて学びます。このメカニズムを使用する際に守らなければならないいくつかの推奨事項があるため、この問題は初心者やある程度の経験を持つプログラマーにとってしばしば混乱を招きます。ここで提示される資料は教育目的のみに使用されます。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを閲覧することは避けてください。
preview
DoEasy-コントロール(第19部):TabControl、WinFormsオブジェクトイベントでのタブのスクロール

DoEasy-コントロール(第19部):TabControl、WinFormsオブジェクトイベントでのタブのスクロール

この記事では、スクロールボタンを使用してTabControlでタブヘッダーをスクロールする機能を作成します。この機能は、コントロールの両方側からタブヘッダーを1行に配置するためのものです。
preview
ログレコードをマスターする(第4回):ログをファイルに保存する

ログレコードをマスターする(第4回):ログをファイルに保存する

この記事では、基本的なファイル操作と、カスタマイズに対応した柔軟なハンドラの設定方法について紹介します。CLogifyHandlerFileクラスを更新し、ログをファイルに直接書き込むようにします。また、EURUSDで1週間にわたるストラテジーをシミュレーションし、各ティックごとにログを生成して、合計5分11秒のパフォーマンステストを実施します。この結果は今後の記事で比較し、パフォーマンス向上のためにキャッシュシステムの導入もおこなう予定です。
preview
MQL5 Algo Forgeへの移行(第4回):バージョンとリリースの操作

MQL5 Algo Forgeへの移行(第4回):バージョンとリリースの操作

SimpleCandlesプロジェクトおよびAdwizardプロジェクトの開発を継続しつつ、MQL5 Algo Forgeのバージョン管理システムおよびリポジトリのより詳細な活用方法についても説明していきます。
preview
人工電界アルゴリズム(AEFA)

人工電界アルゴリズム(AEFA)

この記事では、クーロンの静電気力の法則に触発された人工電界アルゴリズム(AEFA: Artificial Electric Field Algorithm)を紹介します。このアルゴリズムは、荷電粒子とその相互作用を利用して複雑な最適化問題を解決するために電気現象をシミュレートします。AEFAは、自然法則に基づいた他のアルゴリズムと比較して、独自の特性を示します。
preview
リスク管理(第2回):グラフィカルインターフェースでのロット計算の実装

リスク管理(第2回):グラフィカルインターフェースでのロット計算の実装

本記事では、前回の記事で紹介した内容をさらに発展させ、MQL5の強力なグラフィカルコントロールライブラリを使って実際にGUIを作成する方法を解説します。ステップごとに、完全に動作するGUIを作る過程を追いながら、各メソッドの仕組みや役割、そしてその背後にある考え方についても丁寧に説明します。また、記事の最後には、作成したパネルをテストして、正しく機能することを確認します。
preview
リプレイシステムの開発(第64回):サービスの再生(V)

リプレイシステムの開発(第64回):サービスの再生(V)

この記事では、コード内の2つのエラーを修正する方法について説明します。ただし、初心者プログラマーの皆さんに、物事が必ずしも期待どおりに進むとは限らないことを理解してもらえるよう、できるだけわかりやすく解説したいと思います。いずれにせよ、これは学びの機会です。ここで提示されるコンテンツは、教育目的のみに使用されることを意図しています。ここで紹介する内容は教育目的のみに限定されており、提示された概念を探求すること以外の目的でこのアプリケーションを最終的な文書と見なすべきではありません。