MQL4とMQL5のプログラム記事

icon

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

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

新しい記事を追加
最新 | ベスト
MQL5オブジェクト指向のプログラミングアプローチを使ったExpert Advisorのプログラミング
MQL5オブジェクト指向のプログラミングアプローチを使ったExpert Advisorのプログラミング

MQL5オブジェクト指向のプログラミングアプローチを使ったExpert Advisorのプログラミング

本稿では初心者のためのAdvisor in MQL5でプログラミングをする段階的ガイドで行ったこと、すなわちExpert Advisor作成に対してオブジェクト指向のアプローチに注目します。ほとんどの方はこれは難しいと思われるでしょう。しかし本稿を読み終わるまでにみなさんはブジェクト指向でExpert Advisorを書けるようになっている、という点をはっきり述べておきたいと思います。
『のるかそるか』の Forex 戦略
『のるかそるか』の Forex 戦略

『のるかそるか』の Forex 戦略

本稿の目的は『のるかそるか』の賭博原理を取り入れたもっともシンプルなトレーディング戦略を作成することです。収益性のある Expert Advisor を作成したいのではありません。目標は初期デポジットを可能な限り最高の確率で数倍に増やすことです。ForEx でジャックポットを当てること、またテクニカル分析についてなにも解らずインディケータを一つも使わずにすべてを失うことは可能でしょうか?
メリルパターン
メリルパターン

メリルパターン

本稿では、メリルパターンのモデルを見て、それらの現在の関連性を評価します。これを行うために、パターンをテストし、終値、高値、安値、オシレータなどのさまざまなデータタイプにモデルを適用するツールを開発します。
ニューラル ネットワーク: EAの自己最適化
ニューラル ネットワーク: EAの自己最適化

ニューラル ネットワーク: EAの自己最適化

ポジションを最適化し、コードのコマンドに従って定期的に条件を終了するEAを開発します。ニューラル ネットワーク (多層パーセプトロン) を分析し、戦略を実現するためのモジュールの形式で実装します。毎月 (毎週、毎日、または毎時) ニューラル ネットワークを最適化する EAを作成します。したがって、自己最適化 EA を開発します。
初心者の記録: ZigZag
初心者の記録: ZigZag

初心者の記録: ZigZag

確かに、初めて不可解な多角形を見たとき、極値に近くトレードをするという異常な思考が見習いトレーダー全員に訪れます。実際それはとても単純です。ここに最大値があります。そしてそこに最小値があります。履歴には美しい絵があります。そして、実際には何でしょう?線が描かれます。それは頂点のように見えます。売るタイミングです。そして次に下がっていきます。絶対にノーです!価格は裏切り上向きに変動しています。ホー!ささいなことです。インディケータではないのです。そして投げ出すのです!
MQL5における移動平均計算パフォーマンス検証
MQL5における移動平均計算パフォーマンス検証

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

最初に「移動平均」インディケータが作成されて以来、多くのインディケータが登場してきました。それらの多くは類似の平滑化手法を使用していますが、異なる移動平均アルゴリズムの性能については研究されていません。本稿ではMQL5で「移動平均」を使用する可能な方法について考察し、それらのパフォーマンスを比較していきます。
相場パターンを見つけるための計量的アプローチ:自己相関、ヒートマップ、散布図
相場パターンを見つけるための計量的アプローチ:自己相関、ヒートマップ、散布図

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

この記事では、季節的特徴の拡張である自己相関ヒートマップと散布図を紹介します。 この記事の目的は、"マーケットメモリ"が季節的な性質を持ち、任意のオーダーの増分の最大相関によって表現されることを示すものです。
手動取引のサポーターを作成する
手動取引のサポーターを作成する

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

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

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

本稿はユニークなキーによってエレメントへのアクセスが可能となる特殊なアルゴリズムについて説明します。キーとして任意のベースデータタイプが使用可能です。たとえば文字列や整数変数として表すことが可能です。そのようなデータのコンテナは一般的に辞書または連想配列と呼ばれます。それにより課題解決に対するより簡単で効果的な方法が提供されます。
パネルを改善してみましょう(CAppDialog / CWndClientからの継承、背景の色の変更、透明性の追加)
パネルを改善してみましょう(CAppDialog / CWndClientからの継承、背景の色の変更、透明性の追加)

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

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

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

長い間、マルチ通貨分析やマルチ通貨トレーディングは人々の関心の的でした。完全なマルチ通貨システムを達成する機会は、MetaTrader5とMQL5プログラミング言語のリリースによりようやく可能になりました。この記事では、複数のシンボルにおけるすべてのティックを処理し分析する方法を紹介します。例として、USDドルインデックスのマルチ通貨RSIインジケーターを見てみます。
数多くのインジケーターバッファーを使った複数通貨対応インジケーターの作成
数多くのインジケーターバッファーを使った複数通貨対応インジケーターの作成

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

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

フラクタルを利用した水平ブレークスルーレベルの描画

本稿は、アップ/ダウン フラクタルを用いてサポート/レジスタンス レベルを表示するインディケータの作成について説明します。
インジケーターの外部パラメーターのグラフィックコントロール
インジケーターの外部パラメーターのグラフィックコントロール

インジケーターの外部パラメーターのグラフィックコントロール

インジケーターの外部変数は、パラメーターが変更できる特別なウィンドウを用いてコントロールされ、そのインジケーターは再度使用されます。これらの操作の不便さは、スクリーン上に必要なパラメータを表示させ、視覚的にインジケータを管理する必要性を生み出しました。
インディケータコードから Expert Advisor コードへの変換インディケータストラクチャ
インディケータコードから Expert Advisor コードへの変換インディケータストラクチャ

インディケータコードから Expert Advisor コードへの変換インディケータストラクチャ

本稿はインディケータコードを Expert Advisor コードへ変換し、カスタムインディケータの呼び出しなく、Expert Advisor 内で必要なインディケータ値を計算するためのプログラムコード全体を使って Expert Advisor を書く方法に特化して述べます。本稿はインディケータストラクチャの一般的なスキーム、Expert Advisor におけるインディケータバッファの列挙、関数 IndicatorCounted() の置換を提供し述べます。対象とする読者はすでに MQL4 言語でのプログラム経験をお持ちの方です。
preview
ニューラルネットワークが簡単に

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

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

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

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

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

この記事は、外国為替取引の主な機能をできるだけ簡単かつ迅速に説明し、初心者といくつかの基本的なアイデアを共有することを目的としています。また、簡単なインディケータ―の開発を紹介するとともに、取引コミュニティで最も興味をそそる質問への回答を試みます。
新しいMQL4のオフラインチャート
新しいMQL4のオフラインチャート

新しいMQL4のオフラインチャート

新しいバージョンのMQL4では、履歴データの保存方法が変更され、MqlRates構造体が新たに追加されました。MqlRates構造体は、Time、Open、Low、High、Close、Volumeなどの値を保存するのに役立ちます。長年にわたってトレーダーは、オフラインチャートを作成する為にHSTファイルに自分のデータを集めて書き込む、自分のプログラムをMQL4で作成していました。各トレーダーは、以前にコンパイルされた全てのEX4ファイルが、新しいMetaTrader4ターミナルで、以前と同様に動作すると確信していることでしょう。
エラー 146 (「トレードコンテキスト ビジー」) と、その対処方法
エラー 146 (「トレードコンテキスト ビジー」) と、その対処方法

エラー 146 (「トレードコンテキスト ビジー」) と、その対処方法

この記事では、MT4において複数のEAの衝突をさける方法を扱います。ターミナルの操作、MQL4の基本的な使い方がわかる人にとって、役に立つでしょう。
MQL5でのエラー処理とロギング
MQL5でのエラー処理とロギング

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

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

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

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

初めてのMetaTrader VPS:ステップバイステップ

自動売買ロボットやコピー取引を利用していると必ず、遅かれ早かれ、取引プラットフォーム用に信頼できる24時間365日のホスティングサーバーをレンタルする必要性を認識するようになります。様々な理由から、MetaTrader VPSの使用が推奨されます。このサービスの支払いとサブスクリプションはMQL5.communityのアカウントで管理できます。
preview
MQL5を使用してトレンドとチャートパターンを検出する方法

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

この記事では、トレンド(上昇トレンド、下降トレンド、横ばい)やチャートパターン(ダブルトップ、ダブルボトム)などの値動きのパターンをMQL5によって自動的に検出する方法を提供します。
EAのパラメータの選択における テスト(最適化) テクニックとその基準
EAのパラメータの選択における テスト(最適化) テクニックとその基準

EAのパラメータの選択における テスト(最適化) テクニックとその基準

テストにおける聖杯を見つけることは難しくありませんが、取り除くことは非常に困難です。この記事では、ユーザーの負荷を最小に抑え、最大の効果を得られるように、自動化されたグループとEAの選定について説明します。
preview
CatBoostアルゴリズムを使用した外国為替市場の季節によるパターンの特定

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

本稿では、時間フィルタを使用した機械学習モデルの作成について検討し、このアプローチの有効性について説明します。人的要因はモデルに特定の曜日の特定の時間に取引するように指示するだけで排除できるようになっています。パターン検索は、別のアルゴリズムで提供できます。
エキスパートアドバイザの自己最適化:進化的遺伝的アルゴリズム
エキスパートアドバイザの自己最適化:進化的遺伝的アルゴリズム

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

この記事では、進化的アルゴリズムにある主要な原理と、その多様性および特徴について検証します。実験を使用した簡単なエキスパートアドバイザの例では、最適化が私達の取引システムに何をもたらすかを見ていきます。遺伝的、進化的、またその他のタイプの最適化を実装するプログラムのセットを検証し、取引システムのパラメータの最適化や予測変数のセットの最適化時の適用例をご紹介します。
名前つきパイプを使用したMetaTrader 5端末間コミュニケーションにDLLを使用しないソリューション
名前つきパイプを使用したMetaTrader 5端末間コミュニケーションにDLLを使用しないソリューション

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

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

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

ツイートにアクセスしたり、Twitterに取引シグナルを投稿したりしたかったことがおありですか?検索をおやめください。この連載では、DLLを使用せずにそれを行う方法を示します。MQLを使用してTweeter APIを実装する旅をお楽しみください。この第1部では、Twitter APIにアクセスする際の認証と承認の栄光の道をたどります。
MQL5のExpert Advisorsのテストと最適化を行うためのガイド
MQL5のExpert Advisorsのテストと最適化を行うためのガイド

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

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

外部指標のためのアラートとコメント

各テクニカル指標の売買シグナルのデータの受信方法や、[コメント]・[アラート]画面の表示方法について説明します。
ニューラルネットワーク:理論~実践
ニューラルネットワーク:理論~実践

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

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

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

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

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

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

MQL 4 で信頼性ある安全な売買ロボットを作成する方法

本稿では、Expert Advisor を作成し使用する場面で生じるごく一般的なエラーについてお話します。典型的な安全な自動売買システムについてもご説明します。
「新規バー」イベントハンドラ
「新規バー」イベントハンドラ

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

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

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

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

取引における数学:シャープレシオとソルティノレシオ

投資収益率は、投資家や初心者のトレーダーが取引効率の分析に使用する最も明白な指標です。プロのトレーダーは、シャープレシオやソルティノレシオなどのより信頼性の高いツールを使用して、ストラテジーを分析します。
リスク設定に基づいてSL/TPを設定するクロスプラットフォームEAの開発
リスク設定に基づいてSL/TPを設定するクロスプラットフォームEAの開発

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

本稿では、リスク値に基づいて自動的にエントリロットを計算するエキスパートアドバイザー(EA)を作成します。このEAでは、選択したSL(ストップロス)に対する比率を持つTP(テイクプロフィット)が自動的に配置されます。言い換えれば、3:1、4:1などの選択した比率に基づいたTPが計算されます。
preview
自動で動くEAを作る(第02回):コードを始める

自動で動くEAを作る(第02回):コードを始める

今日は、自動モードでシンプルかつ安全に動作するエキスパートアドバイザー(EA)を作成する方法を紹介します。前回は、自動売買をおこなうEAの作成に進む前に、誰もが理解しておくべき最初のステップについて説明しました。概念と構造が検討されました。