MQL4とMQL5のプログラム記事

icon

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

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

新しい記事を追加
最新 | ベスト
preview
Connexusのリクエスト(第6回):HTTPリクエストとレスポンスの作成

Connexusのリクエスト(第6回):HTTPリクエストとレスポンスの作成

Connexusライブラリ連載第6回目では、HTTPリクエストの構成要素全体に焦点を当て、リクエストを構成する各コンポーネントを取り上げます。そして、リクエスト全体を表現するクラスを作成し、これまでに作成したクラスを統合します。
preview
DoEasy-コントロール(第10部):WinFormsオブジェクト - インターフェイスのアニメーション化

DoEasy-コントロール(第10部):WinFormsオブジェクト - インターフェイスのアニメーション化

ユーザーやオブジェクトとのオブジェクト対話機能を実装して、グラフィカルインターフェイスをアニメーション化するときが来ました。より複雑なオブジェクトを正しく動作させるためにも、新しい機能が必要になります。
preview
どんな市場でも優位性を得る方法(第3回):VISA消費指数

どんな市場でも優位性を得る方法(第3回):VISA消費指数

ビッグデータの世界では、取引戦略を向上させる可能性を秘めた数百万もの代替データセットが存在します。この連載では、最も有益な公共データセットを特定するお手伝いをします。
preview
取引におけるニューラルネットワーク:階層型ベクトルTransformer (HiVT)

取引におけるニューラルネットワーク:階層型ベクトルTransformer (HiVT)

マルチモーダル時系列の高速かつ正確な予測のために開発された階層的ベクトルTransformer (HiVT: Hierarchical Vector Transformer)メソッドについて詳しく説明します。
preview
リスク管理への定量的なアプローチ:PythonとMetaTrader 5を使用してVaRモデルを適用し、多通貨ポートフォリオを最適化する

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

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

MQL5とMetaTrader 5のインジケーターの再定義

MQL5でインジケーター情報を収集する革新的なアプローチにより、開発者がカスタム入力をインジケーターに渡して即座に計算をおこなえるようになり、より柔軟で効率的なデータ分析が可能になります。この方法は、従来の制約を超えてインジケーターで処理される情報に対する制御性を高めるため、アルゴリズム取引において特に有用です。
preview
DoEasy - コントロール(第23部):TabControlおよびSplitContainer WinFormsオブジェクトの改善

DoEasy - コントロール(第23部):TabControlおよびSplitContainer WinFormsオブジェクトの改善

今回は、WinFormsオブジェクトの作業領域の境界線に関連する新しいマウスイベントを追加し、TabControlとSplitContainerコントロールの機能に関するいくつかの欠点を修正することにします。
preview
人工協調探索(ACS)アルゴリズム

人工協調探索(ACS)アルゴリズム

人工協調探索(ACS)は、バイナリ行列と、相互主義的関係と協調に基づく複数の動的な個体群を用いて、最適解を迅速かつ正確に探索する革新的な手法です。捕食者と被食者に対するACS独自のアプローチにより、数値最適化問題で優れた結果を出すことができます。
preview
取引におけるカオス理論(第1回):金融市場における導入と応用、リアプノフ指数

取引におけるカオス理論(第1回):金融市場における導入と応用、リアプノフ指数

カオス理論は金融市場に適用できるでしょうか。この記事では、従来のカオス理論とカオスシステムがビル・ウィリアムズが提案した市場のカオスの概念とどのように異なるかについて考察します。
preview
ダーバスボックスブレイクアウト戦略における高度な機械学習技術の探究

ダーバスボックスブレイクアウト戦略における高度な機械学習技術の探究

ニコラス・ダーバスによって考案された「ダーバスボックスブレイクアウト戦略」は、株価が一定の「ボックス」レンジを上抜けたときに強い上昇モメンタムが示唆されることから、買いシグナルを見極めるためのテクニカル取引手法です。本記事では、この戦略コンセプトを例として用い、機械学習の3つの高度な技術を探っていきます。それは、取引をフィルタリングするのではなくシグナルを生成するために機械学習モデルを使用すること、離散的ではなく連続的なシグナルを用いること、異なる時間枠で学習されたモデルを使って取引を確認すること、の3点です。
preview
MQL5における高度な注文執行アルゴリズム:TWAP、VWAP、アイスバーグ注文

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

MQL5フレームワークで、機関投資家向けの高度な執行アルゴリズム(TWAP、VWAP、アイスバーグ注文)を小口トレーダー向けに提供します。統合された実行マネージャーとパフォーマンスアナライザーを用いて、注文の分割(スライシング)や分析をよりスムーズかつ正確に行える環境を提供します。
preview
リプレイシステムの開発 - 市場シミュレーション(第24回):FOREX (V)

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

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

多通貨エキスパートアドバイザーの開発(第5回):可変ポジションサイズ

前回開発中のエキスパートアドバイザー(EA)は、固定されたポジションサイズのみを使用して取引をおこなうことができました。これはテスト用には許容できますが、実際の口座で取引する場合にはお勧めできません。可変のポジションサイズで取引できるようにしましょう。
preview
Candlestick Trend Constraintモデルの構築(第5回):通知システム(パート2)

Candlestick Trend Constraintモデルの構築(第5回):通知システム(パート2)

今日は、PythonとTelegram Bot APIと連携して、MQL5のパワーを活用した MetaTrader 5指標通知のための実用的なTelegram統合について説明します。ポイントが見逃がされることがないように、すべてを詳細に説明します。このプロジェクトが終了する頃には、ご自分のプロジェクトに応用できる貴重な洞察を得ることができるでしょう。
preview
初級から中級まで:配列(I)

初級から中級まで:配列(I)

この記事は、これまでに議論してきた内容と、新たな研究段階との橋渡しとなるものです。この記事を理解するためには、前回までの記事を読んでおく必要があります。ここで提示されるコンテンツは、教育目的のみに使用されることを意図しています。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを利用することは避けてください。
preview
データサイエンスとML(第41回):YOLOv8を用いた外国為替および株式市場のパターン検出

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

金融市場でパターンを検出するのは、チャート上の内容を確認する必要があるため困難ですが、これは画像の制限によりMQL5では実行が困難です。この記事では、最小限の労力でチャート上のパターンを検出するのに役立つ、Pythonで作成された適切なモデルについて説明します。
preview
知っておくべきMQL5ウィザードのテクニック(第72回):教師あり学習でMACDとOBVのパターンを活用する

知っておくべきMQL5ウィザードのテクニック(第72回):教師あり学習でMACDとOBVのパターンを活用する

前回の記事で紹介したMACDとOBVのインジケーターペアをフォローアップし、今回はこのペアを機械学習でどのように強化できるかを見ていきます。MACDとOBVは、それぞれトレンド系と出来高系という補完的なペアです。私たちの機械学習アプローチでは、畳み込みニューラルネットワーク(CNN)を使い、カーネルとチャンネルのサイズを調整する際に指数カーネルを利用して、このインジケーターペアの予測をファインチューニングします。今回もこれまでと同様に、MQL5ウィザードでエキスパートアドバイザー(EA)を組み立てられるようにしたカスタムシグナルクラスファイル内で実装しています。
preview
化学反応最適化(CRO)アルゴリズム(第1回):最適化におけるプロセス化学

化学反応最適化(CRO)アルゴリズム(第1回):最適化におけるプロセス化学

この記事の最初の部分では、化学反応の世界に飛び込み、最適化への新しいアプローチを発見します。化学反応最適化(CRO)は、熱力学の法則から導き出された原理を使用して効率的な結果をもたらします。この革新的な方法の基礎となった分解、合成、その他の化学プロセスの秘密を明らかにします。
preview
リプレイシステムの開発(第62回):サービスの再生(III)

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

この記事では、実際のデータを使用する際にアプリケーションのパフォーマンスに影響を及ぼす可能性のある「ティック過剰」の問題について取り上げます。このティック過剰は、1分足を適切なタイミングで構築するうえで支障となることがよくあります。
preview
Candlestick Trend Constraintモデルの構築(第5回):通知システム(パート1)

Candlestick Trend Constraintモデルの構築(第5回):通知システム(パート1)

本連載で作成するTrend Constraint指標からのシグナル通知を受信するためのTelegramとWhatsAppの統合を説明するために、メインのMQL5コードを特定のコードスニペットに分解します。これにより、トレーダーや開発者(初心者か経験豊富かを問わず)が簡単にコンセプトを把握できるようになります。まず、MetaTrader 5の通知に関する設定と、ユーザーにとってのその意義について説明します。これは、開発者が自分のシステムにさらに応用するためのメモを事前に取るのに役立ちます。
preview
高度なICT取引システムの開発:インジケーターへのオーダーブロックの実装

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

この記事では、オーダーブロックのミティゲーションを検出し、描画し、アラートを発するインジケーターの作り方を学びます。また、チャート上でこれらのブロックを正確に特定する方法や、正確なアラートの設定方法、価格の動きをより理解しやすくするために矩形で位置を可視化する方法についても詳しく解説します。このインジケーターは、スマートマネーコンセプトやインナーサークルトレーダーの手法を用いるトレーダーにとって重要なツールとなるでしょう。
preview
外国為替平均回帰戦略のためのカルマンフィルター

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

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

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

この記事では、1分足のティックシミュレーションに関する問題を最終的に解決し、実際のティックと共存できるようにします。これにより、将来的なトラブルを回避することが可能になります。ここで提示される資料は教育目的のみに使用されます。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを閲覧することは避けてください。
preview
ニューラルネットワークの実践:最小二乗法

ニューラルネットワークの実践:最小二乗法

この記事では、数式がコードで実装されたときよりも見た目が複雑になる理由など、いくつかのアイデアについて説明します。さらに、チャートの象限を設定する方法と、MQL5コードで発生する可能性のある1つの興味深い問題についても検討します。正直に言うと、まだどう説明すればいいのかよくわかりません。とにかく、コードで修正する方法を紹介します。
preview
取引におけるニューラルネットワーク:価格変動予測におけるマスクアテンションフリーアプローチ

取引におけるニューラルネットワーク:価格変動予測におけるマスクアテンションフリーアプローチ

この記事では、Mask-Attention-Free Transformer (MAFT)法と、それを取引分野に応用する可能性について説明します。従来のTransformerはシーケンスを処理する際にマスキングを必要としますが、MAFTはこのマスキングを不要にすることでアテンション処理を最適化し、計算効率を大幅に向上させています。
preview
MQL5 Algo Forgeのご紹介

MQL5 Algo Forgeのご紹介

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

ニューラルネットワークの実践:割線

理論的な部分ですでに説明したように、ニューラルネットワークを扱う場合、線形回帰と導関数を使用する必要があります。なぜでしょうか。その理由は、線形回帰は現存する最も単純な公式の1つだからです。本質的に、線形回帰は単なるアフィン関数です。しかし、ニューラルネットワークについて語るとき、私たちは直接線形回帰の効果には興味がありません。この直線を生み出す方程式に興味があるのです。作られた線にはそれほど興味がありません。私たちが理解すべき主要な方程式をご存じですか。ご存じでなければ、この記事を読んで理解することをお勧めします。
preview
ウィリアム・ギャンの手法(第2回):ギャンスクエアインジケーターの作成

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

ギャンのSquare of 9に基づいて、時間と価格を2乗したインジケーターを作成します。コードを準備し、プラットフォームで異なる時間間隔でインジケーターをテストします。
preview
MQL5で取引管理者パネルを作成する(第6回):取引管理パネル(II)

MQL5で取引管理者パネルを作成する(第6回):取引管理パネル(II)

この記事では、多機能管理パネルの取引管理パネル(Trade Management Panel)を強化します。コードを簡素化し、読みやすさ、保守性、効率性を向上させる強力なヘルパー関数を導入します。また、追加のボタンをシームレスに統合し、インターフェイスを強化して、より幅広い取引タスクを処理する方法も紹介します。ポジションの管理、注文の調整、ユーザーとのやり取りの簡素化など、このガイドは、堅牢でユーザーフレンドリーな取引管理パネルの開発に役立ちます。
preview
リプレイシステムの開発(第29回):エキスパートアドバイザープロジェクト - C_Mouseクラス(III)

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

C_Mouseクラスを改良した後は、分析のためのまったく新しいフレームワークを作るためのクラスを作ることに集中しましょう。この新しいクラスを作るのに、継承やポリモーフィズムは使用しません。その代わりに、価格線に新しいオブジェクトを追加します。それがこの記事でやろうとしていることです。次回は、分析結果を変更する方法について見るつもりです。これらはすべて、C_Mouseクラスのコードを変更することなくおこなわれます。実際には、継承やポリモーフィズムを使用すれば、もっと簡単に実現できるでしょう。しかし、同じ結果を得る方法は他にもあります。
preview
リプレイシステムの開発(第70回):正しい時間を知る(III)

リプレイシステムの開発(第70回):正しい時間を知る(III)

この記事では、CustomBookAdd関数を適切かつ効果的に使う方法について見ていきます。一見シンプルに見えるこの関数ですが、実際には多くの細かな注意点があります。たとえば、マウスインジケーターに対してカスタム銘柄がオークション中なのか、取引中なのか、市場が閉まっているのかを伝えることができます。ここで提示されるコンテンツは、教育目的のみに使用されることを意図しています。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを利用することは避けてください。
preview
行列分解:より実用的なモデリング

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

行と列ではなく列のみが指定されているため、行列モデリングが少し奇妙であることに気付かなかったかもしれません。行列分解を実行するコードを読むと、これは非常に奇妙に見えます。行と列がリストされていることを期待していた場合、因数分解しようとしたときに混乱する可能性があります。さらに、この行列モデリング方法は最適ではありません。これは、この方法で行列をモデル化すると、いくつかの制限に遭遇し、より適切な方法でモデル化がおこなわれていれば必要のない他の方法や関数を使用せざるを得なくなるためです。
preview
多通貨エキスパートアドバイザーの開発(第4回):仮想注文の保留と状況の保存

多通貨エキスパートアドバイザーの開発(第4回):仮想注文の保留と状況の保存

多通貨EAの開発を始めてから、すでに一定の成果を上げ、コードの改良を何度か繰り返すことができました。ただし、EAは保留中注文を扱うことができず、端末の再起動後に動作を再開することができませんでした。これらの機能を追加しましょう。
preview
市場イベント予測のための因果ネットワーク分析(CNA)とベクトル自己回帰モデルの例

市場イベント予測のための因果ネットワーク分析(CNA)とベクトル自己回帰モデルの例

この記事では、MQL5で因果ネットワーク分析(CNA: Causal Network Analysis)とベクトル自己回帰(VAR: Vector Autoregression)デルを使用した高度な取引システムを実装するための包括的なガイドを紹介します。これらの手法の理論的背景をカバーし、取引アルゴリズムにおける主要な機能を詳細に説明し、実装のためのサンプルコードも含んでいます。
preview
初心者からプロまでMQL5をマスターする(第6回):エキスパートアドバイザー開発の基礎

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

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

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

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

MQL5で自己最適化エキスパートアドバイザーを構築する(第4回):動的なポジションサイズ調整

アルゴリズム取引を成功させるには、継続的かつ学際的な学習が必要です。しかし、その可能性は無限であるがゆえに、明確な成果が得られないまま、何年もの努力を費やしてしまうこともあります。こうした課題に対応するため、私たちは徐々に複雑さを導入するフレームワークを提案します。これにより、トレーダーは不確実な結果に対して無限の時間を費やすのではなく、戦略を反復的に洗練させることが可能になります。
preview
MQL5での取引戦略の自動化(第15回):プライスアクションハーモニックCypherパターンの可視化

MQL5での取引戦略の自動化(第15回):プライスアクションハーモニックCypherパターンの可視化

この記事では、CypherハーモニックパターンのMQL5における自動化について探究し、その検出方法とMetaTrader 5チャート上での可視化を詳しく解説します。スイングポイントを特定し、フィボナッチに基づいたパターンを検証し、明確な視覚的注釈とともに取引を実行するエキスパートアドバイザー(EA)を実装します。記事の最後では、効果的な取引のためのバックテストおよび最適化方法についても説明します。
preview
リプレイシステムの開発(第30回):エキスパートアドバイザープロジェクト - C_Mouseクラス(IV)

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

今日は、プログラマーとしての職業生活のさまざまな段階で非常に役立つテクニックを学びます。多くの場合、制限されているのはプラットフォーム自体ではなく、制限について話す人の知識です。この記事では、常識と創造性があれば、クレイジーなプログラムなどを作成することなく、MetaTrader 5 プラットフォームをより面白くて多用途にし、シンプルでありながら安全で信頼性の高いコードを作成できることを説明します。創造力を駆使して、ソース コードを1行も削除したり追加したりすることなく、既存のコードを変更します。
preview
リプレイシステムの開発(第44回):Chart Tradeプロジェクト(III)

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

前回の記事では、OBJ_CHARTで使用するテンプレートデータの操作方法について解説しました。ただし、あの記事ではトピックの概要に焦点を当て、詳細な部分には触れていませんでした。これは、説明をよりシンプルにするために、非常に簡略化された手法を用いたからです。物事は一見シンプルに見えることが多いですが、実際にはそうではないケースもあり、全体を正確に理解するためには、まず最も基本的な部分をしっかり押さえる必要があります。