MQL4とMQL5のプログラム記事

icon

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

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

新しい記事を追加
最新 | ベスト
自己適応アルゴリズムの開発(第I部):基本的なパターンの検索
自己適応アルゴリズムの開発(第I部):基本的なパターンの検索

自己適応アルゴリズムの開発(第I部):基本的なパターンの検索

この連載では、ほとんどの市場要因を考慮した自己適応アルゴリズムの開発を示すとともに、これらの状況を体系化してロジックで説明し、取引活動で考慮に入れる方法を示します。非常に単純なアルゴリズムから始めて、徐々に理論を習得し、非常に複雑なプロジェクトに進化していきます。
preview
Rを使って高速化したMQL5の統計分布

Rを使って高速化したMQL5の統計分布

Rで実装されている基本的な統計分布を操作するための関数を紹介します。コーシー、ワイブル、正規、対数正規、ロジスティック、指数、均一、ガンマ分布、カイ 2 乗、中央と非心 beta スチューデントの t 分布、F 分布フィッシャーの離散二項および否定的な二項分布、幾何学、幾何とポアソン分布。これらのモデルに実際の分布の適合性の程度を評価できるように、分布の理論的モーメントを計算する関数があります。
エラーとログの発見
エラーとログの発見

エラーとログの発見

MetaEditor 5にはデバッグ機能が備わっています。しかし、MQL5プログラムを書くとき、個別の値ではなく検証中やオンライン作業中に現れるメッセージをすべて表示したいと思うことがよくあります。ログファイルのサイズが大きい場合、要求されるメッセージを速く簡単に回復するよう自動化するのは疑う余地がありません。本稿では、MQL5プログラム内エラーを発見する方法とログ手法を考察していきます。また、ファイルに単にログインし、ログを簡単に閲覧するためのプログラム、LogMonについての知識も深めていきます。
MetaTrader 5での並列計算
MetaTrader 5での並列計算

MetaTrader 5での並列計算

人類の歴史において時間は高価値であり、われわれはそれを無駄に費やさないよう努力しています。本稿では、マルチ コア プロセッサのコンピュータをご使用の場合、お手元のExpert Advisor の動作スピードを上げる方法について述べていきます。また、提案のメソッド実装には MQL5以外の言語知識は必要とされません。
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第15部): 銘柄オブジェクトのコレクション
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第15部): 銘柄オブジェクトのコレクション

MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第15部): 銘柄オブジェクトのコレクション

本稿では、前の記事で開発した抽象銘柄オブジェクトに基づく銘柄コレクションの作成を検討します。抽象銘柄の子孫は、銘柄データを明確にし、プログラム内での基本的な銘柄オブジェクトプロパティの可用性を定義します。このような銘柄オブジェクトは、グループとの関係によって区別されます。
preview
MQL5を使用してトレンドとチャートパターンを検出する方法

MQL5を使用してトレンドとチャートパターンを検出する方法

この記事では、トレンド(上昇トレンド、下降トレンド、横ばい)やチャートパターン(ダブルトップ、ダブルボトム)などの値動きのパターンをMQL5によって自動的に検出する方法を提供します。
DLLを使用せず、名前のつけられたパイプを使っての MetaTrader 5との通信
DLLを使用せず、名前のつけられたパイプを使っての MetaTrader 5との通信

DLLを使用せず、名前のつけられたパイプを使っての MetaTrader 5との通信

多くの開発者が同じ課題に出会います。安全性の低い DLL を使わずトレーディングターミナルのサンドボックスを手に入れる方法です。もっとも簡単で安全な方法の一つは、通常のファイル処理で動作する標準的な「名前付きパイプ」を使用することです。名前付きパイプにより、プロセッサ内でプログラム間のクライアントサーバー通信を行うことができます。サーバー、クライアント、それらの間のデータ交換、パフォーマンスのベンチマークを含んだ C++ 言語および MQL5 での実用例を見ていきます。
ディープニューラルネットワーク(その4)ニューラルネットワーク分類器のアンサンブル: バギング
ディープニューラルネットワーク(その4)ニューラルネットワーク分類器のアンサンブル: バギング

ディープニューラルネットワーク(その4)ニューラルネットワーク分類器のアンサンブル: バギング

本稿では、バギング構造を持つニューラルネットワークのアンサンブルを構築および訓練する方法について説明します。また、アンサンブルを構成する個々のニューラルネットワーク分類器の超パラメータ最適化の特性も特定されます。このシリーズの前の記事で得られた最適化ニューラルネットワークの品質は、作成されたニューラルネットワークのアンサンブルの品質と比較されます。アンサンブルの分類の質をさらに向上させる可能性が考慮されます。
MQL5におけるトレーディング用コントロールパネルの作成
MQL5におけるトレーディング用コントロールパネルの作成

MQL5におけるトレーディング用コントロールパネルの作成

この記事は、MQL5のコントロールパネルの開発における問題を取り扱っています。インターフェイスは、イベントハンドリングによって管理されています。加えて、管理の柔軟なセットアップ方法が複数あります。コントロールパネルは、ポジションを扱い、また、設定、修正、削除や、未決注文も管理します。
МetaТrader 4のイベント
МetaТrader 4のイベント

МetaТrader 4のイベント

この記事は、注文のオープン、クローズ、変更などのイベントを観測するМetaТrader 4ターミナルのプログラムに着目しており、MQL4でのプログラミングやターミナルを扱う基本的なスキルを持つユーザーを想定して書かれています。
実トレーディングにおける売買ロボットの自動最適化
実トレーディングにおける売買ロボットの自動最適化

実トレーディングにおける売買ロボットの自動最適化

本稿はトレーダーが EA から直接最適化を起動することで Expert Advisor のインプットを最適化できるようになる関数について説明し、そのライブラリを提供します。
トレーダーの統計的クックブック:仮説
トレーダーの統計的クックブック:仮説

トレーダーの統計的クックブック:仮説

本稿では仮説について考察します。それは数理統計学の基本的考え方のひとつです。ここでは多様な仮説が検討され、数学的手法を用いて例を挙げて検証されます。実データはノンパラメトリックな方法を用いて一般化されます。データ処理には Statistica パッケージと移植された ALGLIB MQL5 数値解析ライブラリが使用されています。
MQLベースのエキスパートアドバイザとデータベースの統合 (SQL server、.NET、および C#)
MQLベースのエキスパートアドバイザとデータベースの統合 (SQL server、.NET、および C#)

MQLベースのエキスパートアドバイザとデータベースの統合 (SQL server、.NET、および C#)

この記事では、MQL5 ベースのEAに対して Microsoft SQL server データベースサーバーを使用する方法について説明します。 DLL からの関数のインポートが使用します。 DLL は、Microsoft .NET プラットフォームと C# 言語を使用して作成します。 この記事で使用するメソッドは、マイナーな調整があり、MQL4で書かれているEAに適しています。
マシンラーニング:サポートベクターマシンをトレーディングで利用する方法
マシンラーニング:サポートベクターマシンをトレーディングで利用する方法

マシンラーニング:サポートベクターマシンをトレーディングで利用する方法

「サポートベクターマシン」は生物情報学分野でこれまで長く利用され、複雑なデータセットを評価し、データ分類すに利用できる有用なパターンを抽出するため数学を利用しています。本稿はサポートベクターマシンとは何か、それがどのように役立つか、またなぜ複雑なパターンを抽出するのに便利かを考察します。そしてそれをマーケットに応用する方法、およびトレードを行う上で将来役立つであろう使用方法を調査します。また「サポートベクターマシン学習ツール」を使用し、読者のみなさんがご自身のトレーディングで実験することができる実用例を提供します。
メタトレーダー5の EA の自動最適化
メタトレーダー5の EA の自動最適化

メタトレーダー5の EA の自動最適化

この記事では、MetaTrader5での自己最適化メカニズムの実装について説明します。
グラフィカルインタフェース III: シンプルなボタンと多機能ボタン(チャプター 1)
グラフィカルインタフェース III: シンプルなボタンと多機能ボタン(チャプター 1)

グラフィカルインタフェース III: シンプルなボタンと多機能ボタン(チャプター 1)

ボタンについて考えましょう。ここでは、簡単なボタン、拡張機能を持ったボタン(アイコンボタンとスプリットボタン)、また相互接続されたボタン(ボタングループとラジオボタン)を作成するためのいくつかのクラスの例を説明していきます。そのうえ、それらの能力を拡大するためのコントロールのために既存クラスにいくつかの追加を導入します。
MQL5言語でのTelegram用ボットの作成
MQL5言語でのTelegram用ボットの作成

MQL5言語でのTelegram用ボットの作成

この記事では、MQL5言語でのTelegram用ボットの作成を順を追って説明していきます。この資料は、トレードロボットを自分のモバイルデバイスに繋げたい人にとって、興味深いものになると思います。記事では、トレードシグナルのリンクの実行、サイト上の情報の検索、取引口座の状態や相場、チャートのスクリーンショットをあなたのモバイルデバイスへ送信するボットの例をご紹介します。
確率をトレードギャップに適用する
確率をトレードギャップに適用する

確率をトレードギャップに適用する

この記事では、トレード戦略の作成とテストに確率と数学的統計手法を適用します。 また、価格とランダムウォークの差を使用して、最適なトレードリスクを探します。 価格がゼロドリフトランダムウォークのように振る舞うならば、収益性の高いトレードは不可能であることが証明されています。
インジケーターへのエントリの解決
インジケーターへのエントリの解決

インジケーターへのエントリの解決

トレーダーにはさまざまな事態が発生します。 多くの場合、勝ちトレードは、負けトレードと照らし合わせながら、戦略を再構成することができます。 どちらの場合でも、既知のインジケーターとトレードを比較します。 この記事では、インジケーターを使ったトレードの比較方法を考察します。
インジケーターの開発を依頼するための要件定義を作成する方法
インジケーターの開発を依頼するための要件定義を作成する方法

インジケーターの開発を依頼するための要件定義を作成する方法

最もよくあるトレードシステムの開発の第一歩は、相場行動パターンを識別できるテクニカルインジケーターの作成です。 専門的に開発されたインジケーターを、フリーランスのサービスからオーダーすることができます。 この記事からは、適切な要件定義を作成する方法を学習します。より速く、希望のインジケーターを取得するのに役立ちます.
市場とそのグローバルパターンの物理学
市場とそのグローバルパターンの物理学

市場とそのグローバルパターンの物理学

本稿では、市場を少しでも理解してるシステムはどれでも世界規模で運用できるという前提を試してみます。理論やパターンは発明せずに既知の事実のみを使用し、これらの事実を徐々に数学的分析の言語に翻訳していきます。
拡散と収束の自動探索
拡散と収束の自動探索

拡散と収束の自動探索

本稿では、シンプル、隠れ、拡張、トリプル、クワドラプル、収束のあらゆる種類の拡散、またA、B、Cクラスの拡散を考察し、それらをチャート上で検索及び表示するためのユニバーサル指標が開発されます。
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第14部): 銘柄オブジェクト
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第14部): 銘柄オブジェクト

MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第14部): 銘柄オブジェクト

本稿では、銘柄コレクションを作成するための基本オブジェクトとなる銘柄オブジェクトクラスを作成します。このクラスによって、さらなる分析と比較に必要な銘柄のデータを取得できるようになります。
ZUP - ペサベントパターンのZigZag パート2
ZUP - ペサベントパターンのZigZag パート2

ZUP - ペサベントパターンのZigZag パート2

ZUP - ペサベントパターンのZigZag パート2 - 組み込みツールの詳細
MQL5 クックブック:単一ウィンドウでのマルチ タイム フレームのモニター
MQL5 クックブック:単一ウィンドウでのマルチ タイム フレームのモニター

MQL5 クックブック:単一ウィンドウでのマルチ タイム フレームのモニター

MetaTrader 5 には解析に利用可能なタイムフレームが21あります。そういったウィンドウでは特別なチャートオブジェクトを利用することができます。既存のチャートにそのチャートオブジェクトを入れ、シンボル、タイムフレーム、その他プロパティを設定することができるのです。本稿ではそのようなチャートグラフィカルオブジェクトの詳細情報を提供します。同時にサブウィンドウにマルチチャートオブジェクトを設定することができるようになるコントロール(ボタン)を持つインディケータを作成します。またチャートオブジェクトは正確にサブウィンドウにフィットし、チャートまたはターミナルのサイズが変更されると自動で調整されます。
ディナポリ取引システム
ディナポリ取引システム

ディナポリ取引システム

本稿では、ジョー・ディナポリによって開発されたフィボレベルベースの取引システムについて説明します。システムの背後にあるアイデアと主なコンセプトが説明され、それらをさらに明確にする、シンプルな指標が例として示されます。
トレンドとは何か、相場の構造はトレンドかレンジかで決まるのか?
トレンドとは何か、相場の構造はトレンドかレンジかで決まるのか?

トレンドとは何か、相場の構造はトレンドかレンジかで決まるのか?

トレーダーはよくトレンドやレンジについて話しますが、トレンドやレンジとは何かを理解している人はほとんどおらず、概念を明確に説明できる人はさらにいません。 基本的な用語について考察することは、多くの場合、偏見や誤解の固まりに悩まされます。 しかし、利益を上げたいのであれば、概念の数学的・論理的な意味を理解する必要があります。 今回は、トレンドとレンジの本質に迫るとともに、相場の構造がトレンドなのか、レンジなのか、何か別のものなのかを定義してみたいと思います。 また、トレンド相場やレンジ相場で利益を出すための最適な戦略についても考えていきたいと思います。
DoEasyライブラリの時系列(第41部): 複数銘柄・複数期間指標の例
DoEasyライブラリの時系列(第41部): 複数銘柄・複数期間指標の例

DoEasyライブラリの時系列(第41部): 複数銘柄・複数期間指標の例

本稿では、DoEasyライブラリの時系列クラスを使用して、選択された時間枠で選択された通貨ペアのチャートをサブウィンドウでローソク足として表示する複数銘柄・複数期間指標の例を検討します。ライブラリクラスを少し変更し、プログラム入力の列挙を格納してコンパイル言語を選択するための別のファイルを作成します。
トレーダーの為のライフハック:1つのバックテストは良いが、4つは更に良い
トレーダーの為のライフハック:1つのバックテストは良いが、4つは更に良い

トレーダーの為のライフハック:1つのバックテストは良いが、4つは更に良い

最初のテストをする時にトレーダーには「4つのモードのうちのどれを使ったらいいのだろうか?」という一つの疑問が浮かんでくると思います。モードにはそれぞれにそれぞれの利点と特徴があるので、それを簡単にして、ワンクリックで一度に全てのモードを起動させましょう!この記事では、Win APIとちょっとしたマジックを使って、4つのテストチャートを一度に表示する方法をご紹介します。
いくつかのインジケーターにおけるマルチNullバー再計算
いくつかのインジケーターにおけるマルチNullバー再計算

いくつかのインジケーターにおけるマルチNullバー再計算

この記事は、Nullバーが変化した際に MetaTrader 4クライアントターミナルのインジケーター値の再計算に関する問題に焦点を当てています。複数の再計算前に保存されたプログラムコードを保存させるいくつかの追加プログラムをインジケーターに追加する方法について述べています。
エキスパートアドバイザーの資金管理のためのファンクション
エキスパートアドバイザーの資金管理のためのファンクション

エキスパートアドバイザーの資金管理のためのファンクション

トレード戦略の開発は主に市場に入り、そして、出るためのパターンの探索と、ポジションの維持に注目している。もし自動トレーディングのためにあるパターンをルールとして形式化できれば、トレーダーはポジションの量、マージンのサイズを計算する問題に立ち向かい、さらに貸付資金の安全なレベルを維持して自動モードでオープンなポジションを確実にするであろう。この論説では MQL5 言語を用いてこれらの計算を行う簡単な例を構築する
MetaTrader 4でMQL5ウィザードの既製エキスパートアドバイザーが機能
MetaTrader 4でMQL5ウィザードの既製エキスパートアドバイザーが機能

MetaTrader 4でMQL5ウィザードの既製エキスパートアドバイザーが機能

本稿ではMetaTrader 4のためのMetaTrader 5取引環境の簡単なエミュレータについてお話しします。このエミュレータは標準ライブラリの取引クラスの移行と調整を実装するものです。その結果、MetaTrader 5ウィザードで生成されたエキスパートアドバイザーは、そのままMetaTrader 4でコンパイルして実行することができます。
OpenCL:パラレルワールドへの橋渡し
OpenCL:パラレルワールドへの橋渡し

OpenCL:パラレルワールドへの橋渡し

2012年1月下旬、MetaTrader 5の開発を支援するソフトウェア開発企業はMQL5でのOpenCLのネイティブサポートを発表しました。本稿では解説例を用いてMQL5 環境におけるOpenCL のプログラミング基礎を記述し、処理スピードを上げるプログラムのシンプルな最適化例を提供します。
MQL5 クックブック: インジケーターサブウィンドウコンソールーボタン
MQL5 クックブック: インジケーターサブウィンドウコンソールーボタン

MQL5 クックブック: インジケーターサブウィンドウコンソールーボタン

この記事では、ボタンコンソールでユーザーインターフェースを開発する例を紹介します。ユーザーにインタラクティヴィティ性を伝えるため、ボタンはカーソルが図上にある際に色を変えます。ボタンの上にカーソルがある状態で、ボタンの色は、わずかに暗くなり、ボタンがクリックされた時には、わずかにより暗くなります。さらに、ツールチップをそれぞれのボタンに加え、直感的なインターフェースを作成します。
チャネルを利用したトレードのためのエキスパートアドバイザー
チャネルを利用したトレードのためのエキスパートアドバイザー

チャネルを利用したトレードのためのエキスパートアドバイザー

このエキスパートアドバイザーはチャネルラインをプロットします。上と下のチャネルラインがサポート・レジスタンスレベルとして振る舞います。エキスパートアドバイザーは基準点を設け、値が届くかチャネルラインを越えるかする度にサウンド通知をおこない、関連する印を描きます。フラクタルなフォーメーションにおいて、対応する矢印が最後のバーに現れます。ラインブレイクアウトは大きくなっていくトレンドの可能性を示唆します。このエキスパートアドバイザーは幅広い範囲で批評されます。
Expert Advisor Code で簡単にエラーを検出しリカバリする方法
Expert Advisor Code で簡単にエラーを検出しリカバリする方法

Expert Advisor Code で簡単にエラーを検出しリカバリする方法

Expert Advisor の作成では、コードエラーの検出およびリカバリの質問はひじょうに重要なものです。独特なのは、ちょうど良いタイミングで検出されないエラーが、すでに第一の検証段階にあるトレーディングシステムの貴重な考えを台無しにしてしまうことです。賢明な EA 作成者がだれしもそういった問題を一番最初から考慮に入れるのはそのためです。本稿では、このむつかしい問題に役立つ方法をいくつか詳しく説明します。
ピボットポイント分析に基づくトレーディング戦略
ピボットポイント分析に基づくトレーディング戦略

ピボットポイント分析に基づくトレーディング戦略

「ピボットポイント(PP)」分析は日次で変動の激しい市場に対するもっともシンプルで効率的な戦略です。それはコンピュータがまだない時代にすでに利用されていました。そのころ、株式で働くトレーダーはフレームや計数機で数える以外にADP 機器は何も使えませんでした。
遺伝的アルゴリズムー数学
遺伝的アルゴリズムー数学

遺伝的アルゴリズムー数学

遺伝的アルゴリズムは最適化の問題を解決するために使用されます。このような問題の例として、ニューロネットワークの学習、つまりエラーを最小限にするための、このような重み値の選択を用いることができます。遺伝的アルゴリズムのベースにはランダム探索法があります。
指定されたマジックナンバーによるトータルポジションボリューム計算のための最適化された手法
指定されたマジックナンバーによるトータルポジションボリューム計算のための最適化された手法

指定されたマジックナンバーによるトータルポジションボリューム計算のための最適化された手法

本稿では指定されたシンボルのトータルポジションボリューム計算とマジックナンバーに関する問題について考察します。提案する手法では取引履歴の最小限を要求し、トータルポジションがゼロに最も近い時刻を見つけ、最近の取引についての計算を行います。クライアント端末のグローバル変数による作業も考察します。
トレーダーの為の正規表現
トレーダーの為の正規表現

トレーダーの為の正規表現

正規表現(英語ではregular expressions) とは、正規表現のパターンやマスクと呼ばれる指定されたルールに従ったテキストを処理する為の特別な言語です。この記事では、MQL5のRegularExpressionsライブラリを使用した取引レポートの処理をご紹介し、それを使った最適化結果をデモンストレーションします。