MQL5プログラミング記事

icon

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

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

新しい記事を追加
最新 | ベスト
取引シグナルの多通貨監視(その3):検索アルゴリズムの紹介
取引シグナルの多通貨監視(その3):検索アルゴリズムの紹介

取引シグナルの多通貨監視(その3):検索アルゴリズムの紹介

前回の記事では、アプリケーションの視覚的な部分と、GUI要素の基本的なインタラクションを開発しました。 今回は、内部ロジックと取引シグナルのデータ準備のアルゴリズムを追加するだけでなく、検索し、モニターで可視化するために、シグナルを設定する機能を追加します。
追加バッファなしの中間計算用物価系列の平均化
追加バッファなしの中間計算用物価系列の平均化

追加バッファなしの中間計算用物価系列の平均化

本稿は、もっともシンプルでシングルタイプのクラスに搭載された、従来のまた独自の平均化アルゴリズムを数々取り上げます。それらはほとんどすべてといってよいほどインディケータの開発に汎用的に使用されます。提案するクラスが、カスタムインディケータおよびテクニカルインディケータの「大量」呼び出しに対する有効な代替手段になればよいと思っています。
MQL5におけるイベント操作: オンザフライのMA期間変更
MQL5におけるイベント操作: オンザフライのMA期間変更

MQL5におけるイベント操作: オンザフライのMA期間変更

期間13の単純なMA(移動平均)インディケータがチャートに適応されているとします。期間を20に変更したいと思いますが、インディケータ プロパティ ダイアログボックスに移動して数字を13から20に変更したくはありません。マウスとキーボードを使ってこのような操作をするのは飽き飽きです。それも特にインディケータコードを開いてそれを変更したくありません。ボタン、すなわちテンキーの隣にある『上矢印』を一度押すだけでやってしまいたいのです。本稿ではそのやり方について述べていきます。
クロスプラットフォームグリッドEAの開発(パートII):トレンド方向のレンジベースのグリッド
クロスプラットフォームグリッドEAの開発(パートII):トレンド方向のレンジベースのグリッド

クロスプラットフォームグリッドEAの開発(パートII):トレンド方向のレンジベースのグリッド

この記事では、レンジ内のトレンド方向のトレードのグリッドEAを開発します。 したがって、このEAは主に外国為替相場や商品相場に適しています。 今回のテストによると、グリッド戦略は2018年から利益を出しました。 しかし、2014-2018年の期間は残念な結果となりました。
CChartObject クラスに基づく新規GUIウィジェット設計と実装
CChartObject クラスに基づく新規GUIウィジェット設計と実装

CChartObject クラスに基づく新規GUIウィジェット設計と実装

前稿『GUI を使用した半自動Expert Advisor』を書いてのち、より複雑なインディケータやExpert Advisorsに新しい関数を伴うインターフェースを強化したいと思うようになりました。MQL5 標準ライブラリクラスを知ってから、新しいウィジェットを実装しました。本稿は、インディケータやExpert Advisorsで使用可能な新しい MQL5 GUI ウィジェットの設計と実装について述べます。本稿で提供しているウィジェットは CChartObjectSpinner、 CChartObjectProgressBar、CChartObjectEditTable です。
preview
多層パーセプトロンとバックプロパゲーションアルゴリズム

多層パーセプトロンとバックプロパゲーションアルゴリズム

これら2つの手法の人気が高まり、Matlab、R、Python、C ++などで多くのライブラリが開発されています。これらのライブラリは、入力として訓練セットを受け取り、問題に適切なネットワークを自動的に作成します。基本的なニューラルネットワークタイプ(単一ニューロンパーセプトロンと多層パーセプトロンを含む)がどのように機能するかを理解してみましょう。ネットワークを訓練するためのエキサイティングなアルゴリズムである勾配降下法とバックプロパゲーションについて検討します。既存の複雑なモデルは、多くの場合、このような単純なネットワークモデルに基づいています。
ユニバーサルEA: シンボルプロパティへのアクセス (その 8)
ユニバーサルEA: シンボルプロパティへのアクセス (その 8)

ユニバーサルEA: シンボルプロパティへのアクセス (その 8)

このテーマの8番目のパートは、任意のトレーディングツールへアクセスする特殊なオブジェクト CSymbol クラスの説明をします。 EAで使用する場合、このクラスはEAのプログラミングを簡素化し、その関数を拡張することができ、シンボルプロパティのセットを提供します。
リバーシング: エントリポイントを形式化し、裁量トレードアルゴリズムを開発する
リバーシング: エントリポイントを形式化し、裁量トレードアルゴリズムを開発する

リバーシング: エントリポイントを形式化し、裁量トレードアルゴリズムを開発する

これは、リバーシングトレード戦略のシリーズの最新の記事です。 ここでは、以前の記事で不安定なテスト結果を引き起こした問題を解決します。 また、リバーシング戦略を使用して、任意の相場で裁量トレードの独自のアルゴリズムを開発し、それをテストします。
preview
取引におけるニューラルネットワークの実用化(第2部)コンピュータービジョン

取引におけるニューラルネットワークの実用化(第2部)コンピュータービジョン

コンピュータービジョンを使用すると、価格チャートと指標の視覚的表現に関してニューラルネットワークを訓練できるようになります。この方法では、ニューラルネットワークにデジタルでフィードする必要がないため、テクニカル指標全体でより幅広い操作が可能になります。
DelphiでDLLをMQL5向けに書くためのガイド
DelphiでDLLをMQL5向けに書くためのガイド

DelphiでDLLをMQL5向けに書くためのガイド

本稿は、人気のプログラム言語ObjectPascalを使用しDelphiプログラム環境でDLLモジュールの作成メカニズムを検証します。本稿で使用している資料は、まずは問題を抱えたプログラム初心者用に考えられでおります。外部DLLに接続することでMQL5プログラム言語に埋め込まれた境界を破ります。
preview
自動で動くEAを作る(第07回):口座の種類(II)

自動で動くEAを作る(第07回):口座の種類(II)

今日は、自動モードでシンプルかつ安全に動作するエキスパートアドバイザー(EA)を作成する方法を紹介します。トレーダーは、自動EAが何をしているのかを常に意識しておく必要があります。そうすれば、もしEAが「レールから外れた」場合、トレーダーはできるだけ早くチャートからEAを取り除き、状況をコントロールすることができます。
より優れたプログラマー(第01部): MQL5プログラマーとして成功するためにやめなければいけない5つのこと
より優れたプログラマー(第01部): MQL5プログラマーとして成功するためにやめなければいけない5つのこと

より優れたプログラマー(第01部): MQL5プログラマーとして成功するためにやめなければいけない5つのこと

初心者が最高のコーディングキャリアを築くのを妨げている悪い習慣はたくさんあります。これは上級プログラマーさえにも言えることです。この記事では、それらについて説明し、対処します。この記事は、MQL5で開発者として成功したいすべての人にとって必読です。
preview
RSIディープスリームーブ取引手法

RSIディープスリームーブ取引手法

MetaTrader 5でRSIディープスリームーブ取引テクニックを紹介します。この記事は、株式、通貨、商品などの証券の強さと勢いを測定するために使用されるテクニカル分析指標であるRSIに基づくいくつかの取引テクニックを紹介する新しい一連の研究に基づいています。
preview
取引におけるニューラルネットワークの実用化(実践編)

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

本稿では、Matlabプラットフォームでニューラルネットワークモジュールを実際に使用するための説明と手順を説明します。また、ニューラルネットワークモジュールを使用した取引システム作成の主な側面についても説明します。1つの記事で複合体を紹介できるようにするには、複数のニューラルネットワークモジュール機能を1つのプログラムに組み合わせるように変更する必要がありました。
通貨ペアバスケットをトレードするときに発生するパターンのテスト パート III
通貨ペアバスケットをトレードするときに発生するパターンのテスト パート III

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

この記事では、通貨ペアバスケットのトレード時に検出可能なパターンのテストをします。 ここでは、通貨の動きを互いに相対的に追跡するパターンをテストします。
キャンバスクラスの学習。アンチエイリアスと影
キャンバスクラスの学習。アンチエイリアスと影

キャンバスクラスの学習。アンチエイリアスと影

キャンバスクラスのアンチエイリアシングアルゴリズムは、アンチエイリアスが使用されているすべての構造の基本です。この記事では、アルゴリズムがどのように動作するかについて扱い、可視化に関連する例を示します。また、グラフィックオブジェクトの描画の色合いをカバーし、キャンバス上の図形を描画するために開発された詳細なアルゴリズムがあります。数値解析ライブラリALGLIBは、計算に使用します。
MetaTrader 4 および MetaTrader 5 トレーディングプラットフォームによるソーシャルトレード
MetaTrader 4 および MetaTrader 5 トレーディングプラットフォームによるソーシャルトレード

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

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

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

この記事では、2つのプラットフォームMetaTrader4とMetaTrader5との互換性を確保するために、EAのストップの実装について説明します。
一連の取引に対するリスク評価
一連の取引に対するリスク評価

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

この記事では、トレードシステムの分析における確率と数学的統計理論のメソッドについて説明します。
preview
取引における資金管理

取引における資金管理

資金管理システムの新しい構築方法をいくつか見て、その主な特徴を定義します。今日では、あらゆる好みに合わせて、かなりの数の資金管理戦略が存在します。さまざまな数学的成長モデルに基づいた資金管理方法をいくつか考えてみます。
直近のピップのプロフィットダウンを抽出
直近のピップのプロフィットダウンを抽出

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

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

グラフィカルインタフェースX:リストとテーブルの高度な管理コードの最適化(ビルド7)

ライブラリコードの最適化が必要です。それは、より規則正しく、学習のために読みやすく理解しやすくなければありません。さらに、以前に作成したコントロール(リスト、テーブル、スクロールバー)の開発が続きます。
もうひとつ別の MQL5 OOP クラス
もうひとつ別の MQL5 OOP クラス

もうひとつ別の MQL5 OOP クラス

本稿では一からオブジェクト指向 Expert Advisor を構築する方法をお伝えします。トレードの理論的考えを着想することからその考えを実験的世界で実現する MQL5 EA をプログラムするまでです。実践から学ぶことは IMHO で成功への確実な方法です。よってみなさんが最終的に Forex ロボットのコーディングをするために考えを整理できる方法を確認していただけるよう実例を示していきます。また私の目標はみなさんにオブジェクト指向の原理に忠実に従うようお勧めすることです。
グラフィカルインタフェースVIII:カレンダーコントロール(チャプター1)
グラフィカルインタフェースVIII:カレンダーコントロール(チャプター1)

グラフィカルインタフェースVIII:カレンダーコントロール(チャプター1)

このMetaTraderでのグラフィカルインタフェースの作成に専念した記事シリーズの第八部では、カレンダー、ツリービュー、およびファイルナビゲーターのような複雑な複合コントロールが検討されます。情報が大量のため、それぞれは個別の記事に書かれています。この部分の最初の章では、カレンダーコントロールとその拡張バージョンであるドロップダウンカレンダーに ついて説明します。
Expert Advisor ビジュアルウィザードを用いたExpert Advisorsの作成
Expert Advisor ビジュアルウィザードを用いたExpert Advisorsの作成

Expert Advisor ビジュアルウィザードを用いたExpert Advisorsの作成

MetaTrader 5 用Expert Advisor ビジュアルウィザードは、数分でExpert Advisを設計することができる理解しやすい定義済みトレーディンブロックセットを伴う高い直観的グラフィカル環境を提供します。Expert Advisor ビジュアルウィザードのクリック、ドラッグ、ドロップ方法により鉛筆と紙で行うように外為トレーディング戦略のビジュアル表現とシグナルを作成することができます。こういったトレーディングダイアグラムは、それらをすぐに使える Expert Advisorsに変換するモラニス社製 MQL5によって自動的に分析されます。連携したグラフィカル環境は設計プロセスを簡素化し、 MQL5 コードを書く必要はなくなります。
preview
改善された同事ローソク足パターン認識指標に基づく取引戦略

改善された同事ローソク足パターン認識指標に基づく取引戦略

メタバーベースの指標は、従来のものよりも多くのローソク足を検出しました。これが自動売買に本当に役立つのか、検証してみましょう。
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第13部): 口座オブジェクトイベント
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第13部): 口座オブジェクトイベント

MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第13部): 口座オブジェクトイベント

本稿では、自動取引に影響する口座プロパティの重要な変更を追跡するために、口座イベントの使用について検討しています。口座イベントを追跡するための機能のいくつかは、前の記事で口座オブジェクトコレクションを開発するときに既に実装しています。
preview
連続歩行順最適化(パート1):最適化レポートの使用

連続歩行順最適化(パート1):最適化レポートの使用

最初の記事では、最適化レポートを操作するためのツールキットの作成、ターミナルからのインポート、取得したデータのフィルタリングとソートに関する説明を行います。 MetaTrader5では最適化結果のダウンロードが可能ですが、今回の目的は最適化レポートに独自のデータを追加することです。
preview
ニューラルネットワークの実験(第3回):実用化

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

この連載では、実験と非標準的なアプローチを使用して、収益性の高い取引システムを開発し、ニューラルネットワークがトレーダーに役立つかどうかを確認します。ニューラルネットワークを取引に活用するための自給自足ツールとしてMetaTrader 5にアプローチします。
移動ミニマックス法:テクニカル分析用新インディケータと MQL5への実装実装
移動ミニマックス法:テクニカル分析用新インディケータと MQL5への実装実装

移動ミニマックス法:テクニカル分析用新インディケータと MQL5への実装実装

本稿ではZ.G.Silagadze氏による論文 'Moving Mini-max: a new indicator for technical analysis'を基にした移動ミニマックス インディケータの実装手順について述べます。このインディケータの考え方は、G. Gamov 氏のα 崩壊で提案される量子トンネル現象を基にしています。
preview
取引システムの開発における勾配ブースティング(CatBoost)素朴なアプローチ

取引システムの開発における勾配ブースティング(CatBoost)素朴なアプローチ

PythonでCatBoost分類器を訓練してモデルをmql5にエクスポートし、モデルパラメータとカスタムストラテジーテスターを解析します。Python言語とMetaTrader5ライブラリは、データの準備とモデルの訓練に使用されます。
preview
自動で動くEAを作る(第06回):口座の種類(I)

自動で動くEAを作る(第06回):口座の種類(I)

今日は、自動モードでシンプルかつ安全に動作するエキスパートアドバイザー(EA)を作成する方法を紹介します。このEAは、現状ではどんな状況でも機能しますが、まだ自動化には至っていません。まだ、いくつかの点で工夫が必要です。
MQL5 クックブック:MetaTrader 5トレードイベントへの音声通知
MQL5 クックブック:MetaTrader 5トレードイベントへの音声通知

MQL5 クックブック:MetaTrader 5トレードイベントへの音声通知

本稿では Expert Advisor のファイルに音声ファイルをインクルードすること、それによりトレードイベントに音声通知を追加するなどの問題を考察します。事実、ファイルのインクルードが意味するところは Expert Advisor内に音声ファイルを入れるということです。よってコンパイルされた Expert Advisor (*.ex5) バージョンを他のユーザーに提供する際、音声ファイルは提供せずそれがどこの保存されるか説明する必要があるのです。
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第26部): 未決取引リクエスト - 特定の条件下でのポジションのオープン
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第26部): 未決取引リクエスト - 特定の条件下でのポジションのオープン

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

この記事から始めて、特定の制限時間に達した、指定された利益を超えた、ストップロスによってポジションを決済したなどの特定の条件下で保留中リクエストを使用して取引できるようにする機能を開発します。
MetaTrader 5 でRSS フィードを表示するためのインタラクティブアプリケーション構築
MetaTrader 5 でRSS フィードを表示するためのインタラクティブアプリケーション構築

MetaTrader 5 でRSS フィードを表示するためのインタラクティブアプリケーション構築

本稿では RSS フィードを表示するためのアプリケーションを作成する機能を見ていきます。本稿は MetaTrader 5 用のインタラクティブプログラム作成に標準ライブラリの特徴を利用する方法を示します。
preview
ニューラルネットワークが簡単に(第9部):作業の文書化

ニューラルネットワークが簡単に(第9部):作業の文書化

長い道のりでした。ライブラリ内のコードはどんどん増えてきており、すべてのリンクと依存関係を追跡することが困難になっています。したがって、以前に作成したコードのドキュメントを作成し、新しい手順ごとに更新し続けることをお勧めします。適切に準備された文書化は、作業の整合性を確認するのに役立ちます。
より優れたプログラマー(第03部): MQL5プログラマーとして成功するためにあきらめなければいけない5つのこと
より優れたプログラマー(第03部): MQL5プログラマーとして成功するためにあきらめなければいけない5つのこと

より優れたプログラマー(第03部): MQL5プログラマーとして成功するためにあきらめなければいけない5つのこと

この記事は、プログラミングのキャリアを向上させたい人にとって必読です。本連載は、どんなに経験が豊富な読者でも最高のプログラマーになれることを目的としています。議論されたアイデアは、MQL5プログラミングの初心者だけでなくプロにも役立ちます。
トレードレポートとSMS通知の作成と発行
トレードレポートとSMS通知の作成と発行

トレードレポートとSMS通知の作成と発行

トレーダーはかならずしも何時間もトレーディング端末の前に座っていられるわけでも、またそうしたいわけでもありません。特に、トレーディングシステムが多かれ少なかれ形式化され自動でマーケット状況を特定できる場合にはそうです。本稿ではトレード結果レポートをHTMLファイルとして作成し、FTPを介してWWWサーバーにアップロードする方法について述べます。また、トレードイベント通知をSMSとして携帯電話に送信することみついても考察します。
グラフィカルインタフェースVII: テーブルコントロール(チャプター 1)
グラフィカルインタフェースVII: テーブルコントロール(チャプター 1)

グラフィカルインタフェースVII: テーブルコントロール(チャプター 1)

MetaTraderグラフィカルインタフェースに関するシリーズの第七部では、テキストラベル、エディットボックスとレンダーボックスの3つのテーブルタイプについてお話します。後1つの重要かつ頻繁に使用されるコントロールはタブで、これは、他のコントロールのグループを表示/非表示してMQLアプリケーション内でスペースを有効に使ったインタフェースを開発することを可能にします。
preview
プロップファームから少し教訓を得よう(第1回)-導入編

プロップファームから少し教訓を得よう(第1回)-導入編

今回は、プロップファーム(自己勘定取引会社)が実施するチャレンジルールから得られる教訓のいくつかを取り上げます。これは特に、初心者の方や、この取引の世界で足元を固めるのに苦労している方には重要です。次の記事では、コードの実装について説明します。