MQL5プログラミング記事

icon

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

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

新しい記事を追加
最新 | ベスト
領域法
領域法

領域法

取引システム『領域法』は、RSIオシレーターの通常ではない解釈において使われます。この記事では、領域法を可視化するインディケータと、このシステムに基づいてトレードを行うエキスパートアドバイザを提供します。記事では、様々な通貨ペアや時間軸、面積値でのエキスパートアドバイザの詳細なテスト結果が記述されています。
自動売買システム作成にたいする新手法としてのオートマタ準拠プログラミング
自動売買システム作成にたいする新手法としてのオートマタ準拠プログラミング

自動売買システム作成にたいする新手法としてのオートマタ準拠プログラミング

本稿は MQL4 および MQL5で EA、インディケータ、スクリプトを作成するまったく新しい方向にわれわれを導きます。将来、このプログラミングパラダイムが EAを実装するすべてのトレーダーにとってしだいに基本となり標準となることでしょう。オートマタ準拠プログラミングパラダイムを使用することで MQL5 および MetaTrader 5 の開発者は新しい言語MQL6、そして新しいプラットフォームMetaTrader 6を作成に近づくのです。
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第24部): 基本取引クラス - 無効なパラメータの自動修正
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第24部): 基本取引クラス - 無効なパラメータの自動修正

MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第24部): 基本取引クラス - 無効なパラメータの自動修正

本稿では、無効な取引注文パラメータのハンドラを一瞥して、取引イベントクラスを改善します。これによって、すべての取引イベント(単一のイベントと1ティック内で同時に発生したイベントの両方)がプログラムで正しく定義されるようになります。
preview
MetaTrader5でDirectXを使用して3Dグラフィックスを作成する方法

MetaTrader5でDirectXを使用して3Dグラフィックスを作成する方法

3D グラフィックスは、隠れたパターンの視覚化を可能にし、膨大な量のデータを分析するための優れた手段です。 今回のタスクは MQL5 で直接解決できますが、DireсtX 関数は 3 次元オブジェクトの作成が可能です。 したがって、MetaTrader5で3Dゲームをすることも、複雑なプログラムを作成することさえ可能です。 シンプルな 3 次元図形を描画して、3D グラフィックスをしましょう。
ジグザグおよび ATR例によるクラスとしてのインディケータ実装
ジグザグおよび ATR例によるクラスとしてのインディケータ実装

ジグザグおよび ATR例によるクラスとしてのインディケータ実装

インディケータを計算する最適な方法についての議論は尽きるところがありません。どこでインディケータ値を計算すべきでしょうか?インディケータ自体でしょうか、またはそのインディケータを使う Expert Advisor に全ロジックを埋め込むのがよいのでしょうか?本稿では、カスタムインディケータ iCustom のソースコードをExpert Advisor のコードに直接、または計算最適化スクリプトに移動し、そして prev_calculated 値をモデル化するバリアントの一つについて述べていきます。
MQL5 ウィザードで独自の Expert Advisor を作成する
MQL5 ウィザードで独自の Expert Advisor を作成する

MQL5 ウィザードで独自の Expert Advisor を作成する

売買ロボットを作成するのにプログラム言語の知識はもはや必須条件ではなくなっています。以前であれば、独自のトレーディングストラテジーを実装するのにプログラム技能がないことは避けがたい障害でしたが、 MQL5 「ウィザード」の登場により状況は根本的に変化しました。トレーダー初心者はプログラム経験がないことを心配しなくてよくなります。 Expert Advisor コードを作成することができる新しい「ウィザード」を使えば、プログラム経験は必要ないのです。
ミニマーケットエミュレータまたは手動ストラテジーテスター
ミニマーケットエミュレータまたは手動ストラテジーテスター

ミニマーケットエミュレータまたは手動ストラテジーテスター

ミニマーケットエミュレータは、端末での作業の部分的なエミュレーション用に設計された指標で、市場分析と取引の「手動」戦略をテストするために使用することができるでしょう。
preview
MQL5の行列とベクトル

MQL5の行列とベクトル

特別な「matrix」と「vector」データ型を使用すると、数学表記に非常に近いコードを作成することができます。行列とベクトルのメソッドを使用すると、計算でネストされたループを作成したり配列で正しいインデックスを作成したりする必要がなくなるため、複雑なプログラムの開発における信頼性と速度が向上します。
一个绘制支撑和阻力线的指标实例
一个绘制支撑和阻力线的指标实例

一个绘制支撑和阻力线的指标实例

本文提供了一个例子,它是关于如何实现根据指定条件绘制支撑和阻力线的指标的,另外,它也包含了一个可以使用的指标,您将看到,创建指标的过程有多么简单。您也将能学习如何通过修改指标代码来构建用于绘制任何所需线形的条件。
preview
ニューラルネットワークが簡単に(第2回): ネットワークのトレーニングとテスト

ニューラルネットワークが簡単に(第2回): ネットワークのトレーニングとテスト

第2回目の今回は、引き続きニューラルネットワークの勉強をし、作成したCNetクラスをEAで使用した例を考えていきます。 学習時間、予測精度ともに同様の結果を示す2つのニューラルネットワークモデルを用いてタスクを行います。
ユニバーサルEA:戦略トレードモード(その1)
ユニバーサルEA:戦略トレードモード(その1)

ユニバーサルEA:戦略トレードモード(その1)

EAの開発者は、プログラミングのスキルに関係なく、信頼性の高い取引プロセスを整理するため、同じタスクとアルゴリズムの問題に直面しています。この記事では、これらのタスクの解決に着手し、トレードアイデアを記述するための便利なCStrategyエンジンの可能性を説明します。
自作 DLL の排除
自作 DLL の排除

自作 DLL の排除

MQL5 言語機能がタスク遂行に十分でなければMQL5 プログラマーは別のツールを使用する必要があります。別のプログラム言語によって仲介DLL を作成する必要があります。MQL5 にはさまざまなデータタイプを表示し、それを API に転送する機能がありますが、残念ながら MQL5 は受け付けられたポインタからデータを抽出することに関する問題を解決することはできません。本稿ではすべての "i" にドットを打ち、複雑なデータタイプを交換し、それと連携するメカニズムを示していきます。
preview
MetaTrader5でのビッド・アスク・スプレッド分析

MetaTrader5でのビッド・アスク・スプレッド分析

証券会社のビッド・アスク・スプレッドのレベルを報告するためのインジケーター。MT5のティックデータを使用すると、最近の真の平均ビッド・アスク・スプレッドが実際に何であったかを分析できます。ビッドとアスクの両方の価格ラインを表示すれば現在のスプレッドは使用可能なので、確認する必要はありません。
戦略バランス曲線の品質評価としての R 乗
戦略バランス曲線の品質評価としての R 乗

戦略バランス曲線の品質評価としての R 乗

この記事では、カスタム最適化基準R乗の構築について扱います。 この基準は、戦略のバランス曲線の品質を推定し、安定した戦略を構築するために使うことができます。 今回は、このメトリックのプロパティと品質の推定に使用される、構造と統計的手法について説明します。
preview
手動チャートおよび取引ツールキット(第II部)チャートグラフィック描画ツール

手動チャートおよび取引ツールキット(第II部)チャートグラフィック描画ツール

これは連載の次の記事で、キーボードショートカットを使用してチャートグラフィックを手動で適用するための便利なライブラリを作成した方法を示します。使用されるツールには、直線とその組み合わせが含まれます。第2部では、第1部で説明した関数を使用して、描画ツールがどのように適用されるかを確認します。ライブラリは、チャート作成タスクを大幅に簡素化する任意のエキスパートアドバイザーまたはインディケーターに接続できます。このソリューションは外部DLLを使用せず、すべてのコマンドは組み込みのMQLツールを使用して実装されます。
preview
ニューラルネットワークが簡単に(第8回): アテンションメカニズム

ニューラルネットワークが簡単に(第8回): アテンションメカニズム

以前の記事では、ニューラルネットワークを整理するための様々な選択肢を既に検証しました. また、画像処理アルゴリズムから借りた畳み込みネットワークについても検討しました. 今回の記事では、言語モデルの開発に弾みをつけた「アテンション・メカニズム」を考えることを提案します.
preview
データサイエンスと機械学習(第01回):線形回帰

データサイエンスと機械学習(第01回):線形回帰

私たちトレーダーは、数字に基づいた判断をするよう、システムと自分自身を訓練する時期に来ています。目ではなく、直感で信じるのは、これが世界が向かっているところだということです。波の方向に垂直に移動しましょう。
統計の基礎
統計の基礎

統計の基礎

たとえファンダメンタル分析支持者であったとしても、すべてのトレーダーは、特定の統計的な計算を使用し作業を行います。この記事は、統計の基礎、基礎的な要素を紹介し、意思決定における統計の重要性を示します。
preview
パターン検索への総当たり攻撃アプローチ(第IV部): 最小限の機能

パターン検索への総当たり攻撃アプローチ(第IV部): 最小限の機能

本稿では、前の記事で設定した目標に基づいて改良された総当たり攻撃バージョンについてお話します。エキスパートアドバイザーをこの方法で取得した設定で使用して、このトピックをできるだけ広くカバーするようにします。新しいプログラムバージョンも添付されています。
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第16部): 銘柄コレクションイベント
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第16部): 銘柄コレクションイベント

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

本稿では、すべてのライブラリオブジェクトの新しい基本クラスを作成し、イベント機能をすべての子孫に追加します。また、この新しい基本クラスに基づいて、銘柄コレクションイベントを追跡するためのクラスを開発します。新しい基本オブジェクトの機能を開発するために、口座および口座イベントクラスは変更されます。
preview
多層パーセプトロンとバックプロパゲーションアルゴリズム(第II部): Pythonでの実装とMQL5との統合

多層パーセプトロンとバックプロパゲーションアルゴリズム(第II部): Pythonでの実装とMQL5との統合

MQLとの統合を開発するために利用できるPythonパッケージが存在し、データの探索、作成、機械学習モデルの使用などのさまざまな機会がもたらされます。MQL5に組み込まれているPython統合により、単純な線形回帰から深層学習モデルまで、さまざまなソリューションを作成できます。開発環境を設定して準備する方法と、いくつかの機械学習ライブラリを使用する方法を見てみましょう。
CURLを使用した HTML の解析
CURLを使用した HTML の解析

CURLを使用した HTML の解析

この記事では、サードパーティのコンポーネントを使用してライブラリを解析する簡単な HTML コードについて説明します。 特に、GET リクエストと POST リクエストでは取得できないデータにアクセスする方法について説明します。 ページが大きすぎないウェブサイトを選定し、該当サイトから興味深いデータを取得しましょう。
preview
自動で動くEAを作る(第03回):新しい関数

自動で動くEAを作る(第03回):新しい関数

今日は、自動モードでシンプルかつ安全に動作するエキスパートアドバイザー(EA)を作成する方法を紹介します。前回は、自動売買EAで使用するオーダーシステムの開発に着手しましたが、必要な関数のうち1つしか作っていません。
アルゴリズムトレードにおける Kohonen ニューラルネットワークの活用 パート II. 最適化と予測
アルゴリズムトレードにおける Kohonen ニューラルネットワークの活用 パート II. 最適化と予測

アルゴリズムトレードにおける Kohonen ニューラルネットワークの活用 パート II. 最適化と予測

Kohonen ネットワークを扱うために設計されたユニバーサルツールに基づいて、最適なEAパラメータを分析して選択するシステムを構築し、時系列の予測を検討します。 第 I 部では、必要なアルゴリズムを追加して、一般に公開されているニューラルネットワーククラスを修正し、改善しました。 今回はこれを実践に応用しましょう。
preview
カスタムシンボル。実用的な基礎

カスタムシンボル。実用的な基礎

この記事では、クオートを表示するための一般的な方法を示すために、カスタムシンボルプログラムの生成を行います。 派生したカスタムシンボルチャートから実際のシンボルをトレードするためのEAにおける提案された亜種についても説明します。 この記事にはMQLのソースコードが添付されています。
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第17部): ライブラリオブジェクトの相互作用
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第17部): ライブラリオブジェクトの相互作用

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

本稿では、すべてのライブラリオブジェクトの基本オブジェクトの開発を終了し、それに基づいたライブラリオブジェクトがユーザと対話できるようにします。たとえば、ユーザがスプレッドの最大許容サイズと価格レベルを設定してポジションを開き、条件に到達すると、スプレッドまたは価格レベルに基づいたシグナルを持つイベントが銘柄オブジェクトからプログラムに送信されます。
preview
フィボナッチによる取引システムの設計方法を学ぶ

フィボナッチによる取引システムの設計方法を学ぶ

最も人気のあるテクニカル指標を使用して取引システムを設計する方法についての連載を続けます。今回の新しいテクニカルツールはフィボナッチです。このテクニカル指標に基づいて取引システムを設計する方法を学びます。
通貨ペアバスケットをトレードするときに発生するパターンのテスト。 パート I
通貨ペアバスケットをトレードするときに発生するパターンのテスト。 パート I

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

パターンのテストを開始し、トレード通貨ペアバスケットについての記事に記載されているメソッドを試してみます。 売られ過ぎ/買われ過ぎレベルのパターンが実際に適用されるメソッドを見てみましょう。
安くて楽しいニューラルネットワーク - MetaTrader 5 でNeuroPro へリンク
安くて楽しいニューラルネットワーク - MetaTrader 5 でNeuroPro へリンク

安くて楽しいニューラルネットワーク - MetaTrader 5 でNeuroPro へリンク

トレード用の特定のニューラルネットワークプログラムが高価で複雑そうであったら、反対にシンプル過ぎると思えたら、NeuroPro をお試しください。それは無料でアマチュア用の最適な機能セットが備えられています。本稿では MetaTrader 5 と連携してそれを利用する方法をお伝えします。
クロスプラットフォーム グリッドEAの開発(最終パート):収益性を高める方法と多様化
クロスプラットフォーム グリッドEAの開発(最終パート):収益性を高める方法と多様化

クロスプラットフォーム グリッドEAの開発(最終パート):収益性を高める方法と多様化

このシリーズのこれまでの記事では、多かれ少なかれ収益性の高いグリッドEAを作成するためのさまざまな方法を試しました。 今回は多様化を通じてEAの収益性を高めます。 究極の目標は、最大20% 以下のドローダウンで年間100%の利益を達成することです。
グラフィカルインタフェースIV:マルチウィンドウモードと優先度のシステム(チャプター2)
グラフィカルインタフェースIV:マルチウィンドウモードと優先度のシステム(チャプター2)

グラフィカルインタフェースIV:マルチウィンドウモードと優先度のシステム(チャプター2)

この章では、MQLアプリケーションでのマルチウィンドウインタフェースの作成の可能性をもたらすライブラリの実装を拡張します。また、グラフィカルオブジェクト上でのマウスの左クリックの優先順位のシステムを開発します。これは、要素がユーザのアクションに応答しない場合に発生する問題を回避するために必要です。
取引通貨バスケットでの利用可能なパターン
取引通貨バスケットでの利用可能なパターン

取引通貨バスケットでの利用可能なパターン

前の記事に則って、トレーダーが認識可能なパターンについて分析を試みます。また、各パターンの利点、欠点を考慮し、それに関する推奨事項を示します。ウィリアムズのオシレータに基づいたインジケーターを分析ツールとして使用します。
個別のモジュールを使用したEAの構築
個別のモジュールを使用したEAの構築

個別のモジュールを使用したEAの構築

EAやスクリプトのインジケータを開発する際、開発者はトレーディング戦略と直接関係のないさまざまなコードを作成する必要があります。 この記事では、トレーリング、フィルタリング、スケジュールコードなど、既存のブロックを使用してEAを作成する方法を検討します。 このプログラミングアプローチの利点を見てみましょう。
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第27部): 取引リクエストの使用 - 指値注文
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第27部): 取引リクエストの使用 - 指値注文

MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第27部): 取引リクエストの使用 - 指値注文

この記事では、取引リクエストの開発を継続し、指値注文の発注を実装し、検出された取引クラス使用の欠点を排除します。
preview
一からの取引エキスパートアドバイザーの開発(第7部):価格別出来高の追加(I)

一からの取引エキスパートアドバイザーの開発(第7部):価格別出来高の追加(I)

価格別出来高は、現存する最も強力なインジケータの1つです。ある程度の自信を持って取引するには、チャートにはこのインジケータが必須です。このインジケータはよく「テープリーディング」を好むトレーダーに使われますが、プライスアクションのみを使用して取引する場合にも活用できます。
グラフィカルインタフェース I: 種々のプログラム及びメタトレーダー4ターミナルでのライブラリのテスト(チャプター 5)
グラフィカルインタフェース I: 種々のプログラム及びメタトレーダー4ターミナルでのライブラリのテスト(チャプター 5)

グラフィカルインタフェース I: 種々のプログラム及びメタトレーダー4ターミナルでのライブラリのテスト(チャプター 5)

このグラフィカルインターフェイスに関するシリーズの第一部の前章では、フォームクラスは、そのコントロールを押すしてフォームの管理を許可するメソッドによって改善されました。本稿では、インディケータやスクリプトなどの異なるMQLプログラムでのテストが行われます。ライブラリはすべてのMetaTraderプラットフォームで使用できるクロスプラットフォーム対応として設計されたので、MetaTrader 4でもテストを行います。
異なる国での異なるタイムゾーンに基づくトレーディング戦略例
異なる国での異なるタイムゾーンに基づくトレーディング戦略例

異なる国での異なるタイムゾーンに基づくトレーディング戦略例

インターネット検索をしていると、多くの戦略を見つけるのはたやすいことです。そこから多様な提案を得ることができます。インサイダーの方法を採り入れ、異なる大陸の異なるタイムゾーンに基づく戦略作成の手順を見ていきます。
グラフィカルインタフェース V: 縦横のスクロールバー(チャプター 1)
グラフィカルインタフェース V: 縦横のスクロールバー(チャプター 1)

グラフィカルインタフェース V: 縦横のスクロールバー(チャプター 1)

MetaTrader環境でのグラフィカルインタフェースを作成するためのライブラリの開発の検討が続きます。シリーズの第一部の最初の記事では、縦横のスクロールバーを作成するためのクラスを作成します。
preview
MQL言語を使用したゼロからのディープニューラルネットワークプログラミング

MQL言語を使用したゼロからのディープニューラルネットワークプログラミング

この記事は、MQL4/5言語を使用してディープニューラルネットワークを最初から作成する方法を読者に教えることを目的としています。
グラフィカルインタフェース I: グラフィカルインタフェースの動画化(チャプター 3)
グラフィカルインタフェース I: グラフィカルインタフェースの動画化(チャプター 3)

グラフィカルインタフェース I: グラフィカルインタフェースの動画化(チャプター 3)

前回の記事では、コントロールのフォームクラスの開発に着手しました。本稿では、チャート領域にフォームを移動するためのクラスメソッドを書き入れによってそれを続行します。その後、このインターフェイスコンポーネントをライブラリコアに統合します。また、マウスカーソルが上をホバリングしたときにフォームコントロールの色が変わることを保証します。