MQL5プログラミング記事

icon

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

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

新しい記事を追加
最新 | ベスト
MQL5クラウドネットワーク:まだ計算しているのですか?
MQL5クラウドネットワーク:まだ計算しているのですか?

MQL5クラウドネットワーク:まだ計算しているのですか?

MQL5クラウドネットワークのサービスが開始してから、一年と半年ほど経過しました。この先進的な出来事はアルゴリズムによるトレーディングの新しい時代を開きました。今では、クリック数回で、トレーディング戦略の最適化のために自由に何千ものCPUを使用することができます。
MQL5におけるインディケータemissionの描写
MQL5におけるインディケータemissionの描写

MQL5におけるインディケータemissionの描写

本稿では、マーケットリサーチの新手法であるインディケータ エミッションについて考察していきたいと思います。エミッションの計算は異なるインディケータの交点が基本になります。ティックのあとに異なる色や形のポイントが多数表示されます。それらは星雲、雲、軌道、線、アーチなど様々なクラスターを形成します。こういった形は市場価格を左右する見えないバネや力を検出するのに役立ちます。
MetaTrader 5における取引戦略最適化の可視化
MetaTrader 5における取引戦略最適化の可視化

MetaTrader 5における取引戦略最適化の可視化

本稿では、最適化プロセスの可視化を拡張するためのグラフィカルインターフェイスを備えたMQLアプリケーションが実装されます。グラフィカルインターフェイスには、EasyAndFastライブラリの最新バージョンが適用されます。MQLアプリケーションでグラフィカルインターフェイスが必要な理由は多くのユーザによって尋ねられることがあります。本稿では、トレーダーにとって有用な複数のケースの1つを示します。
上位100件の最適化パス(その1)最適化分析器の開発
上位100件の最適化パス(その1)最適化分析器の開発

上位100件の最適化パス(その1)最適化分析器の開発

本稿では、最適な最適化パスを選択するためのアプリケーションの開発について、いくつかのオプションを使用して説明します。 このアプリケーションは、様々な要因によって最適化結果を分類することができます。最適化パスは常にデータベースに書き込まれるため、再び最適化せずに常に新しいロボットパラメータを選択できます。さらに、すべての最適化パスを1つのチャートで表示し、パラメトリックVaR比を計算し、パスの正規分布と特定の比率セットの取引結果のグラフを作成することができます。さらに、いくつかの計算された比率のグラフは、最適化開始から(または選択された日付から別の選択された日付まで)動的に構築されます。
preview
連続ウォークフォワード最適化(パート4):最適化マネージャ(オートオプティマイザ)

連続ウォークフォワード最適化(パート4):最適化マネージャ(オートオプティマイザ)

この記事の主な目的は、アプリケーションとその機能を操作するメカニズムについて説明することです。 したがって、この記事は、アプリケーションの使用方法に関する説明書としても使うことができます。 アプリケーションの使用法においてありがちな落とし穴と詳細を扱っています。
手動のチャート作成および取引ツールキット(第I部)準備: 構造の説明とヘルパークラス
手動のチャート作成および取引ツールキット(第I部)準備: 構造の説明とヘルパークラス

手動のチャート作成および取引ツールキット(第I部)準備: 構造の説明とヘルパークラス

これは連載最初の記事で、キーボードショートカットを使用してチャートグラフィックを手動で適用できるツールキットについて説明します。1つのキーを押すとトレンドラインが表示され、別のキーを押すと、必要なパラメータを備えたフィボナッチファンが作成されるという、非常に便利なものです。時間枠の切り替え、レイヤーの再配置、チャートのすべてのオブジェクトの削除もおこなえます。
トレーディングモデルに基づくマルチエキスパートアドバイザーの作成
トレーディングモデルに基づくマルチエキスパートアドバイザーの作成

トレーディングモデルに基づくマルチエキスパートアドバイザーの作成

MQL5にてオブジェクト指向のアプローチを使用すると、マルチ通貨・マルチシステム・マルチタイムフレームのエキスパートアドバイザーの作成を大幅に単純化することができます。全てのタイムフレーム、全ての金融商品において、いくつものトレーディング戦略に基づいた取引をあなたのEAが行うことを想像してみてください。さらに、EAはテスターにて簡単にテストすることができ、すべての戦略において、稼働する資産管理システムがいくつもあります。
preview
ニューラルネットワークが簡単に(第7回): 適応的最適化法

ニューラルネットワークが簡単に(第7回): 適応的最適化法

以前の記事では、ネットワーク内のすべてのニューロンに対して同じ学習率を用いてニューラルネットワークをトレーニングするためにストキャスティクススロープ降下法を使用しました。 本論文では、各ニューロンの学習速度を変化させることができる適応学習法に着目します。 その是非についても検討していきたいと思います。
MQL5 クックブック: インジケーターサブウィンドウコンソールースクロールバー
MQL5 クックブック: インジケーターサブウィンドウコンソールースクロールバー

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

様々なコントロールを試してみましょう。今回はスクロールバーを紹介します。「MQL5クックブック:インジケーターサブウィンドウコンソールーボタン」という以前の記事のように、すべての処理がインジケーターサブウィンドウにて実行されます。OnChartEvent()関数にてイベントを扱う詳しい詳細を提供しているので、上記の記事を読んでみてください。この点はこの記事においても言及されます。今回はMQL5リソースを用いて取得される金融商品情報の大きなリストのための垂直スクロールバーを作成します。
グラフィカルインタフェース  II:メインメニュー要素(チャプターー4)
グラフィカルインタフェース  II:メインメニュー要素(チャプターー4)

グラフィカルインタフェース II:メインメニュー要素(チャプターー4)

これは、グラフィカルインターフェイスに関するシリーズの第二部の最終章です。ここでは、メインメニューの作成を検討します。このコントロールの開発とユーザの行動に正確な反応するライブラリクラスのハンドラ設定が実証されます。また、メインメニューの項目にコンテキストメニューを取り付ける方法についても説明します。そのに加えて、現在非アクティブな要素のブロックも言及されます。
オーダーストラテジー多目的Expert Advisor
オーダーストラテジー多目的Expert Advisor

オーダーストラテジー多目的Expert Advisor

この記事では、未処理のオーダーを有効に活用するストラテジーや、それを表すためのメタ言語やそれに基づき動作する多目的ExpertAdvisorを中心に見ていきます。
MQL5 でのアサーション
MQL5 でのアサーション

MQL5 でのアサーション

この記事では、MQL5でのアサーションの利用について扱います。アサーションメカニズムとアサーションを実装するための一般的なガイダンスを2つの例として提供します。
より優れたプログラマー(第04部): より速い開発者になる方法
より優れたプログラマー(第04部): より速い開発者になる方法

より優れたプログラマー(第04部): より速い開発者になる方法

すべての開発者は、コードをより速く書くことを望んでいます。より速く効果的にコードを書けることは、少数の人々だけが生まれつき持っているような特別な能力ではありません。これは、コーディングの経験年数に関係なく、すべてのコーダーが習得できるスキルです。
MQL5 クックブック:Expert Advisorsにトレード条件を設定するためのインディケータ利用
MQL5 クックブック:Expert Advisorsにトレード条件を設定するためのインディケータ利用

MQL5 クックブック:Expert Advisorsにトレード条件を設定するためのインディケータ利用

本稿では MQL5 クックブックシリーズの先行記事をとおして作業をおこなってきているExpert Advisorの修正を続行します。今回は、Expert Advisor は値がポジションオープンの条件を確認するのに使用されるインディケータを使って強化されます。それに一点添えるために、外部パラメータにドロップダウンリストを作成し、3つのトレードインディケータの中から1つを選ぶことができるようにします。
MQL5 および MQL4 の選択およびナビゲーション ユーティリティ: チャートへのデータの追加
MQL5 および MQL4 の選択およびナビゲーション ユーティリティ: チャートへのデータの追加

MQL5 および MQL4 の選択およびナビゲーション ユーティリティ: チャートへのデータの追加

この記事では、ユーティリティの機能を拡張します。 今回は、トレードを簡素化するデータを表示する機能を追加します。 特に、前日の高値と安値、ラウンドレベル、年の高値安値、セッション開始時刻などを追加します。
HedgeTerminalパネルを利用して MetaTrader 5 で双方向トレードとポジションヘッジを行う - パート1
HedgeTerminalパネルを利用して MetaTrader 5 で双方向トレードとポジションヘッジを行う - パート1

HedgeTerminalパネルを利用して MetaTrader 5 で双方向トレードとポジションヘッジを行う - パート1

本稿ではポジションヘッジへの新しいアプローチについて述べ、本件に関する MetaTrader 4 および MetaTrader 5 のユーザー間のディベートに一線を画します。そのようなヘッジを信頼して行うアルゴリズムは解りやすい言葉で、またシンプルなグラフと図で説明されています。本稿は新しいパネルHedgeTerminalに特化して説明しています。これは MetaTrader 5 内で本質的に完全な機能を備えたトレードターミナルです。HedgeTerminalとそれによるトレードの仮想化でポジションは MetaTrader 4 と同じような方法で管理することができます。
グラフィカルインタフェースIX:カラーピッカーコントロール(チャプター1)
グラフィカルインタフェースIX:カラーピッカーコントロール(チャプター1)

グラフィカルインタフェースIX:カラーピッカーコントロール(チャプター1)

本稿は、MetaTrader取引ターミナルのグラフィカルインタフェース作成ライブラリの開発に関するシリーズの第九部の初めとなります。それは2章で構成され、カラーピッカー、カラーボタン、プログレスバーや折れ線グラフなどのコントロールとインターフェースの新しい要素が提示されてます。
ユニバーサルEA:イベントモデルと取引ストラテジープロトタイプ(パート2)
ユニバーサルEA:イベントモデルと取引ストラテジープロトタイプ(パート2)

ユニバーサルEA:イベントモデルと取引ストラテジープロトタイプ(パート2)

この記事は、ユニバーサルEAのシリーズです。このパートでは、データ処理に基づいて、オリジナルのイベント・モデルについて解説し、エンジンのストラテジーの基本クラスの構造を扱います。
クロスプラットフォームEA: CExpertAdvisor と CExpertAdvisors クラス
クロスプラットフォームEA: CExpertAdvisor と CExpertAdvisors クラス

クロスプラットフォームEA: CExpertAdvisor と CExpertAdvisors クラス

この記事では、クロスプラットフォームのEAについて扱っています。主にクラス CExpertAdvisor と CExpertAdvisors は、この記事で説明した他のすべてのコンポーネントのコンテナとして機能します。
MQL5 コード用自動作成ドキュメンテーション
MQL5 コード用自動作成ドキュメンテーション

MQL5 コード用自動作成ドキュメンテーション

Java プログラマーの多くは JavaDocs により作成することのできる自動作成ドキュメンテーションを熟知されていることと思います。その考え方は、検索が簡単なヘルプファイルに抽出できる半構造法によりコードにコメントを追加するというものです。C++ 言語界にもまたドキュメンテーション自動作成機能があります。 Microsoft の SandCastle と Doxygen が代表的な2つです。本稿は MQL5 コードで構成済みコメントから HTML ヘルプファイルを作成するための Doxygen 使用について述べます。実験はひじょうにうまくいきましたから、Doxygen が MQL5 コードから作り出すヘルプのドキュメンテーションは大きな価値を加えると信じています。
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第3部)成行注文と取引のコレクション、検索と並び替え
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第3部)成行注文と取引のコレクション、検索と並び替え

MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第3部)成行注文と取引のコレクション、検索と並び替え

最初の部分では、MetaTrader 5とMetaTrader 4プラットフォーム用のプログラムの開発を単純化するための大規模なクロスプラットフォームライブラリの作成を始めました。さらに、履歴の注文と取引の収集を実装しました。次のステップは、コレクションリスト内の注文、取引、ポジションの便利な選択と並び替えのためのクラスを作成することです。Engineという基本ライブラリオブジェクトを実装し、成行注文とポジションのコレクションをライブラリに追加します。
C plus plus テンプレートの代用としての疑似テンプレート使用
C plus plus テンプレートの代用としての疑似テンプレート使用

C plus plus テンプレートの代用としての疑似テンプレート使用

本稿はテンプレートは使わないが、プログラムスタイルはテンプレートに合ったものを保持する方法について述べていきます。カスタムメソッドを使ってテンプレートを実装することをお伝えします。また、指定のテンプレートを基にしたコード作成用既製のスクリプトを添付しています。
MQL5 クックブック: 価格の乖離を分析するマルチシンボルインジケーターの開発
MQL5 クックブック: 価格の乖離を分析するマルチシンボルインジケーターの開発

MQL5 クックブック: 価格の乖離を分析するマルチシンボルインジケーターの開発

この記事では、特定の期間における価格の分離を分析するためのマルチシンボルインジケーターの開発を紹介します。そのトピックは、「MQL5クックブック:MQL5のマルチシンボルボラティリティインジケーターの開発」というマルチカレンシーインジケーターのプログラミングに関する以前の記事にてすでに紹介されています。なので、今回は新しい特徴や劇的に変更された機能についてのみ紹介します。マルチカレンシーインジケーターのプログラミングに詳しくなければ、以前の記事をまずお読みいただくことをお勧めします。
ターミナル間のデータ交換にクラウドストレージサービスを使用
ターミナル間のデータ交換にクラウドストレージサービスを使用

ターミナル間のデータ交換にクラウドストレージサービスを使用

クラウド技術の普及が進んでいます。 今日では、有料と無料のストレージサービスから選択することができます。 トレードで使用することは可能でしょうか? 本稿では, クラウドストレージサービスを利用してターミナル間でのデータ交換を行う技術を提案します。
より優れたプログラマー(第05部): より速い開発者になる方法
より優れたプログラマー(第05部): より速い開発者になる方法

より優れたプログラマー(第05部): より速い開発者になる方法

すべての開発者は、コードをより速く書くことを望んでいます。より速く効果的にコードを書けることは、少数の人々だけが生まれつき持っているような特別な能力ではありません。これは、すべてのコーダーが習得できるスキルです。この記事ではそれを教えようと思います。
MQL5 ウィザード:オープンポジションのトレーリングモジュール作成方法
MQL5 ウィザード:オープンポジションのトレーリングモジュール作成方法

MQL5 ウィザード:オープンポジションのトレーリングモジュール作成方法

MQL5ウィザードのトレーディング戦略ジェネレータはトレーディングの考え方を検証することをひじょうに簡素化します。本稿では、MQL5 ウィザードでトレーディング戦略を書く方法、ジェネレータを、価格がポジション方向に行くときストップロスを無損失ゼロレベルへ移動させることでトレーディングの際減益ドローダウンを守ることのできるオープンポジションを管理する独自のクラスと連携させる方法について述べます。MQL5 ウィザード用に作成されたクラスのストラクチャおよび記述フォーマットについても述べます。
preview
連続ウォークフォワード最適化(パート5):自動オプティマイザプロジェクトの概要とGUIの作成

連続ウォークフォワード最適化(パート5):自動オプティマイザプロジェクトの概要とGUIの作成

この記事では、MetaTrader5 ターミナルでのウォークフォワード最適化の詳細を説明します。 以前の記事では、最適化レポートを生成およびフィルタリングする方法を検討し、最適化プロセスを担当するアプリケーションの内部構造の分析を開始しました。 自動オプティマイザは C# アプリケーションとして実装され、独自のグラフィカル インターフェイスを備えています。 5番目となるこの記事では、このグラフィカルインタフェースの作成に専念します。
トレーダーの作業における統計的分布の役割
トレーダーの作業における統計的分布の役割

トレーダーの作業における統計的分布の役割

本稿は、理論的統計的分布に連携するクラスについて述べた拙著『MQL5 における投擲的可能性』の続編です。われわれには理論的基盤があるので、現実のデータ設定に進み、こ基盤を情報的に利用していきたいと思います。
ADXによる取引システムの設計方法を学ぶ
ADXによる取引システムの設計方法を学ぶ

ADXによる取引システムの設計方法を学ぶ

今回は、最も人気のある指標を使って取引システムを設計する連載の続きとして、ADX (Average Directional Index)指標についてお話します。この指標を理解するために詳しく学び、簡単な戦略でその使い方を学びます。深く学ぶことで、より多くの洞察得ることができ、それをよりよく活用することができるのです。
モスクワ為替先物のスプレッド戦略の開発例
モスクワ為替先物のスプレッド戦略の開発例

モスクワ為替先物のスプレッド戦略の開発例

MT5 プラットフォームでは、同時に複数の金融商品のトレードロボットをテストすることができます。組み込みのストラテジーテスターは、自動的にヒストリーデータをブローカーのサーバーからダウンロードします。そのため、開発者は特別手動で何かをする必要はありません。シンプルかつ確実に異なるシンボルのミリ秒単位のティックによるトレード環境を再現することが可能です。この記事では、2つのモスクワ為替先物においてスプレッドストラテジーをテストと開発を行います。
preview
エキスパートアドバイザーが失敗する理由の分析

エキスパートアドバイザーが失敗する理由の分析

この記事では、通貨データの分析を示して、エキスパートアドバイザーが特定の時間領域で良好なパフォーマンスを示し他の領域でパフォーマンスが低下する理由をよりよく理解します。
preview
マーケットからエキスパートアドバイザーを選択する正しい方法

マーケットからエキスパートアドバイザーを選択する正しい方法

この記事では、エキスパートアドバイザーを購入する際に注意すべき重要なポイントのいくつかを検討します。また、利益を増やし、お金を賢く使ってこの支出から利益を得る方法を探します。また、記事を読み終われば、シンプルで無料の製品を使用しても収益を得られることがわかると思います。
自己適応アルゴリズムの開発(第II部): 効率の向上
自己適応アルゴリズムの開発(第II部): 効率の向上

自己適応アルゴリズムの開発(第II部): 効率の向上

この記事では、以前に作成したアルゴリズムの柔軟性を向上させることでトピックの開発を続けます。アルゴリズムは、分析期間内のローソク足の数の増加または上昇/下降ローソク足超過率のしきい値の増加によって、より安定しました。分析のためにより大きなサンプルサイズを設定するかより高いローソク足の超過率を設定して、妥協する必要がありました。
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第7部): StopLimit注文発動イベント、注文およびポジション変更イベント機能の準備
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第7部): StopLimit注文発動イベント、注文およびポジション変更イベント機能の準備

MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第7部): StopLimit注文発動イベント、注文およびポジション変更イベント機能の準備

前の記事では、MetaTrader 5とMetaTrader 4プラットフォーム用のプログラムの開発を単純化するための大規模なクロスプラットフォームライブラリの作成を始めました。第6部分では、ネッティング勘定のポジションを扱うようにライブラリを訓練しました。今回は、StopLimit注文の発動の追跡を実装し、注文とポジションの変更イベントを追跡する関数を準備します。
preview
パターン検索への総当たり攻撃アプローチ(第III部): 新しい水平線

パターン検索への総当たり攻撃アプローチ(第III部): 新しい水平線

本稿では、総当たり攻撃のトピックを続けます。プログラムアルゴリズムに市場分析の新しい機会を導入することで分析速度を高め、結果の品質を向上します。新しい追加により、このアプローチ内でグローバルパターンの最高品質で表示できるようになります。
DoEasyライブラリの時系列(第35部): バーオブジェクトと銘柄の時系列リスト
DoEasyライブラリの時系列(第35部): バーオブジェクトと銘柄の時系列リスト

DoEasyライブラリの時系列(第35部): バーオブジェクトと銘柄の時系列リスト

本稿は、簡単で迅速なプログラム開発のためのDoEasyライブラリの作成に関する新しいシリーズの始まりとなります。本稿では、銘柄の時系列データにアクセスして操作するためのライブラリ機能を実装します。メインおよび拡張時系列バーデータを格納するバーオブジェクトを作成し、オブジェクトの検索と並び替えを容易にするために、時系列リストにバーオブジェクトを配置します。
preview
時間の取扱い(第2部): 関数

時間の取扱い(第2部): 関数

証券会社のオフセットとGMTを自動で特定します。おそらく不十分な答えしかくれない(欠如した時間について説明することはいとわないでしょうが)証券会社にサポートを求める代わりに、時間が変わる週に証券会社が価格をどのように計算するかを自分で見ます。結局のところ、私たちはPCを持っているので、面倒な手作業ではなくプログラムを使用します。
グラフィカルインタフェースVIII: ツリービューコントロール(チャプター2)
グラフィカルインタフェースVIII: ツリービューコントロール(チャプター2)

グラフィカルインタフェースVIII: ツリービューコントロール(チャプター2)

前のグラフィカルインターフェイス第八部では静的およびドロップダウンカレンダー要素に焦点が当てられました。この第2章は、グラフィカルインタフェースを作成するために使用されるすべての完全なライブラリーに含まれているツリービューという均等に複雑な要素に焦点を当てます。本稿で実装されるツリービューは複数の柔軟な設定とモードを含み、ニーズに合わせてコントロール要素を調整することができます。
テクニカル分析:どのように分析するのか?
テクニカル分析:どのように分析するのか?

テクニカル分析:どのように分析するのか?

本稿ではインディケータ、マルチタイムフレームインディケータの再作成および日本式ろうそく足を使用するクオート表示に関する著者の意見を簡潔に述べます。本稿はプログラムの特定部分には言及せzす、一般的特徴を述べるものです。
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第21部): 取引クラス - 基本クロスプラットフォーム取引オブジェクト
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第21部): 取引クラス - 基本クロスプラットフォーム取引オブジェクト

MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第21部): 取引クラス - 基本クロスプラットフォーム取引オブジェクト

この記事では、取引クラスを新しいライブラリセクションとして開発し始めます。さらに、MetaTrader 5およびMetaTrader 4プラットフォーム向けの統合基本取引オブジェクトの開発を検討します。サーバにリクエストを送信する場合、このような取引オブジェクトにより、検証済みの正しい取引リクエストパラメータがサーバに渡されます。