MQL5プログラミング記事

icon

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

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

新しい記事を追加
最新 | ベスト
preview
市場シミュレーション(第10回):ソケット(V)

市場シミュレーション(第10回):ソケット(V)

これからExcelとMetaTrader 5の接続の実装を始めますが、その前にいくつか押さえておくべき重要なポイントがあります。これを理解しておくことで、なぜ動くのか、なぜ動かないのかで悩む必要がなくなります。そして、PythonとExcelを組み合わせることに尻込みする前に、xlwingsを使ってExcelからMetaTrader 5をある程度操作できる方法を見てみましょう。ここで紹介する内容は主に教育目的ですが、もちろん、ここで取り上げることだけに制限されるわけではありません。
preview
細菌走化性最適化(BCO)

細菌走化性最適化(BCO)

この記事では、細菌走化性最適化(BCO)アルゴリズムのオリジナルバージョンとその改良版を紹介します。新バージョン「BCOm」では、細菌の移動メカニズムを簡素化し、位置履歴への依78ytf存を軽減するとともに、計算負荷の大きかった元のバージョンに比べて、より単純な数学的手法を採用しています。この記事では両者の違いを詳しく検討し、とくにBCOmの特徴に焦点を当てます。また、テストを実施し、その結果をまとめます。
preview
MQL5における高度な注文執行アルゴリズム:TWAP、VWAP、アイスバーグ注文

MQL5における高度な注文執行アルゴリズム:TWAP、VWAP、アイスバーグ注文

MQL5フレームワークで、機関投資家向けの高度な執行アルゴリズム(TWAP、VWAP、アイスバーグ注文)を小口トレーダー向けに提供します。統合された実行マネージャーとパフォーマンスアナライザーを用いて、注文の分割(スライシング)や分析をよりスムーズかつ正確に行える環境を提供します。
preview
Candlestick Trend Constraintモデルの構築(第9回):マルチ戦略エキスパートアドバイザー(I)

Candlestick Trend Constraintモデルの構築(第9回):マルチ戦略エキスパートアドバイザー(I)

今日は、MQL5を使って複数の戦略をエキスパートアドバイザー(EA)に組み込む可能性を探ります。EAは、指標やスクリプトよりも幅広い機能を提供し、変化する市場環境に適応できる、より洗練された取引アプローチを可能にします。詳しくは、この記事のディスカッションをご覧ください。
preview
リプレイシステムの開発(第26回):エキスパートアドバイザープロジェクト-C_Terminalクラス

リプレイシステムの開発(第26回):エキスパートアドバイザープロジェクト-C_Terminalクラス

これで、リプレイ/シミュレーションシステムで使用するEAの作成を開始できます。ただし、行き当たりばったりの解決策ではなく、何か改善策が必要です。にもかかわらず、最初の複雑さに怯んではなりません。どこかで始めることが重要で、そうでなければ、その課題を克服しようともせずに、その難しさを反芻してしまうことになります。それこそがプログラミングの醍醐味であり、学習、テスト、徹底的な研究を通じて障害を克服することです。
preview
GIT:それは何か?

GIT:それは何か?

今回は、開発者にとって非常に重要なツールを紹介しましょう。GITに馴染みのない方は、この記事を読んでGITとは何か、MQL5でどのように使用するかをご覧ください。
preview
MetaTrader 5用のMQTTクライアントの開発:TDDアプローチ(最終回)

MetaTrader 5用のMQTTクライアントの開発:TDDアプローチ(最終回)

この記事は、MQTT 5.0プロトコルのネイティブMQL5クライアントの開発ステップを説明する連載の最終回です。ライブラリはまだ製品化されていませんが、この部分では、他の証券会社から入手したティック(またはレート)でカスタム銘柄を更新するためにクライアントを使用します。ライブラリの現在の状況、MQTT 5.0プロトコルに完全に準拠するために足りないもの、可能なロードマップ、そしてその開発をフォローし貢献する方法についての詳細は、この記事の最後をご覧ください。
preview
MetaTrader 5で隠れマルコフモデルを統合する

MetaTrader 5で隠れマルコフモデルを統合する

この記事では、Pythonを使用して学習した隠れマルコフモデルをMetaTrader 5アプリケーションに統合する方法を示します。隠れマルコフモデルは、時系列データをモデル化するために使用される強力な統計的ツールであり、モデル化されるシステムは観測不可能な(隠れた)状態によって特徴付けられます。HMMの基本的な前提は、ある時刻にある状態にある確率は、その前のタイムスロットにおけるプロセスの状態に依存するということです。
preview
MQL5で取引管理者パネルを作成する(第3回):テーマ管理のための組み込みクラスの拡張(II)

MQL5で取引管理者パネルを作成する(第3回):テーマ管理のための組み込みクラスの拡張(II)

このディスカッションでは、既存のダイアログライブラリを慎重に拡張して、テーマ管理ロジックを組み込みます。さらに、管理パネルプロジェクトで使用されるCDialog、CEdit、およびCButtonクラスにテーマ切り替えのメソッドを統合します。さらに洞察力のある視点については、引き続きお読みください。
preview
MQL5取引ツールキット(第4回):履歴管理EX5ライブラリの開発

MQL5取引ツールキット(第4回):履歴管理EX5ライブラリの開発

詳細なステップバイステップのアプローチで拡張履歴管理EX5ライブラリを作成し、MQL5を使用してクローズされたポジション、注文、取引履歴を取得、処理、分類、並べ替え、分析、管理する方法を学びます。
preview
データサイエンスとML(第33回):MQL5におけるPandas DataFrame、ML使用のためのデータ収集が簡単に

データサイエンスとML(第33回):MQL5におけるPandas DataFrame、ML使用のためのデータ収集が簡単に

機械学習モデルを使用する際は、学習・検証・テストに使用するデータの一貫性を確保することが重要です。この記事では、MQL5の外部(多くの学習がおこなわれる環境)とMQL5内部の両方で同じデータを利用できるようにするため、MQL5で独自のPandasライブラリを作成します。
preview
RestAPIを統合したMQL5強化学習エージェントの開発(第1回):MQL5でRestAPIを使用する方法

RestAPIを統合したMQL5強化学習エージェントの開発(第1回):MQL5でRestAPIを使用する方法

この記事では、異なるアプリケーションやソフトウェアシステム間の相互作用におけるAPI (Application Programming Interface)の重要性についてお話しします。アプリケーション間のやり取りを簡素化し、データや機能を効率的に共有することを可能にするAPIの役割を見ていきます。
preview
ニューラルネットワークが簡単に(第71回):目標条件付き予測符号化(GCPC)

ニューラルネットワークが簡単に(第71回):目標条件付き予測符号化(GCPC)

前回の記事では、Decision Transformer法と、そこから派生したいくつかのアルゴリズムについて説明しました。さまざまな目標設定手法で実験しました。実験では、さまざまな方法で目標を設定しましたが、それ以前に通過した軌跡に関するモデルの研究は、常に私たちの関心の外にありました。この記事では、このギャップを埋める手法を紹介したいと思います。
preview
ニューラルネットワークが簡単に(第95回):Transformerモデルにおけるメモリ消費の削減

ニューラルネットワークが簡単に(第95回):Transformerモデルにおけるメモリ消費の削減

Transformerアーキテクチャに基づくモデルは高い効率を示しますが、その使用は、訓練段階と運転中の両方で高いリソースコストによって複雑になります。この記事では、このようなモデルのメモリ使用量を削減するアルゴリズムを紹介します。
preview
MQL5における組合せ対称交差検証法

MQL5における組合せ対称交差検証法

この記事では、ストラテジーテスターの低速&完全アルゴリズムを使用してストラテジーを最適化した後に過剰学習が発生する可能性の程度を測定するために、純粋なMQL5における組合せ対称交差検証法の実装を紹介します。
preview
古典的な戦略をPythonで再構築する(第3回):高値更新と安値更新の予測

古典的な戦略をPythonで再構築する(第3回):高値更新と安値更新の予測

本連載では、古典的な取引戦略を実証的に分析し、AIを用いてそれらの改善が可能かどうかを検証します。本日の議論では、線形判別分析モデルを用いて高値更新と安値更新の予測に挑戦します。
preview
リスク管理への定量的なアプローチ:PythonとMetaTrader 5を使用してVaRモデルを適用し、多通貨ポートフォリオを最適化する

リスク管理への定量的なアプローチ:PythonとMetaTrader 5を使用してVaRモデルを適用し、多通貨ポートフォリオを最適化する

この記事では、複数通貨ポートフォリオの最適化におけるバリュー・アット・リスク(VaR: Value at Risk)モデルの可能性について探ります。PythonのパワーとMetaTrader 5の機能を活用し、効率的な資本配分とポジション管理のためにVaR分析をどのように実装するかを紹介します。理論的な基礎から実践的な実装まで、アルゴリズム取引における最も堅牢なリスク計算手法の一つであるVaRの応用に関するあらゆる側面を取り上げています。
preview
DoEasy - サービス関数(第1回):価格パターン

DoEasy - サービス関数(第1回):価格パターン

この記事では、時系列データを使用して価格パターンを検索するメソッドの開発に着手します。パターンには、どのようなタイプのパターンにも共通する、一定のパラメータセットがあります。この種のデータはすべて、基となる抽象パターンのオブジェクトクラスに集約されます。今回は、抽象パターンクラスとピンバーパターンクラスを作成します。
preview
時間進化移動アルゴリズム(TETA)

時間進化移動アルゴリズム(TETA)

これは私自身のアルゴリズムです。本記事では、並行宇宙や時間の流れの概念に着想を得た「時間進化移動アルゴリズム(TETA: Time Evolution Travel Algorithm)」を紹介します。本アルゴリズムの基本的な考え方は、従来の意味でのタイムトラベルは不可能であるものの、異なる現実に至る一連の出来事の順序を選択することができるという点にあります。
preview
MQL5入門(第15回):初心者のためのカスタムインジケーター作成ガイド(IV)

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

この記事では、MQL5でプライスアクションインジケーターを構築する方法を学びます。具体的には、トレンド分析において重要なポイントである、安値(L)、高値(H)、安値切り上げ(HL)、高値更新(HH)、安値更新(LL)、高値切り下げ(LH)といった構造の把握に焦点を当てます。また、プレミアムゾーンとディスカウントゾーンの識別、50%リトレースメントレベルの表示、リスクリワード比に基づく利益目標の計算についても解説します。さらに、トレンド構造に基づいてエントリーポイント、ストップロス(SL)、テイクプロフィット(TP)の設定方法も扱います。
preview
DoEasy-コントロール(第12部):基本リストオブジェクト、ListBoxおよびButtonListBox WinFormsオブジェクト

DoEasy-コントロール(第12部):基本リストオブジェクト、ListBoxおよびButtonListBox WinFormsオブジェクト

この記事では、WinFormsオブジェクトリストの基本オブジェクトと、2つの新しいオブジェクトを作成します。ListBoxとButtonListBoxです。
preview
MQL5での取引戦略の自動化(第23回):トレーリングとバスケットロジックによるゾーンリカバリ

MQL5での取引戦略の自動化(第23回):トレーリングとバスケットロジックによるゾーンリカバリ

この記事では、トレーリングストップとマルチバスケット取引機能を導入することで、ゾーンリカバリー(Zone Recovery)システムを強化します。改善されたアーキテクチャが、利益確定のために動的トレーリングストップをどのように活用し、複数の取引シグナルを効率的に処理するバスケット管理システムの使用方法を探ります。実装とバックテストを通じて、適応的な市場環境に対応するより堅牢な取引システムを実証します。
preview
時系列の非定常性の指標としての2標本コルモゴロフ–スミルノフ検定

時系列の非定常性の指標としての2標本コルモゴロフ–スミルノフ検定

この記事では、最も有名なノンパラメトリック同質性検定の1つである2標本のコルモゴロフ–スミルノフ検定について考察します。モデルデータと実際の相場の両方が分析されています。また、この記事では非定常性指標(iスミルノフ距離)の構築例も紹介しています。
preview
初級から中級へ:演算子

初級から中級へ:演算子

この記事では、主な演算子 について学んでいきます。このトピックは理解しやすいかもしれませんが、コードフォーマットに数式を含める際には非常に重要なポイントがいくつかあります。これらの細部を十分に理解していないと、経験の浅いプログラマーは最終的に自分で解決策を見つけることをあきらめてしまうかもしれません。
preview
初心者からプロまでMQL5をマスターする(第6回):エキスパートアドバイザー開発の基礎

初心者からプロまでMQL5をマスターする(第6回):エキスパートアドバイザー開発の基礎

この記事は初心者向け連載の続きです。今回はエキスパートアドバイザー(EA)開発の基本原理について解説します。2つのEAを作成します。1つ目はインジケーターを使わず、予約注文で取引をおこなうEA。2つ目は標準の移動平均線(MA)インジケーターを利用し、成行価格で取引をおこなうEAです。ここでは、前回までの記事の内容をある程度理解していることを前提としています。
preview
MQL5取引ツールキット(第6回):直近で約定された予約注文に関する関数で履歴管理EX5ライブラリを拡張

MQL5取引ツールキット(第6回):直近で約定された予約注文に関する関数で履歴管理EX5ライブラリを拡張

EX5モジュールで、直近で約定された予約注文のデータをシームレスに取得・格納するエクスポート可能な関数を作成する方法を学びます。このステップバイステップの包括的なガイドでは、直近で約定された予約注文の重要なプロパティ(注文タイプ、発注時間、約定時間、約定タイプなど)を取得するための専用かつ機能別の関数群を開発することで、履歴管理EX5ライブラリをさらに強化していきます。これらのプロパティは、予約注文の取引履歴を効果的に管理・分析するうえで重要な情報です。
preview
MQL5で取引管理者パネルを作成する(第9回):コード編成(IV):取引管理パネルクラス

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

このディスカッションでは、New_Admin_Panel EAにおけるTradeManagementPanelの最新版について解説します。このアップデートでは、組み込みクラスを活用することで、ユーザーフレンドリーな取引管理インターフェイスを提供するようにパネルが強化されました。パネルには、新規ポジションのオープン用取引ボタンや、既存のポジションおよび指値注文の管理用コントロールが含まれています。特に注目すべき機能は、インターフェイス上から直接ストップロス(SL)やテイクプロフィット(TP)を設定できるリスク管理機能が統合された点です。このアップデートにより、大規模なプログラムにおけるコードの整理が改善され、端末上では複雑になりがちな注文管理ツールへのアクセスが簡素化されました。
preview
MQL5での取引戦略の自動化(第23回):トレーリングとバスケットロジックによるゾーンリカバリ

MQL5での取引戦略の自動化(第23回):トレーリングとバスケットロジックによるゾーンリカバリ

この記事では、トレーリングストップとマルチバスケット取引機能を導入することで、ゾーンリカバリー(Zone Recovery)システムを強化します。改善されたアーキテクチャが、利益確定のために動的トレーリングストップをどのように活用し、複数の取引シグナルを効率的に処理するバスケット管理システムの使用方法を探ります。実装とバックテストを通じて、適応的な市場環境に対応するより堅牢な取引システムを実証します。
preview
取引量による取引の洞察:OHLCチャートを超えて

取引量による取引の洞察:OHLCチャートを超えて

取引量分析と機械学習技術、特にLSTMニューラルネットワークを組み合わせたアルゴリズム取引システムです。価格変動を中心に据えた従来の取引アプローチとは異なり、このシステムは市場の動きを予測するために取引量パターンとその導関数を重視します。この方法論には、取引量導関数分析(一次導関数および二次導関数)、取引量パターンのLSTM予測、および従来のテクニカル指標という3つの主要コンポーネントが組み込まれています。
preview
プライスアクション分析ツールキットの開発(第14回):Parabolic Stop and Reverseツール

プライスアクション分析ツールキットの開発(第14回):Parabolic Stop and Reverseツール

プライスアクション分析にテクニカルインジケーターを取り入れることは、非常に有効なアプローチです。これらのインジケーターは、反転や押し戻しの重要なレベルを示すことが多く、市場の動きを把握する上での貴重な手がかりとなります。本記事では、パラボリックSARインジケーターを用いてシグナルを生成する自動ツールをどのように開発したかを紹介します。
preview
MQL5で自己最適化エキスパートアドバイザーを構築する(第6回):自己適応型取引ルール(II)

MQL5で自己最適化エキスパートアドバイザーを構築する(第6回):自己適応型取引ルール(II)

本記事では、より良い売買シグナルを得るために、RSIのレベルと期間を最適化する方法を探ります。最適なRSI値を推定する手法や、グリッドサーチと統計モデルを用いた期間選定の自動化について紹介します。最後に、Pythonによる分析を活用しながら、MQL5でソリューションを実装します。私たちのアプローチは、複雑になりがちな問題をシンプルに解決することを目指した、実用的かつ分かりやすいものです。
preview
プライスアクション分析ツールキットの開発(第7回):Signal Pulse EA

プライスアクション分析ツールキットの開発(第7回):Signal Pulse EA

ボリンジャーバンドとストキャスティクスオシレーターを組み合わせたMQL5エキスパートアドバイザー(EA)「Signal Pulse」で、多時間枠分析の可能性を引き出しましょう。高精度で勝率の高い取引シグナルを提供します。この戦略の実装方法や、カスタム矢印を用いた売買シグナルの可視化手法を学び、実践的な活用を目指しましょう。複数の時間枠にわたる自動分析を通じて、トレード判断力を高めたいトレーダーに最適なツールです。
preview
プライスアクション分析ツールキットの開発(第9回):External Flow

プライスアクション分析ツールキットの開発(第9回):External Flow

本稿では、高度な分析手法として外部ライブラリを活用する、新たなアプローチを紹介します。pandasのようなライブラリは、複雑なデータを処理・解釈するための強力なツールを提供し、トレーダーが市場の動向についてより深い洞察を得られるようにします。このようなテクノロジーを統合することで、生のデータと実用的な戦略との間にあるギャップを埋めることができます。この革新的なアプローチの基盤を築き、テクノロジーと取引の専門知識を融合させる可能性を引き出すために、ぜひご一緒に取り組んでいきましょう。
preview
データサイエンスとML(第41回):YOLOv8を用いた外国為替および株式市場のパターン検出

データサイエンスとML(第41回):YOLOv8を用いた外国為替および株式市場のパターン検出

金融市場でパターンを検出するのは、チャート上の内容を確認する必要があるため困難ですが、これは画像の制限によりMQL5では実行が困難です。この記事では、最小限の労力でチャート上のパターンを検出するのに役立つ、Pythonで作成された適切なモデルについて説明します。
preview
MQL5での取引戦略の自動化(第28回):視覚的フィードバックによるプライスアクションバットハーモニックパターンの作成

MQL5での取引戦略の自動化(第28回):視覚的フィードバックによるプライスアクションバットハーモニックパターンの作成

本記事では、MQL5で弱気と強気の両方のバット(Bat)ハーモニックパターンを、ピボットポイントとフィボナッチ比率を用いて識別し、正確なエントリー、ストップロス、テイクプロフィットレベルを用いて取引を自動化するバットパターンシステムを開発し、チャートオブジェクトによる視覚的フィードバックを強化します。
preview
機械学習における量子化(第1回):理論、コード例、CatBoostでの実装解析

機械学習における量子化(第1回):理論、コード例、CatBoostでの実装解析

この記事では、ツリーモデルの構築における量子化の理論的な応用を考察し、CatBoostに実装された量子化手法を紹介します。複雑な数式は使用しません。
preview
MQL5開発用のカスタムデバッグおよびプロファイリングツール(第1回):高度なロギング

MQL5開発用のカスタムデバッグおよびプロファイリングツール(第1回):高度なロギング

MQL5で、単なるPrint文を超えた強力なカスタムロギングフレームワークを実装する方法を学びましょう。このフレームワークは、ログの重要度レベル、複数の出力ハンドラ、自動ファイルローテーションをサポートし、実行中にすべて設定可能です。シングルトン設計のCLoggerをConsoleLogHandlerとFileLogHandlerに統合することで、[エキスパート]タブと永続ファイルの両方に、文脈情報やタイムスタンプ付きのログを記録できます。明確でカスタマイズ可能なログ形式と集中管理により、エキスパートアドバイザー(EA)のデバッグとパフォーマンストレースを効率化します。
preview
RestAPIを統合したMQL5強化学習エージェントの開発(第2回):三目並べゲームREST APIとのHTTPインタラクションのためのMQL5関数

RestAPIを統合したMQL5強化学習エージェントの開発(第2回):三目並べゲームREST APIとのHTTPインタラクションのためのMQL5関数

この記事では、MQL5がPythonやFastAPIとどのように相互作用できるか、MQL5のHTTP呼び出しを使用してPythonの三目並べゲームと相互作用する方法について説明します。この記事では、この統合のためのFastAPIを使用したAPIの作成について説明し、MQL5でのテストスクリプトを提供することで、MQL5の多用途性、Pythonのシンプルさ、そして革新的なソルーションを生み出すために異なるテクノロジーを接続するFastAPIの有効性を強調しています。
preview
MQL5で自己最適化エキスパートアドバイザーを構築する(第8回):複数戦略分析

MQL5で自己最適化エキスパートアドバイザーを構築する(第8回):複数戦略分析

複数の戦略をどのように組み合わせれば、最も効果的に強力なアンサンブル戦略を構築できるでしょうか。本記事では、3種類の戦略を1つの取引アプリケーションに統合する方法について検討します。トレーダーは通常、ポジションのエントリーとクローズに特化した戦略を用いますが、私たちは機械がこのタスクをより優れた形で遂行できるかどうかを探ります。最初の議論として、ストラテジーテスターの機能と、本タスクで必要となるオブジェクト指向プログラミング(OOP)の原則に慣れていきます。
preview
リプレイシステムの開発 - 市場シミュレーション(第24回):FOREX (V)

リプレイシステムの開発 - 市場シミュレーション(第24回):FOREX (V)

本日は、Last価格に基づくシミュレーションを妨げていた制限を取り除き、このタイプのシミュレーションに特化した新しいエントリポイントをご紹介します。操作の仕組みはすべて、FOREX市場の原理に基づいています。この手順の主な違いは、BidシミュレーションとLastシミュレーションの分離です。ただし、時間をランダム化し、C_Replayクラスに適合するように調整するために使用された方法は、両方のシミュレーションで同じままであることに注意することが重要です。これは良いことです。特にティック間の処理時間に関して、一方のモードを変更すれば、もう一方のモードも自動的に改善されるからです。