MQL4とMQL5のプログラム記事

icon

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

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

新しい記事を追加
最新 | ベスト
トレードレポートとSMS通知の作成と発行
トレードレポートとSMS通知の作成と発行

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

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

チャネルアドバンスドモデルWolfe Waves

この記事は、Wolfe Wavesのマーキングパターンの法則を紹介します。波の正しい形成を理解する上で役に立つ正確なマーキングのルールや構築の詳細をご覧になれます。
preview
連続歩行順最適化(パート1):最適化レポートの使用

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

最初の記事では、最適化レポートを操作するためのツールキットの作成、ターミナルからのインポート、取得したデータのフィルタリングとソートに関する説明を行います。 MetaTrader5では最適化結果のダウンロードが可能ですが、今回の目的は最適化レポートに独自のデータを追加することです。
preview
ビル・ウィリアムズのMFIによる取引システムの設計方法を学ぶ

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

これは、人気のあるテクニカル指標に基づいて取引システムを設計する方法を学ぶための連載の新しい記事です。今回はビル・ウィリアムズの「マーケット・ファシリテーション・インデックス(BW MFI、Bill Williams' Market Facilitation Index)」を取り上げます。
preview
取引におけるニューラルネットワークの実用化(実践編)

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

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

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

今回は、受注システムに関する問題を迅速かつ効率的に処理するためのイベント処理システムの使用方法について紹介します。このシステムにより、EAは必要なデータを常に検索する必要がなくなり、より速く動作するようになります。
Expert Advisor ビジュアルウィザードを用いたExpert Advisorsの作成
Expert Advisor ビジュアルウィザードを用いたExpert Advisorsの作成

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

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

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

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

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

前稿『GUI を使用した半自動Expert Advisor』を書いてのち、より複雑なインディケータやExpert Advisorsに新しい関数を伴うインターフェースを強化したいと思うようになりました。MQL5 標準ライブラリクラスを知ってから、新しいウィジェットを実装しました。本稿は、インディケータやExpert Advisorsで使用可能な新しい MQL5 GUI ウィジェットの設計と実装について述べます。本稿で提供しているウィジェットは CChartObjectSpinner、 CChartObjectProgressBar、CChartObjectEditTable です。
チャート上でトレーディングの考え方を時間をかけずに検証する方法
チャート上でトレーディングの考え方を時間をかけずに検証する方法

チャート上でトレーディングの考え方を時間をかけずに検証する方法

本稿はトレーディングの考え方を速く視覚的に検証する方法について述べます。その方法は価格チャート、シグナルインディケータ、残高計算インディケータの組合せを基にしています。そんなわけで、これからトレーディングの考え方を検索する方法やその考え方を時間をかけずに検証する方法をみなさんと共有したいと思います。
より優れたプログラマー(第05部): より速い開発者になる方法
より優れたプログラマー(第05部): より速い開発者になる方法

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

すべての開発者は、コードをより速く書くことを望んでいます。より速く効果的にコードを書けることは、少数の人々だけが生まれつき持っているような特別な能力ではありません。これは、すべてのコーダーが習得できるスキルです。この記事ではそれを教えようと思います。
preview
取引におけるニューラルネットワークの実用化(第2部)コンピュータービジョン

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

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

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

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

マーケットでプロダクトを購入することについてのアドバイス段階的ガイド

この段階的ガイドは希望のプロダクトをよりよく理解し検索しやすくするアドバイスと技を提供します。本稿は適切なプロダクトを検索し、不要なプロダクトをより分け、みなさんにとってのプロダクトの効果と本質を判断するための異なる方法を解き明かす試みをしています。
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第26部): 未決取引リクエスト - 特定の条件下でのポジションのオープン
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第26部): 未決取引リクエスト - 特定の条件下でのポジションのオープン

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

この記事から始めて、特定の制限時間に達した、指定された利益を超えた、ストップロスによってポジションを決済したなどの特定の条件下で保留中リクエストを使用して取引できるようにする機能を開発します。
より優れたプログラマー(第03部): MQL5プログラマーとして成功するためにあきらめなければいけない5つのこと
より優れたプログラマー(第03部): MQL5プログラマーとして成功するためにあきらめなければいけない5つのこと

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

この記事は、プログラミングのキャリアを向上させたい人にとって必読です。本連載は、どんなに経験が豊富な読者でも最高のプログラマーになれることを目的としています。議論されたアイデアは、MQL5プログラミングの初心者だけでなくプロにも役立ちます。
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第12部): 「口座」オブジェクトクラスと口座オブジェクトのコレクション
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第12部): 「口座」オブジェクトクラスと口座オブジェクトのコレクション

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

前の記事では、ライブラリでMQL4ポジション決済イベントを定義し、未使用の注文プロパティを取り除きました。本稿では、口座オブジェクトの作成を検討して口座オブジェクトのコレクションを開発し、口座イベントを追跡する機能を準備します。
preview
自動で動くEAを作る(第06回):口座の種類(I)

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

今日は、自動モードでシンプルかつ安全に動作するエキスパートアドバイザー(EA)を作成する方法を紹介します。このEAは、現状ではどんな状況でも機能しますが、まだ自動化には至っていません。まだ、いくつかの点で工夫が必要です。
preview
ONNXをマスターする:MQL5トレーダーにとってのゲームチェンジャー

ONNXをマスターする:MQL5トレーダーにとってのゲームチェンジャー

機械学習モデルを交換するための強力なオープン標準形式であるONNXの世界に飛び込んでみましょう。ONNXを活用することでMQL5のアルゴリズム取引にどのような変革がもたらされ、トレーダーが最先端のAIモデルをシームレスに統合し、戦略を新たな高みに引き上げることができるようになるかがわかります。クロスプラットフォーム互換性の秘密を明らかにし、MQL5取引の取り組みでONNXの可能性を最大限に引き出す方法を学びましょう。ONNXをマスターするためのこの包括的なガイドで取引ゲームを向上させましょう。
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第25部): 未決取引リクエスト - リクエストオブジェクトの管理
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第25部): 未決取引リクエスト - リクエストオブジェクトの管理

MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第25部): 未決取引リクエスト - リクエストオブジェクトの管理

前の記事では、ライブラリオブジェクトの一般的な概念に対応する保留中リクエストオブジェクトのクラスを作成しました。今回は、保留中リクエストオブジェクトの管理を許可するクラスについてです。
チャネルの描画 : 内見および外観
チャネルの描画 : 内見および外観

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

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

ニューロネット用レシピ

本稿は、『多層』ケーキを焼く初心者を対象としています。
preview
ニューラルネットワークが簡単に(第7回): 適応的最適化法

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

以前の記事では、ネットワーク内のすべてのニューロンに対して同じ学習率を用いてニューラルネットワークをトレーニングするためにストキャスティクススロープ降下法を使用しました。 本論文では、各ニューロンの学習速度を変化させることができる適応学習法に着目します。 その是非についても検討していきたいと思います。
外部指標のためのアラートとコメント:外部スキャンに基づく多通貨分析
外部指標のためのアラートとコメント:外部スキャンに基づく多通貨分析

外部指標のためのアラートとコメント:外部スキャンに基づく多通貨分析

多通貨の分析と複数時間軸での分析のためのアラートこの記事では、チャートにドラッグ&ドロップしなくて、外部指標にある状態を分析する方法について説明しています。いわゆる「外部スキャニング」です。
preview
データサイエンスと機械学習(第05回):決定木

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

決定木は、人間の思考方法を模倣してデータを分類します。木を作り、それを使ってデータを分類・予測する方法を見てみましょう。決定木アルゴリズムの主な目的は、不純物を含むデータを純粋なノードまたはそれに近いノードに分離することです。
統計的推定
統計的推定

統計的推定

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

母集団最適化アルゴリズム:カッコウ最適化アルゴリズム(COA)

次に考察するのは、レヴィフライトを使ったカッコウ検索最適化アルゴリズムです。これは最新の最適化アルゴリズムの1つで、リーダーボードの新しいリーダーです。
グラフィカルインタフェース  II:メニュー項目要素(チャプター1)
グラフィカルインタフェース  II:メニュー項目要素(チャプター1)

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

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

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

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

あらゆるタイプのトレーリングストップを開発してEAに接続する方法

この記事では、様々なトレーリングストップを簡単に作成するためのクラスと、トレーリングストップを任意のEAに接続する方法について説明します。
非標準タイムフレームでエキスパートアドバイザーをテストするには
非標準タイムフレームでエキスパートアドバイザーをテストするには

非標準タイムフレームでエキスパートアドバイザーをテストするには

これは簡単なことではありません。”超”簡単なことです。非標準タイムフレームでエキスパートアドバイザーをテストすることは可能です!必要なことは、標準タイムフレームのデータを非標準タイムフレームのデータに置き換えることだけです。加えて、非標準タイムフレームのデータをいくつか使ってエキスパートアドバイザーをテストすることもできます。
preview
MQL5入門(第8回):初心者のためのEA構築ガイド(II)

MQL5入門(第8回):初心者のためのEA構築ガイド(II)

この記事では、MQL5フォーラムでよく見られる初心者からの質問を取り上げ、実践的な解決策を紹介します。売買やローソク足の価格取得、取引限度額の設定、取引期間や利益/損失の閾値の管理といった基本的なタスクを自動売買で実行する方法を学びます。MQL5でのこれらの概念の理解と実装を強化するため、ステップごとのガイダンスも提供します。
preview
MQL5でのグラフィカルパネルの作成を簡単に

MQL5でのグラフィカルパネルの作成を簡単に

この記事では、取引において最も価値があり役立つツールの1つであるグラフィカルパネルを作成する必要がある人に、シンプルで簡単なガイドを提供します。グラフィカルパネルは、取引に関するタスクを簡素化および容易にして、時間を節約し、気を散らすことなく取引プロセスそのものに集中するのに役立ちます。
preview
MQL5用スキャルピングオーダーフロー

MQL5用スキャルピングオーダーフロー

このMetaTrader 5エキスパートアドバイザー(EA)は、高度なリスク管理を備えたスキャルピングオーダーフロー戦略を実装しています。複数のテクニカル指標を使用し、オーダーフローの不均衡に基づいて取引機会を特定します。バックテストは潜在的な収益性を示しているが、特にリスク管理と取引結果の比率において、さらなる最適化の必要性を強調しています。経験豊富なトレーダーに適していますが、本番運用の前に十分なテストと理解が必要です。
トレーディングモデルに基づくマルチエキスパートアドバイザーの作成
トレーディングモデルに基づくマルチエキスパートアドバイザーの作成

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

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

float16およびfloat8形式のONNXモデルを扱う

機械学習モデルの表現に使用されるデータ形式は、その有効性に決定的な役割を果たします。近年、深層学習モデルを扱うために特別に設計された新しい型のデータがいくつか登場しています。この記事では、現代のモデルで広く採用されるようになった2つの新しいデータ形式に焦点を当てます。
手動のチャート作成および取引ツールキット(第I部)準備: 構造の説明とヘルパークラス
手動のチャート作成および取引ツールキット(第I部)準備: 構造の説明とヘルパークラス

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

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

取引システムのコンポーネントを分析することによる有効性の評価

本稿では、個々の構成要素を分析することで、複合取引システムの有効性を検証していきます。グラフィックであれ、インディケータや何かしらのものをベースにしたものであれ、どんな分析も金融市場取引で成功を収めるための重要な要素の一つです。この記事では、いくつかの独立した簡単な取引システムの検証のようなものと、それらの有効性や並行利用の有用性を分析します。
preview
MQL5の構造体とデータ表示メソッド

MQL5の構造体とデータ表示メソッド

この記事では、MqlDateTime、MqlTick、MqlRates、MqlBookInfoの各構造体と、それらからデータを表示するメソッドについて見ていきます。構造体のすべてのフィールドを表示するためには、標準的なArrayPrint()関数があります。この関数では、配列に含まれるデータを便利な表形式で、扱われる構造体の型とともに表示します。
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第7部): StopLimit注文発動イベント、注文およびポジション変更イベント機能の準備
MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第7部): StopLimit注文発動イベント、注文およびポジション変更イベント機能の準備

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

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