MQL5プログラミング記事

icon

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

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

新しい記事を追加
最新 | ベスト
MQL5における移動平均計算パフォーマンス検証
MQL5における移動平均計算パフォーマンス検証

MQL5における移動平均計算パフォーマンス検証

最初に「移動平均」インディケータが作成されて以来、多くのインディケータが登場してきました。それらの多くは類似の平滑化手法を使用していますが、異なる移動平均アルゴリズムの性能については研究されていません。本稿ではMQL5で「移動平均」を使用する可能な方法について考察し、それらのパフォーマンスを比較していきます。
手動取引のサポーターを作成する
手動取引のサポーターを作成する

手動取引のサポーターを作成する

近年、為替市場の為のトレードロボットの数は、雪だるま式に増えています。これらのトレードロボットの中には、様々な概念や戦略がありますが、負けない人工知能の作成は誰も成し遂げていません。その為、多くのトレーダーは手動取引を支持しています。しかし、このようなスペシャリストの為に、トレードパネルと呼ばれるロボットアシスタントが作成されています。この記事では、トレードパネルの作成例を『ゼロから』ご紹介していきます。
MQL5 クックブック: 連想配列またはクイック データアクセスのための辞書の実装
MQL5 クックブック: 連想配列またはクイック データアクセスのための辞書の実装

MQL5 クックブック: 連想配列またはクイック データアクセスのための辞書の実装

本稿はユニークなキーによってエレメントへのアクセスが可能となる特殊なアルゴリズムについて説明します。キーとして任意のベースデータタイプが使用可能です。たとえば文字列や整数変数として表すことが可能です。そのようなデータのコンテナは一般的に辞書または連想配列と呼ばれます。それにより課題解決に対するより簡単で効果的な方法が提供されます。
相場パターンを見つけるための計量的アプローチ:自己相関、ヒートマップ、散布図
相場パターンを見つけるための計量的アプローチ:自己相関、ヒートマップ、散布図

相場パターンを見つけるための計量的アプローチ:自己相関、ヒートマップ、散布図

この記事では、季節的特徴の拡張である自己相関ヒートマップと散布図を紹介します。 この記事の目的は、"マーケットメモリ"が季節的な性質を持ち、任意のオーダーの増分の最大相関によって表現されることを示すものです。
数多くのインジケーターバッファーを使った複数通貨対応インジケーターの作成
数多くのインジケーターバッファーを使った複数通貨対応インジケーターの作成

数多くのインジケーターバッファーを使った複数通貨対応インジケーターの作成

FOREX市場のクラスター分析への関心が近年高まりつつあります。MQL5は、通貨ペアの動きの傾向を調査する新しい可能性を開きました。MQL4とは異なる、重要な特徴の一つとしてMQL5が持つのは、インジケーターバッファーを無限に使用することができる点です。この記事にて、複数通貨インジケーターの作成方法を紹介します。
MetaTrader 5のマルチ通貨モードの実行
MetaTrader 5のマルチ通貨モードの実行

MetaTrader 5のマルチ通貨モードの実行

長い間、マルチ通貨分析やマルチ通貨トレーディングは人々の関心の的でした。完全なマルチ通貨システムを達成する機会は、MetaTrader5とMQL5プログラミング言語のリリースによりようやく可能になりました。この記事では、複数のシンボルにおけるすべてのティックを処理し分析する方法を紹介します。例として、USDドルインデックスのマルチ通貨RSIインジケーターを見てみます。
パネルを改善してみましょう(CAppDialog / CWndClientからの継承、背景の色の変更、透明性の追加)
パネルを改善してみましょう(CAppDialog / CWndClientからの継承、背景の色の変更、透明性の追加)

パネルを改善してみましょう(CAppDialog / CWndClientからの継承、背景の色の変更、透明性の追加)

CAppDialogの使用の学習を続けます。ここでは、グラフィックパネルの背景の色、枠線、タイトルを設定する方法を学びます。順を追って、チャート上でアプリケーションウィンドウを移動するときに、アプリケーションウィンドウに透明性を追加する方法を見ていきます。次に、CAppDialogまたはCWndClientから子孫を作成し、コントロールを操作する際の新しい特徴を見ていきます。最後に、新しいプロジェクトを新しい視点から見ていきます。
preview
ニューラルネットワークが簡単に

ニューラルネットワークが簡単に

人工知能は、多くの場合、幻想的で複雑で理解できない何かに関連付けられます。 同時に、人工知能は日常生活の中でますます言及されています。 ニューラルネットワークの使用に関する成果に関するニュースは、多くのさまざまなメディアで取り上げられています。 この記事の目的は、誰でもニューラルネットワークを作成し、トレードでAIの成果をあげることを示すためにあります。
SQL と MQL5:SQLite データベースとの連携
SQL と MQL5:SQLite データベースとの連携

SQL と MQL5:SQLite データベースとの連携

本稿はご自身のプロジェクトで SQL を利用することに興味のある開発者を対象としています。ここではSQLite の機能性とメリットについて説明します。SQLite の特別な知識は必要ありませんが、SQL の最小限の知識があれば役に立つと思います。
外国為替取引の背後にある基本的な数学
外国為替取引の背後にある基本的な数学

外国為替取引の背後にある基本的な数学

この記事は、外国為替取引の主な機能をできるだけ簡単かつ迅速に説明し、初心者といくつかの基本的なアイデアを共有することを目的としています。また、簡単なインディケータ―の開発を紹介するとともに、取引コミュニティで最も興味をそそる質問への回答を試みます。
エキスパートアドバイザの自己最適化:進化的遺伝的アルゴリズム
エキスパートアドバイザの自己最適化:進化的遺伝的アルゴリズム

エキスパートアドバイザの自己最適化:進化的遺伝的アルゴリズム

この記事では、進化的アルゴリズムにある主要な原理と、その多様性および特徴について検証します。実験を使用した簡単なエキスパートアドバイザの例では、最適化が私達の取引システムに何をもたらすかを見ていきます。遺伝的、進化的、またその他のタイプの最適化を実装するプログラムのセットを検証し、取引システムのパラメータの最適化や予測変数のセットの最適化時の適用例をご紹介します。
preview
CatBoostアルゴリズムを使用した外国為替市場の季節によるパターンの特定

CatBoostアルゴリズムを使用した外国為替市場の季節によるパターンの特定

本稿では、時間フィルタを使用した機械学習モデルの作成について検討し、このアプローチの有効性について説明します。人的要因はモデルに特定の曜日の特定の時間に取引するように指示するだけで排除できるようになっています。パターン検索は、別のアルゴリズムで提供できます。
DLLなしのMT4およびMT5用ネイティブTwitterクライアント
DLLなしのMT4およびMT5用ネイティブTwitterクライアント

DLLなしのMT4およびMT5用ネイティブTwitterクライアント

ツイートにアクセスしたり、Twitterに取引シグナルを投稿したりしたかったことがおありですか?検索をおやめください。この連載では、DLLを使用せずにそれを行う方法を示します。MQLを使用してTweeter APIを実装する旅をお楽しみください。この第1部では、Twitter APIにアクセスする際の認証と承認の栄光の道をたどります。
名前つきパイプを使用したMetaTrader 5端末間コミュニケーションにDLLを使用しないソリューション
名前つきパイプを使用したMetaTrader 5端末間コミュニケーションにDLLを使用しないソリューション

名前つきパイプを使用したMetaTrader 5端末間コミュニケーションにDLLを使用しないソリューション

本稿は名前つきパイプを使用したMetaTrader 5端末同士のプロセス間コミュニケーションの実装方法について述べていきます。名前付きパイプを使用するにはCNamedPipesクラスが作成されます。 その使用検証と接続計測のために、ティックインディケータ、サーバー、クライアントスクリプトが提供されます。リアルタイムのクオートには名前付きパイプの使用で十分です。
preview
MQL5を使用してトレンドとチャートパターンを検出する方法

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

この記事では、トレンド(上昇トレンド、下降トレンド、横ばい)やチャートパターン(ダブルトップ、ダブルボトム)などの値動きのパターンをMQL5によって自動的に検出する方法を提供します。
Google Chart APIからチャートを構築するためのライブラリ
Google Chart APIからチャートを構築するためのライブラリ

Google Chart APIからチャートを構築するためのライブラリ

さまざまなタイプのダイアグラムの構築がマーケット状況を分析しトレーディングシステムを検証する主要部分です。往々にしてみばえのよいダイアグラムを構築するにはデータのアウトプットをファイルに整理することが必要です。その後 MS Excelなどアプリケーションで使用していくのです。これはあまり便利な方法ではなく、動的にデータを更新する機能を奪います。Google Charts APIは、サーバーに特別な依頼を送るとオンラインでチャートを作成する手段を提供してくれます。本稿では、そのような依頼を作成し、チャートをGoogleサーバーから取得するプロセスを自動化していきます。
チャート上で選択したシグナルの取引を分析する方法
チャート上で選択したシグナルの取引を分析する方法

チャート上で選択したシグナルの取引を分析する方法

トレードシグナルサービスは、飛躍的に発展しています。シグナルプロバイダーに自分の資金を任せつつも、デポジットを失うリスクは最小限にしたいものです。このトレードシグナルについて理解するにはどうればいいのでしょうか?また利益を得ることができるシグナルを見つけるにはどうしたらいいのでしょうか?この記事では、チャート上でトレードシグナルを視覚的に分析する為のツールを作成する方法をご紹介します。
ニューラルネットワーク:理論~実践
ニューラルネットワーク:理論~実践

ニューラルネットワーク:理論~実践

今日、トレーダーはだれしもニューラルネットワークについて聞いたことがあり、それを使うのがかっこいいということがわかっています。多数の人がニューラルネットワークを利用してディールを行える人はスーパーヒューマンだと思っています。本稿ではニューラルネットワークのアーキテクチャを説明し、アプリケーションについて記述し、実用例を示していこうと思います。
同時に2方向で機能するためのユニバーサル RSI インジケータ
同時に2方向で機能するためのユニバーサル RSI インジケータ

同時に2方向で機能するためのユニバーサル RSI インジケータ

トレーディングアルゴリズムを開発するとき、しばしばある問題に遭遇します。その一つが、トレンド/レンジの始まりと終点を決定する方法です。 この記事では、さまざまな種類のシグナルを結合するユニバーサルインジケータを作成します。 今回はEAのトレードシグナルを取得するプロセスをできるだけ簡素化します。 1つのインジケータを組み合わせた例を挙げます。
preview
SQLite: MQL5 での SQL データベースのネイティブな処理

SQLite: MQL5 での SQL データベースのネイティブな処理

トレード戦略の開発には、大量のデータの処理が関連しています。 今では、MQL5 で直接 SQLite に基づいた SQL クエリを使用してデータベースを操作できるようになりました。 このエンジンの重要な特徴は、データベース全体がユーザーのPC上の単一のファイルに配置されるということです。
MQL5でのエラー処理とロギング
MQL5でのエラー処理とロギング

MQL5でのエラー処理とロギング

この記事では、ソフトウェアにおける一般的なエラー処理の問題について述べていきます。また、ロギングについて言及し、MQL5のツールによるデータロガーの実装例をデモンストレーションします。
「新規バー」イベントハンドラ
「新規バー」イベントハンドラ

「新規バー」イベントハンドラ

MQL5プログラミング言語はまったく新しいレベルで問題解決をする能力があります。 そういったタスクにして、もオブジェクト指向プログラミングのおかげでそれはすでに高いレベルに引きあげることができるのです。本稿では、かなり力強い多目的ツールに変換されたチャートの新規バーチェックの特にシンプルな例を取り上げます。どんなツールでしょうか?本稿でみつけてください。
MQL5のExpert Advisorsのテストと最適化を行うためのガイド
MQL5のExpert Advisorsのテストと最適化を行うためのガイド

MQL5のExpert Advisorsのテストと最適化を行うためのガイド

ここでは、コードエラーを見つけ解決するための段階的な手順について説明します。またExpert Advisor(以下EA)への入力パラメータのテストと最適化の手順についても説明します。Meta Trader 5のクライアント端末のStrategy Testerの使い方がわかれば、ご自身のEAに最も適したシンボルや入力パラメータセットを見つけることができるようになります。
GUIのレイアウトとコンテナの使用: CBoxクラス
GUIのレイアウトとコンテナの使用: CBoxクラス

GUIのレイアウトとコンテナの使用: CBoxクラス

この記事は、CBoxクラスによるレイアウトマネージャーを使って、レイアウトとコンテナに基づくGUIの生成の代替手法について取り扱います。CBoxクラスは、GUIパネルの必要不可欠なコンテナとして機能する補助コントロールです。グラフィカルパネルのデザインを容易にし、ときとして、コーディングの時間を割きます。
フラグパターン
フラグパターン

フラグパターン

本稿では、フラグ、ペナント、ウェッジ、長方形、三角形、収縮三角形、膨張三角形のパターンを分析します。それらの類似点と相違点を分析するだけでなく、パターンを検出するための指標、及びその有効性を迅速に評価するためのテスター指標を作成します。
リスク設定に基づいてSL/TPを設定するクロスプラットフォームEAの開発
リスク設定に基づいてSL/TPを設定するクロスプラットフォームEAの開発

リスク設定に基づいてSL/TPを設定するクロスプラットフォームEAの開発

本稿では、リスク値に基づいて自動的にエントリロットを計算するエキスパートアドバイザー(EA)を作成します。このEAでは、選択したSL(ストップロス)に対する比率を持つTP(テイクプロフィット)が自動的に配置されます。言い換えれば、3:1、4:1などの選択した比率に基づいたTPが計算されます。
トレーリングストップを採用した利益を生み出すアルゴリズム
トレーリングストップを採用した利益を生み出すアルゴリズム

トレーリングストップを採用した利益を生み出すアルゴリズム

この記事では、異なるエントリーとトレーリングストップを使ったエグジットで利益を生むアルゴリズムの可能性について学んでいきたいと思います。エントリーのタイプとして、ランダムエントリーとリバースエントリーを使用します。使う逆指値注文はトレーリングストップとトレーリングテイクです。この記事では、年間約30%の利益を生み出すアルゴリズムを紹介します。
MQL5: MetaTrader5における、分析と商品先物取引員会レポートの処理
MQL5: MetaTrader5における、分析と商品先物取引員会レポートの処理

MQL5: MetaTrader5における、分析と商品先物取引員会レポートの処理

この記事では、CFTCレポート分析ツールを開発していきます。以下の問題の解決を図っていきます:中間処理や変換なしに、公正取引委員会からのCFTCレポートデータの直接使用を可能にするインジケーターの開発という点です。さらに、これとは異なった目的のために使用することができます:トレーディング戦略の実行においてエキスパートアドバイザーを使用する際に、自動的な分析を作動するスクリプトにおいて、インジケーターを作図し、そのほかのインジケータをデータとして図示することもできます。
マーケット理論
マーケット理論

マーケット理論

現在のところ、どの商品市場や相場にも適応可能で、ミクロでもマクロでも使うことができるような完璧な相場理論というものは存在していません。この記事では、利益分析に基づいた新しい相場理論のエッセンスを紹介し、現在の価格変化とメカニズムの原則を明らかにします。実際の価格上でコントロール可能なバーチャルプライスの連鎖を形成することにより、最適な値を見つけることができます。相場の形成と変化のメカニズムも紹介します。
MQL5 クックブック: 板情報の実装
MQL5 クックブック: 板情報の実装

MQL5 クックブック: 板情報の実装

この記事では、板情報(DOM)を利用する方法を示します。また、CMarketBookクラスの動作についても説明します。これは、MQL5クラスの標準ライブラリを拡張し、DOMを使用する際の便利な方法となります。
エキスパートアドバイザとインディケータに素早く制御パネルを追加する方法
エキスパートアドバイザとインディケータに素早く制御パネルを追加する方法

エキスパートアドバイザとインディケータに素早く制御パネルを追加する方法

自分のエキスパートアドバイザやインディケータに便利な制御パネルを追加したいけど、何をどうしたら良いかわかりませんか?この記事では、貴方のMQL4/MQL5プログラムに入力パラメータを持つダイアログパネルを『取り付ける方法』をステップバイステップでご紹介します。
MQL5をプログラミングの基礎: ターミナルのグローバル変数
MQL5をプログラミングの基礎: ターミナルのグローバル変数

MQL5をプログラミングの基礎: ターミナルのグローバル変数

ターミナルのグローバル変数は、高度で信頼性の高いEAを開発するために欠かせないツールです。グローバル変数なしで MQL5で EA の開発をすることは想像を絶します。
MQL5 クックブック:典型的なチャートイベントの処理
MQL5 クックブック:典型的なチャートイベントの処理

MQL5 クックブック:典型的なチャートイベントの処理

本稿では典型的なチャートイベントを考察し、その処理例についてお話します。マウスのイベント、キーストローク、グラフィックオブジェクトの作成/変更/消去、チャートおよびグラフィックオブジェクト上でのマウスのクリック、マウスでのグラフィックオブジェクト移動、テキストフィールドでのテキスト編集終了、チャート上でのイベント修正を取り上げます。考察する各イベントに対応する MQL5 プログラム例も提供します。
フィッシャートランスフォームの適用とMetaTrader5の市場分析に対するフィッシャートランスフォーム
フィッシャートランスフォームの適用とMetaTrader5の市場分析に対するフィッシャートランスフォーム

フィッシャートランスフォームの適用とMetaTrader5の市場分析に対するフィッシャートランスフォーム

市場サイクルの確率密度関数(PDF)がガウス性では残らず、むしろ正弦波のPDGとして維持され、大半のインジケーターがその市場サイクルPDFがガウス性であると想定しています。その解決策は、フィッシャートランスフォームを使用することです。フィッシャートランスフォームは、いかなる波形のPDFをガウス性に変換します。この記事は、フィッシャートランスフォームの裏にある数学と、対するフィッシャートランスフォーム、トレーディングへの適用例を紹介します。反対のフィッシャートランスフォームに基づく所有のトレーディングシグナルモジュールが紹介され、評価されます。
かぎ足チャート用インジケーター
かぎ足チャート用インジケーター

かぎ足チャート用インジケーター

この記事は、様々なチャートオプションや追加関数を持つかぎ足チャート用インジケーターを紹介します。また、インジケーターのチャート化原則やMQL5実装の特徴なども紹介されています。トレーディングにおける実装の人気なものは、トレンド線から押しのけ、断続的に「肩」をあげ、「腰」を下げるYin/Yang交換戦略です。
トレーダーの為のライフハック:1つのバックテストは良いが、4つは更に良い
トレーダーの為のライフハック:1つのバックテストは良いが、4つは更に良い

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

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

ランダムウォーク理論とトレンドインディケータ

ランダムウォークは現実のマーケットデータと実によく似ていますが、大きな特徴がいくつかあります。本稿ではコインン投げゲームを使用するシミュレーションでランダムウォークのプロパティを考察します。データのプロパティを調査するためトレンドインディケータを作成します。
インジケータのバッファや配列を使わずにヒストグラムを形成する統計分布
インジケータのバッファや配列を使わずにヒストグラムを形成する統計分布

インジケータのバッファや配列を使わずにヒストグラムを形成する統計分布

この記事では、グラフィックメモリの助けを借りて、相場の統計的分布ヒストグラムをプロットする可能性について説明します。サンプルのヒストグラムと mql5のグラフィカルオブジェクトの「非表示」関数があります。
エキスパートアドバイザーの注文と希望の結果の取得方法
エキスパートアドバイザーの注文と希望の結果の取得方法

エキスパートアドバイザーの注文と希望の結果の取得方法

どのように正しく必要条件の明記を記載するのでしょうか?エキスパートアドバイザーやインジケーターを注文する際にプログラマーに期待すべき点と、期待すべきではない点は何でしょうか?やりとりを記録するにはどうすべきで、何に対して特に注意すべきでしょうか?この記事は、これらの質問や、その他多くの人にとって明白ではない様々な質問に対する答えを提供します。
未知の確率密度関数のカーネル密度推定
未知の確率密度関数のカーネル密度推定

未知の確率密度関数のカーネル密度推定

本稿では、未知の確率密度関数のカーネル密度推定を可能にするプログラム作成に取り組みます。そしてタスク実行のためにカーネル密度推定法を選択しました。本稿にはメソッドのソフトウェア実装コード、その使用例、説明が述べられています。