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

icon

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

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

新しい記事を追加
最新 | ベスト
preview
母集団最適化アルゴリズム:社会集団の進化(ESG)

母集団最適化アルゴリズム:社会集団の進化(ESG)

多母集団アルゴリズムの構成原理を考えます。この種のアルゴリズムの一例として、新しいカスタムアルゴリズムであるESG (Evolution of Social Groups)を見てみましょう。このアルゴリズムの基本概念、母集団相互作用メカニズム、利点を分析し、最適化問題におけるパフォーマンスを検証します。
preview
プライスアクション分析ツールキットの開発(第3回):Analytics Master EA

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

シンプルな取引スクリプトから完全に機能するエキスパートアドバイザー(EA)に移行することで、取引エクスペリエンスが大幅に向上します。チャートを自動で監視し、バックグラウンドで重要な計算を実行し、さらに2時間ごとに定期的な更新を提供するシステムを想像してみてください。このEAは、的確な取引判断を下すために不可欠な主要指標を分析し、常に最新の情報を取得して戦略を効果的に調整できるようにします。
preview
MQL5 Algo Forgeのご紹介

MQL5 Algo Forgeのご紹介

アルゴリズム取引開発者のための専用ポータル「MQL5 Algo Forge」をご紹介します。MQL5 Algo Forgeは、Git のパワーと、MQL5エコシステム内でプロジェクトを管理・整理するための直感的なインターフェースを兼ね備えています。ここでは、気になる著者をフォローしたり、チームを結成したり、アルゴリズム取引プロジェクトで共同作業を行うことが可能です。
preview
DoEasy-コントロール(第21部):SplitContainerコントロール。パネルセパレータ

DoEasy-コントロール(第21部):SplitContainerコントロール。パネルセパレータ

この記事では、SplitContainerコントロールの補助パネルセパレータオブジェクトのクラスを作成します。
preview
多銘柄多期間指標のDRAW_ARROW描画タイプ

多銘柄多期間指標のDRAW_ARROW描画タイプ

この記事では、多銘柄多期間矢印指標の描画について見ていきます。また、現在のチャートの銘柄/期間と一致しない銘柄/期間で計算された矢印指標のデータを示す矢印を正しく表示するためのクラスメソッドを改善します。
preview
複数の商品を同時に取引する際のリスクバランス

複数の商品を同時に取引する際のリスクバランス

この記事では、初心者が複数の商品を同時に取引する際のリスクバランスを取るためのスクリプトの実装をゼロから書けるようにします。また、経験豊富なユーザーは、この記事で提案されたオプションに関連して、ソリューションを実行するための新しいアイデアが得られるかもしれません。
preview
コードロックアルゴリズム(CLA)

コードロックアルゴリズム(CLA)

この記事では、コードロックを単なるセキュリティメカニズムとしてではなく、複雑な最適化問題を解くためのツールとして再考し、新たな視点から捉えます。セキュリティ装置にとどまらず、最適化への革新的アプローチのインスピレーション源となるコードロックの世界をご紹介します。各ロックが特定の問題の解を表す「ロック」の母集団を作り、機械学習や取引システム開発など様々な分野でこれらのロックを「ピッキング」し、最適解を見つけるアルゴリズムを構築します。
preview
初級から中級まで:テンプレートとtypename(II)

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

この記事では、最も難しいプログラミング状況のひとつである、同じ関数または手続きのテンプレート内で異なる型を使用する方法について説明します。これまで私たちは主に関数に焦点を当ててきましたが、ここで扱う内容はすべて手続きにも役立ち、応用可能です。
preview
制約付きCustom Maxを実装するための一般的な最適化定式化(GOF)

制約付きCustom Maxを実装するための一般的な最適化定式化(GOF)

この記事では、MetaTrader 5端末の設定タブでCustom Maxを選択する際に、複数の目的と制約条件を持つ最適化問題を実装する方法を紹介します。最適化問題の例は、ドローダウンが10%未満、連敗回数が5回未満、1週間の取引回数が5回以上となるように、プロフィットファクター、ネットプロフィット、リカバリーファクターを最大化するといったものです。
preview
MetaTraderのMultibot(第2回):動的テンプレートの改良

MetaTraderのMultibot(第2回):動的テンプレートの改良

前回の記事のテーマを発展させ、より柔軟で機能的なテンプレートを作成することにしました。このテンプレートは、より大きな機能を持ち、フリーランスとして、また外部ソリューションとの統合機能を備えた多通貨多期間EAを開発するためのベースとして効果的に使用することができます。
preview
Candlestick Trend Constraintモデルの構築(第9回):マルチ戦略エキスパートアドバイザー(II)

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

エキスパートアドバイザー(EA)に統合できる戦略の数は、事実上無限と言えます。しかし、戦略を追加するたびにアルゴリズムの複雑さが増していきます。複数の戦略を組み込むことで、EAは多様な市場環境により柔軟に適応し、収益性を向上させる可能性が高まります。本日は、Trend Constraint EAの機能をさらに強化するための取り組みとして、リチャード・ドンチャンが開発した著名な戦略のひとつを対象に、MQL5を活用する方法をご紹介します。
preview
ログレコードをマスターする(第3回):ログを保存するためのハンドラの調査

ログレコードをマスターする(第3回):ログを保存するためのハンドラの調査

この記事では、ログライブラリのハンドラの概念を説明し、その仕組みを理解するとともに、コンソール、データベース、ファイルの3種類の基本的な実装を作成します。今後の記事に向けて、ハンドラの基本構造から実践的なテストまでを網羅し、完全な機能実装の基盤を整えます。
preview
MQL5とPythonで自己最適化エキスパートアドバイザーを構築する(第2回):ディープニューラルネットワークのチューニング

MQL5とPythonで自己最適化エキスパートアドバイザーを構築する(第2回):ディープニューラルネットワークのチューニング

機械学習モデルには、様々な調整可能なパラメータがあります。この連載では、SciPyライブラリを使用して、特定の市場に合うようにAIモデルをカスタマイズする方法を探ります。
preview
ウィリアム・ギャンの手法(第2回):ギャンスクエアインジケーターの作成

ウィリアム・ギャンの手法(第2回):ギャンスクエアインジケーターの作成

ギャンのSquare of 9に基づいて、時間と価格を2乗したインジケーターを作成します。コードを準備し、プラットフォームで異なる時間間隔でインジケーターをテストします。
preview
機械学習の限界を克服する(第1回):相互運用可能な指標の欠如

機械学習の限界を克服する(第1回):相互運用可能な指標の欠如

私たちのコミュニティがAIをあらゆる形態で活用した信頼性の高い取引戦略を構築しようとする努力を、静かに蝕んでいる強力で広範な力があります。本稿では、私たちが直面している問題の一部は、「ベストプラクティス」に盲目的に従うことに根ざしていることを明らかにします。読者に対して、実際の市場に基づくシンプルな証拠を提供することで、なぜそのような行動を避け、むしろドメイン固有のベストプラクティスを採用すべきかを論理的に示します。これによって、私たちのコミュニティがAIの潜在的な可能性を回復するチャンスを少しでも持てるようになるのです。
preview
母集団最適化アルゴリズム:2進数遺伝的アルゴリズム(BGA)(第1回)

母集団最適化アルゴリズム:2進数遺伝的アルゴリズム(BGA)(第1回)

この記事では、2進数遺伝的アルゴリズムやその他の集団アルゴリズムで使用されるさまざまな手法を探ります。選択、交叉、突然変異といったアルゴリズムの主な構成要素と、それらが最適化に与える影響について見ていきます。さらに、データの表示手法と、それが最適化結果に与える影響についても研究します。
preview
MQL5取引ツールキット(第4回):履歴管理EX5ライブラリの開発

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

詳細なステップバイステップのアプローチで拡張履歴管理EX5ライブラリを作成し、MQL5を使用してクローズされたポジション、注文、取引履歴を取得、処理、分類、並べ替え、分析、管理する方法を学びます。
preview
細菌走化性最適化(BCO)

細菌走化性最適化(BCO)

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

外国為替平均回帰戦略のためのカルマンフィルター

カルマンフィルターは、価格変動のノイズを除去して金融時系列の真の状態を推定するために、アルゴリズム取引で用いられる再帰的なアルゴリズムです。新しい市場データに基づいて予測を動的に更新するため、平均回帰のような適応型戦略において非常に有用です。本記事ではまず、カルマンフィルターの計算方法と実装について紹介します。次に、このフィルターをクラシックな平均回帰型の外国為替(FX)戦略に適用する例を示します。最後に、異なる通貨ペアにおいてカルマンフィルターと移動平均を比較し、さまざまな統計分析をおこないます。
preview
MQL5で取引管理者パネルを作成する(第3回):テーマ管理のための組み込みクラスの拡張(II)

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

このディスカッションでは、既存のダイアログライブラリを慎重に拡張して、テーマ管理ロジックを組み込みます。さらに、管理パネルプロジェクトで使用されるCDialog、CEdit、およびCButtonクラスにテーマ切り替えのメソッドを統合します。さらに洞察力のある視点については、引き続きお読みください。
preview
古典的な戦略をPythonで再構築する(第3回):高値更新と安値更新の予測

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

本連載では、古典的な取引戦略を実証的に分析し、AIを用いてそれらの改善が可能かどうかを検証します。本日の議論では、線形判別分析モデルを用いて高値更新と安値更新の予測に挑戦します。
preview
初心者からプロまでMQL5をマスターする(第6回):エキスパートアドバイザー開発の基礎

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

この記事は初心者向け連載の続きです。今回はエキスパートアドバイザー(EA)開発の基本原理について解説します。2つのEAを作成します。1つ目はインジケーターを使わず、予約注文で取引をおこなうEA。2つ目は標準の移動平均線(MA)インジケーターを利用し、成行価格で取引をおこなうEAです。ここでは、前回までの記事の内容をある程度理解していることを前提としています。
preview
DoEasy-コントロール(第12部):基本リストオブジェクト、ListBoxおよびButtonListBox WinFormsオブジェクト

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

この記事では、WinFormsオブジェクトリストの基本オブジェクトと、2つの新しいオブジェクトを作成します。ListBoxとButtonListBoxです。
preview
GIT:それは何か?

GIT:それは何か?

今回は、開発者にとって非常に重要なツールを紹介しましょう。GITに馴染みのない方は、この記事を読んでGITとは何か、MQL5でどのように使用するかをご覧ください。
preview
DoEasy - サービス関数(第1回):価格パターン

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

この記事では、時系列データを使用して価格パターンを検索するメソッドの開発に着手します。パターンには、どのようなタイプのパターンにも共通する、一定のパラメータセットがあります。この種のデータはすべて、基となる抽象パターンのオブジェクトクラスに集約されます。今回は、抽象パターンクラスとピンバーパターンクラスを作成します。
preview
初級から中級へ:演算子

初級から中級へ:演算子

この記事では、主な演算子 について学んでいきます。このトピックは理解しやすいかもしれませんが、コードフォーマットに数式を含める際には非常に重要なポイントがいくつかあります。これらの細部を十分に理解していないと、経験の浅いプログラマーは最終的に自分で解決策を見つけることをあきらめてしまうかもしれません。
preview
時間進化移動アルゴリズム(TETA)

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

これは私自身のアルゴリズムです。本記事では、並行宇宙や時間の流れの概念に着想を得た「時間進化移動アルゴリズム(TETA: Time Evolution Travel Algorithm)」を紹介します。本アルゴリズムの基本的な考え方は、従来の意味でのタイムトラベルは不可能であるものの、異なる現実に至る一連の出来事の順序を選択することができるという点にあります。
preview
MQL5取引ツールキット(第6回):直近で約定された予約注文に関する関数で履歴管理EX5ライブラリを拡張

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

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

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

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

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

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

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

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

リプレイシステムの開発(第47回):Chart Tradeプロジェクト(VI)

ついに、Chart Trade指標はEAと相互作用を開始し、情報をインタラクティブに転送できるようにします。そこで今回は、この指標を改良し、どのEAでも使えるような機能的なものにします。これにより、Chart Trade指標にアクセスし、実際にEAに接続されているかのように操作できるようになります。しかし、以前よりもずっと興味深い方法でそれをおこなうつもりです。
preview
市場シミュレーション(第10回):ソケット(V)

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

これからExcelとMetaTrader 5の接続の実装を始めますが、その前にいくつか押さえておくべき重要なポイントがあります。これを理解しておくことで、なぜ動くのか、なぜ動かないのかで悩む必要がなくなります。そして、PythonとExcelを組み合わせることに尻込みする前に、xlwingsを使ってExcelからMetaTrader 5をある程度操作できる方法を見てみましょう。ここで紹介する内容は主に教育目的ですが、もちろん、ここで取り上げることだけに制限されるわけではありません。
preview
MQL5で取引管理者パネルを作成する(第9回):コード編成(IV):取引管理パネルクラス

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

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

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

複数の戦略をどのように組み合わせれば、最も効果的に強力なアンサンブル戦略を構築できるでしょうか。本記事では、3種類の戦略を1つの取引アプリケーションに統合する方法について検討します。トレーダーは通常、ポジションのエントリーとクローズに特化した戦略を用いますが、私たちは機械がこのタスクをより優れた形で遂行できるかどうかを探ります。最初の議論として、ストラテジーテスターの機能と、本タスクで必要となるオブジェクト指向プログラミング(OOP)の原則に慣れていきます。
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
GMDH (The Group Method of Data Handling):MQL5で多層反復アルゴリズムを実装する

GMDH (The Group Method of Data Handling):MQL5で多層反復アルゴリズムを実装する

この記事では、MQL5におけるGMDH (The Group Method of Data Handling)の多層反復アルゴリズム実装について説明します。
preview
MQL5で取引管理者パネルを作成する(第4回):ログインセキュリティ層

MQL5で取引管理者パネルを作成する(第4回):ログインセキュリティ層

悪意のある人物が取引管理者室に侵入し、世界中の何百万ものトレーダーに貴重な洞察を伝えるために使用されるコンピューターと管理パネルにアクセスしたと想像してください。このような侵入は、誤解を招くメッセージの不正送信や、意図しないアクションをトリガーするボタンのランダムクリックなど、悲惨な結果につながる可能性があります。このディスカッションでは、MQL5のセキュリティ対策と、これらの脅威から保護するために管理パネルに実装した新しいセキュリティ機能について説明します。セキュリティプロトコルを強化することで、通信チャネルを保護し、グローバルな取引コミュニティの信頼を維持することを目指しています。この記事のディスカッションでさらに詳しい情報を見つけてください。
preview
Metatrader 5のWebsockets — Windows APIを使用した非同期クライアント接続

Metatrader 5のWebsockets — Windows APIを使用した非同期クライアント接続

この記事では、MetaTraderプログラム向けに非同期のWebSocketクライアント接続を可能にするカスタムDLL(ダイナミックリンクライブラリ)の開発について解説します。
preview
DoEasy - コントロール(第3部):バインドされたコントロールの作成

DoEasy - コントロール(第3部):バインドされたコントロールの作成

本稿では、基本要素にバインドされた従属コントロールを作成します。開発は、基本的な制御機能を使用して実行されます。さらに、影を持つことができるオブジェクトに適用するとまだいくつかのロジックエラーが発生するため、グラフィック要素の影オブジェクトを少しいじります。