MQL5プログラミング記事

icon

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

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

新しい記事を追加
最新 | ベスト
MQL5 コード用自動作成ドキュメンテーション
MQL5 コード用自動作成ドキュメンテーション

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

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

統計的推定

シーケンスの統計的パラメータの推定はたいへん重要なものです。それはたいていの数学的モデルと手法が異なる前提に基づいているからです。たとえば、分布法則の正常化、分散値、その他パラメータです。よって時系列を分析し推定するとき、主要な統計的パラメータを素早く明確に推定できるシンプルで使い勝手のよいツールが必要です。本稿では、もっともシンプルなランダムシーケンスの統計パラメータとビジュアル分析のメソッドをいくつか取り上げ述べていきます。それにより MQL5 でこれらメソッド、またニュープロットアプリケーションを用いて計算した結果の視覚化メソッドを実装します。
preview
取引におけるニューラルネットワークの実用化(実践編)

取引におけるニューラルネットワークの実用化(実践編)

本稿では、Matlabプラットフォームでニューラルネットワークモジュールを実際に使用するための説明と手順を説明します。また、ニューラルネットワークモジュールを使用した取引システム作成の主な側面についても説明します。1つの記事で複合体を紹介できるようにするには、複数のニューラルネットワークモジュール機能を1つのプログラムに組み合わせるように変更する必要がありました。
より優れたプログラマー(第05部): より速い開発者になる方法
より優れたプログラマー(第05部): より速い開発者になる方法

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

すべての開発者は、コードをより速く書くことを望んでいます。より速く効果的にコードを書けることは、少数の人々だけが生まれつき持っているような特別な能力ではありません。これは、すべてのコーダーが習得できるスキルです。この記事ではそれを教えようと思います。
preview
データサイエンスと機械学習—ニューラルネットワーク(第01回):フィードフォワードニューラルネットワークの解明

データサイエンスと機械学習—ニューラルネットワーク(第01回):フィードフォワードニューラルネットワークの解明

ニューラルネットワークの背後にある操作全体は、多くの人に気に入られていますが、ほとんどの人に理解されていません。この記事では、フィードフォワード型の多層知覚の密室の背後にあるすべてを平易な言葉で説明しようとします。
preview
データサイエンスと機械学習(第05回):決定木

データサイエンスと機械学習(第05回):決定木

決定木は、人間の思考方法を模倣してデータを分類します。木を作り、それを使ってデータを分類・予測する方法を見てみましょう。決定木アルゴリズムの主な目的は、不純物を含むデータを純粋なノードまたはそれに近いノードに分離することです。
グラフィカルインタフェース  II:メニュー項目要素(チャプター1)
グラフィカルインタフェース  II:メニュー項目要素(チャプター1)

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

シリーズの第二部では、メインメニュー、コンテキストメニューなどのインターフェイス要素の開発の詳細をお話しします。また、要素の描画にもふれ、そのための特別なクラスを作成します。カスタムイベントを含むプログラムイベントの管理なども詳しく話し合われます。
直近のピップのプロフィットダウンを抽出
直近のピップのプロフィットダウンを抽出

直近のピップのプロフィットダウンを抽出

この記事では、アルゴリズムトレード分野における理論と実践を組み合わせる試みについて説明します。 トレーディングシステムの作成に関する考察のほとんどは、ヒストリーバーや適用される様々なインジケータの使用に関連します。 これは最もよくカバーされたフィールドであるため、詳細は考慮しません。 バーは人工的なエンティティを表します。したがって、プロトデータに近い何か、すなわち価格ティックで動作します。
preview
並列粒子群最適化

並列粒子群最適化

本稿では、粒子群アルゴリズムを使用した高速最適化の手法について説明しています。また、この手法のMQLでの実装を提示します。これは、エキスパートアドバイザー内のシングルスレッドモードとローカルテスターエージェントで実行されるアドオンとしての並列マルチスレッドモードの両方ですぐに使用できます。
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第26部): 未決取引リクエスト - 特定の条件下でのポジションのオープン
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第26部): 未決取引リクエスト - 特定の条件下でのポジションのオープン

MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第26部): 未決取引リクエスト - 特定の条件下でのポジションのオープン

この記事から始めて、特定の制限時間に達した、指定された利益を超えた、ストップロスによってポジションを決済したなどの特定の条件下で保留中リクエストを使用して取引できるようにする機能を開発します。
市場の数学:利益、損失、コスト
市場の数学:利益、損失、コスト

市場の数学:利益、損失、コスト

この記事では、手数料やスワップなど、あらゆる取引の総損益を計算する方法を紹介します。最も正確な数学的モデルを提供し、それを使ってコードを書き、標準と比較するつもりです。そのほか、利益を計算するMQL5のメイン関数の内部にも入り込み、仕様から必要な値をすべて突き詰めてみます。
preview
どんな市場でも優位性を得る方法(第2回):テクニカル指標の予測

どんな市場でも優位性を得る方法(第2回):テクニカル指標の予測

取引されている銘柄の価格を予測するよりも、特定のテクニカル指標を予測する方が精度が高いことをご存知ですか。この洞察力をより良い取引戦略のために活用する方法を探るために、ぜひお読みください。
preview
自動で動くEAを作る(第08回):OnTradeTransaction

自動で動くEAを作る(第08回):OnTradeTransaction

今回は、受注システムに関する問題を迅速かつ効率的に処理するためのイベント処理システムの使用方法について紹介します。このシステムにより、EAは必要なデータを常に検索する必要がなくなり、より速く動作するようになります。
preview
ニューラルネットワークの実験(第3回):実用化

ニューラルネットワークの実験(第3回):実用化

この連載では、実験と非標準的なアプローチを使用して、収益性の高い取引システムを開発し、ニューラルネットワークがトレーダーに役立つかどうかを確認します。ニューラルネットワークを取引に活用するための自給自足ツールとしてMetaTrader 5にアプローチします。
一連の取引に対するリスク評価
一連の取引に対するリスク評価

一連の取引に対するリスク評価

この記事では、トレードシステムの分析における確率と数学的統計理論のメソッドについて説明します。
preview
自動で動くEAを作る(第05回):手動トリガー(II)

自動で動くEAを作る(第05回):手動トリガー(II)

今日は、自動モードでシンプルかつ安全に動作するエキスパートアドバイザー(EA)を作成する方法を紹介します。前回の最後に、少なくともしばらくはEAを手動で使えるようにするのが適切ではないかと提案しました。
preview
さまざまな移動平均タイプをテストして、それらがどの程度洞察力に富むかを確認する

さまざまな移動平均タイプをテストして、それらがどの程度洞察力に富むかを確認する

多くのトレーダーにとって移動平均指標が重要であることは周知の事実です。取引に役立つ移動平均タイプは他にもあります。この記事ではこれらのタイプを特定し、それぞれのタイプと最も人気のある単純移動平均タイプを簡単に比較して、どれが最良の結果を示すことができるかを確認します。
MetaTrader4とMetaTrader5のトレーディングシグナル用ウィジェット
MetaTrader4とMetaTrader5のトレーディングシグナル用ウィジェット

MetaTrader4とMetaTrader5のトレーディングシグナル用ウィジェット

MetaTrader4とMetaTrader5ユーザーがシグナル提供者になり、さらなる利益を生む機会を得ることができるようになりました。新しいウィジェットを用いて、あなたのサイトやブログ、SNSページにトレーディング実績を掲載できます。ウィジェットを用いる利点は明確です;シグナルプロバイダーの人気を向上し、成功したトレーダーとしての評判を築くのみでなく、新しい購読者を惹きつけます。その他のサイトにウィジェットを載せているトレーダーはこれらの利益を享受できます。
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第7部): StopLimit注文発動イベント、注文およびポジション変更イベント機能の準備
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第7部): StopLimit注文発動イベント、注文およびポジション変更イベント機能の準備

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

前の記事では、MetaTrader 5とMetaTrader 4プラットフォーム用のプログラムの開発を単純化するための大規模なクロスプラットフォームライブラリの作成を始めました。第6部分では、ネッティング勘定のポジションを扱うようにライブラリを訓練しました。今回は、StopLimit注文の発動の追跡を実装し、注文とポジションの変更イベントを追跡する関数を準備します。
上位100件の最適化パス(その1)最適化分析器の開発
上位100件の最適化パス(その1)最適化分析器の開発

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

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

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

すべての開発者は、コードをより速く書くことを望んでいます。より速く効果的にコードを書けることは、少数の人々だけが生まれつき持っているような特別な能力ではありません。これは、コーディングの経験年数に関係なく、すべてのコーダーが習得できるスキルです。
MetaTrader 4 および MetaTrader 5 トレーディングプラットフォームによるソーシャルトレード
MetaTrader 4 および MetaTrader 5 トレーディングプラットフォームによるソーシャルトレード

MetaTrader 4 および MetaTrader 5 トレーディングプラットフォームによるソーシャルトレード

ソーシャルトレードとは?ソーシャルトレードとは、成功したトレーダーがそのトレーディングをモニターさせてくれたり、潜在的投資家が彼らのパフォーマンスをモニターするチャンスを得たり、将来有望なトレードをコピーするといった、トレーダーや投資家の互恵的協力を言います。
MQL5 クックブック:トレードトランザクションイベントの処理
MQL5 クックブック:トレードトランザクションイベントの処理

MQL5 クックブック:トレードトランザクションイベントの処理

本稿ではイベント駆動型プログラミングの観点から MQL5 言語の機能を考察します。この方法の最大のメリットはプログラムがトレード処理の段階的な実装に関する情報を入手することができることです。また「トレードトランザクション」イベントハンドラによって現在進行中のトレード処理に関する情報を受信し処理する例を取り上げます。私見ですが、この方法はあるターミナルから別のターミナルへディールをコピーするのにも利用可能です。
MQL5の料理本 - 移動チャネルのプログラミング
MQL5の料理本 - 移動チャネルのプログラミング

MQL5の料理本 - 移動チャネルのプログラミング

本稿では、等間隔チャネルシステムのプログラミング法について取り扱っています。等間隔チャネル構築の細部まで本稿で紹介します。チャネル分類について説明したのち、移動チャネルのプログラミング法について提案します。コード実行にはオブジェクト指向型プログラムを使用しています。
通貨ペアバスケットをトレードするときに発生するパターンのテスト パート III
通貨ペアバスケットをトレードするときに発生するパターンのテスト パート III

通貨ペアバスケットをトレードするときに発生するパターンのテスト パート III

この記事では、通貨ペアバスケットのトレード時に検出可能なパターンのテストをします。 ここでは、通貨の動きを互いに相対的に追跡するパターンをテストします。
トレーディングモデルに基づくマルチエキスパートアドバイザーの作成
トレーディングモデルに基づくマルチエキスパートアドバイザーの作成

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

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

エキスパートアドバイザー(EA)の選び方:取引ボットを却下するための20の強力な基準

この記事では、「どうやって正しいエキスパートアドバイザーを選べばいいのか」という問いに答えようと思います。ポートフォリオに最適なのはどれでしょうか。また、市場で入手できる大規模な取引ボットリストをどのようにフィルタリングすればいいのでしょうか。この記事では、エキスパートアドバイザーを却下するための20の明確で強力な基準を紹介します。それぞれの基準が提示され、よく説明されているので、より持続的な判断ができ、より収益性の高いエキスパートアドバイザーを集めることができるようになります。
チャネルの描画 : 内見および外観
チャネルの描画 : 内見および外観

チャネルの描画 : 内見および外観

マーケット分析および移動平均後トレードを判断するのにチャネルはもっとも人気あるツールだと言っても過言ではないでしょう。チャネルとそのコンポーネントを使用するトレード戦略の多くを深く掘り下げず、数学的基本とインディケータの実用的実装について語っていきたいと思います。それはクライアント端末画面の3つの極値によって判断されるチャネルを描くものです。
preview
ニューラルネットワークが簡単に(第7回): 適応的最適化法

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

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

初めてのお客様へのアドバイス

有名人の格言ではよくこう言われます。「失敗を恐れる者はなにもなしえない。」怠慢自体が誤りであることを認めなければ、この言葉を語るのは難しいでしょう。しかし、将来の過ちを最小にするために過去の過ち(自分自身または他者の)を分析することは常に可能です。これから、同じ名前のサービスにおけるジョブ実行中に再発生可能性な状況を検証していこうと思います。
MetaTrader 5における取引戦略最適化の可視化
MetaTrader 5における取引戦略最適化の可視化

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

本稿では、最適化プロセスの可視化を拡張するためのグラフィカルインターフェイスを備えたMQLアプリケーションが実装されます。グラフィカルインターフェイスには、EasyAndFastライブラリの最新バージョンが適用されます。MQLアプリケーションでグラフィカルインターフェイスが必要な理由は多くのユーザによって尋ねられることがあります。本稿では、トレーダーにとって有用な複数のケースの1つを示します。
preview
ビル・ウィリアムズのMFIによる取引システムの設計方法を学ぶ

ビル・ウィリアムズのMFIによる取引システムの設計方法を学ぶ

これは、人気のあるテクニカル指標に基づいて取引システムを設計する方法を学ぶための連載の新しい記事です。今回はビル・ウィリアムズの「マーケット・ファシリテーション・インデックス(BW MFI、Bill Williams' Market Facilitation Index)」を取り上げます。
メタトレーダー5クライアントターミナルにおける適応型トレーディングシステムとその使用
メタトレーダー5クライアントターミナルにおける適応型トレーディングシステムとその使用

メタトレーダー5クライアントターミナルにおける適応型トレーディングシステムとその使用

本稿では、多くのストラテジーで構成され、それぞれが「バーチャル」トレードオプションを実行する、適応型システムの変形を提案します。リアルトレーディングは、その時点で最大利益となるストラテジーにしたがって行われます。オブジェクト指向アプローチ、データを扱うクラスや、標準ライブラリのトレードクラスのおかげで、システムのアーキテクチャはシンプルかつスケーラブルになりました;今や、数百のトレードストラテジーを含む適応型システムを、簡単に作成し、分析することができます。
手動のチャート作成および取引ツールキット(第I部)準備: 構造の説明とヘルパークラス
手動のチャート作成および取引ツールキット(第I部)準備: 構造の説明とヘルパークラス

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

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

価格系列の離散化、ランダム成分とノイズ

普段我々はローソク足や、価格シリーズを一定の間隔でスライスした足を使って相場を分析しています。 このような離散化手法は、相場の動きの本当の構造を歪めてしまうのではないでしょうか? オーディオ信号は時間の経過とともに変化する関数であるため、オーディオ信号を一定の間隔で離散化することは、許容される解決策です。 信号自体は時間に依存する振幅です。 この信号特性は基本的なものです。
MQL5 ウィザード:リスクおよび資金管理モジュール作成方法
MQL5 ウィザード:リスクおよび資金管理モジュール作成方法

MQL5 ウィザード:リスクおよび資金管理モジュール作成方法

MQL5ウィザードのトレーディング戦略ジェネレータはトレーディングの考え方を検証することをひじょうに簡素化します。本稿では独自のリスクおよび資金管理モジュールの作成と、MQL5 ウィザードでそれを有効にする方法について述べました。例として、資金管理アルゴリズムを取り上げました。そこではトレードボリュームが前回ディールの結果を基に決定されます。またMQL5 ウィザード用に作成されるクラスのストラクチャおよび記述フォーマットについても述べます。
HedgeTerminalパネルを利用して MetaTrader 5 で双方向トレードとポジションヘッジを行う - パート1
HedgeTerminalパネルを利用して MetaTrader 5 で双方向トレードとポジションヘッジを行う - パート1

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

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

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

この記事では、ユーティリティの機能を拡張します。 今回は、トレードを簡素化するデータを表示する機能を追加します。 特に、前日の高値と安値、ラウンドレベル、年の高値安値、セッション開始時刻などを追加します。
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第12部): 「口座」オブジェクトクラスと口座オブジェクトのコレクション
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第12部): 「口座」オブジェクトクラスと口座オブジェクトのコレクション

MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第12部): 「口座」オブジェクトクラスと口座オブジェクトのコレクション

前の記事では、ライブラリでMQL4ポジション決済イベントを定義し、未使用の注文プロパティを取り除きました。本稿では、口座オブジェクトの作成を検討して口座オブジェクトのコレクションを開発し、口座イベントを追跡する機能を準備します。
preview
チャートをより面白くする: 背景の追加

チャートをより面白くする: 背景の追加

多くのワークステーションには、ユーザーに関する何かを語る代表的な画像が含まれています。これらの画像は、作業環境をより美しくエキサイティングなものにします。背景を追加してチャートをより面白くする方法を見てみましょう。