MQL5プログラミング記事

icon

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

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

新しい記事を追加
最新 | ベスト
preview
ニューラルネットワークが簡単に(第71回):目標条件付き予測符号化(GCPC)

ニューラルネットワークが簡単に(第71回):目標条件付き予測符号化(GCPC)

前回の記事では、Decision Transformer法と、そこから派生したいくつかのアルゴリズムについて説明しました。さまざまな目標設定手法で実験しました。実験では、さまざまな方法で目標を設定しましたが、それ以前に通過した軌跡に関するモデルの研究は、常に私たちの関心の外にありました。この記事では、このギャップを埋める手法を紹介したいと思います。
preview
ニューラルネットワークが簡単に(第70回):閉形式方策改善演算子(CFPI)

ニューラルネットワークが簡単に(第70回):閉形式方策改善演算子(CFPI)

この記事では、閉形式の方策改善演算子を使用して、オフラインモードでエージェントの行動を最適化するアルゴリズムを紹介します。
preview
初心者からプロまでMQL5をマスターする(第2回):基本的なデータ型と変数の使用

初心者からプロまでMQL5をマスターする(第2回):基本的なデータ型と変数の使用

初心者向け連載の続きです。この記事では、定数や変数を作成する方法、日付や色、その他の便利なデータを書き込む方法を見ていきます。曜日や線のスタイル(実線、点線など)を列挙する方法も学びます。変数と式はプログラミングの基本です。これらは99%のプログラムに間違いなく存在するので、理解することは非常に重要です。したがって、この記事はとてもプログラミング初心者の役に立つでしょう。必要なプログラミング知識レベル:前回の記事(冒頭のリンク参照)の範囲内で、ごく基本的なものです。
preview
ニューラルネットワークが簡単に(第69回):密度に基づく行動方策の支持制約(SPOT)

ニューラルネットワークが簡単に(第69回):密度に基づく行動方策の支持制約(SPOT)

オフライン学習では、固定されたデータセットを使用するため、環境の多様性をカバーする範囲が制限されます。学習過程において、私たちのエージェントはこのデータセットを超える行動を生成することができます。環境からのフィードバックがなければ、そのような行動の評価が正しいとどうやって確信できるのでしょうか。訓練データセット内のエージェントの方策を維持することは、訓練の信頼性を確保するために重要な要素となります。これが、この記事でお話しする内容です。
preview
Candlestick Trend Constraintモデルの構築(第2回):ネイティブ指標の結合

Candlestick Trend Constraintモデルの構築(第2回):ネイティブ指標の結合

この記事では、トレンドから外れたシグナルを選別するために、MetaTrader 5指標を活用することに焦点を当てます。前回に引き続き、MQL5コードを使用してアイデアを最終的なプログラムに伝える方法を探っていきます。
preview
カスタム指標(第1回):MQL5でシンプルなカスタム指標を開発するためのステップバイステップ入門ガイド

カスタム指標(第1回):MQL5でシンプルなカスタム指標を開発するためのステップバイステップ入門ガイド

MQL5を使用してカスタム指標を作成する方法を紹介します。この入門記事では、シンプルなカスタム指標を構築するための基本を説明し、この興味深いトピックを初めて学ぶMQL5プログラマーのために、さまざまなカスタム指標をコーディングするための実践的なアプローチを示します。
preview
知っておくべきMQL5ウィザードのテクニック(第17回):多通貨取引

知っておくべきMQL5ウィザードのテクニック(第17回):多通貨取引

ウィザードを介してEAが組み立てられた場合、デフォルトでは複数の通貨をまたいだ取引は利用できません。トレーダーが一度に複数の銘柄から自分のアイデアをテストする際に、2つの可能なトリックを検討します。
preview
GMDH (The Group Method of Data Handling):MQL5で組合せアルゴリズムを実装する

GMDH (The Group Method of Data Handling):MQL5で組合せアルゴリズムを実装する

この記事では、MQL5における組合せアルゴリズムと、その改良版である組合せ選択(Combinatorial Selective)アルゴリズムの実装について、データ処理のグループ法アルゴリズムファミリーの探求を続けます。
preview
ボラティリティベースの取引システムの構築と最適化の方法(チャイキンボラティリティ - CHV)

ボラティリティベースの取引システムの構築と最適化の方法(チャイキンボラティリティ - CHV)

この記事では、チャイキンボラティリティ(CHV、Chaikin Volatility)という名前の、ボラティリティに基づく後1つの指標を提供します。カスタム指標の使用方法と構築方法を確認した後、カスタム指標の構築方法を理解します。使用できるいくつかの簡単な戦略を共有し、どちらがより優れているかを理解するためにテストします。
preview
Candlestick Trend Constraintモデルの構築(第1回):EAとテクニカル指標について

Candlestick Trend Constraintモデルの構築(第1回):EAとテクニカル指標について

この記事は初心者とプロMQL5開発者の両方を対象としています。これは、シグナルを生成する指標をより長い時間枠のトレンドに定義し、制約するためのコードの一部を提供します。このように、トレーダーはより広い市場視点を取り入れることで戦略を強化することができ、より強固で信頼性の高い売買シグナルが得られる可能性があります。
preview
知っておくべきMQL5ウィザードのテクニック(第16回):固有ベクトルによる主成分分析

知っておくべきMQL5ウィザードのテクニック(第16回):固有ベクトルによる主成分分析

データ分析における次元削減技術である主成分分析について、固有値とベクトルを用いてどのように実装できるかを考察します。いつものように、MQL5ウィザードで使用可能なExpertSignalクラスのプロトタイプの開発を目指します。
preview
ONNX統合の課題を克服する

ONNX統合の課題を克服する

ONNXは、異なるプラットフォーム間で複雑なAIコードを統合するための素晴らしいツールです。ただし、この素晴らしいツールを最大限に活用するためにはいくつかの課題に対処する必要があります。この記事では、読者が直面する可能性のある一般的な問題と、それを軽減する方法について説明します。
preview
データサイエンスと機械学習(第22回):オートエンコーダニューラルネットワークを活用してノイズからシグナルへと移行することで、よりスマートな取引を実現する

データサイエンスと機械学習(第22回):オートエンコーダニューラルネットワークを活用してノイズからシグナルへと移行することで、よりスマートな取引を実現する

目まぐるしく変化する金融市場の世界では、意味のあるシグナルをノイズから切り離すことが、取引を成功させるために極めて重要です。オートエンコーダは、洗練されたニューラルネットワークアーキテクチャを採用するため、市場データ内の隠れたパターンを発見し、ノイズの多い入力を実用的な洞察に変換することに優れています。この記事では、オートエンコーダがいかに取引慣行に革命をもたらし、トレーダーに意思決定を強化し、今日のダイナミックな市場で競争力を得るための強力なツールを提供しているかを探ります。
preview
フェアバリューギャップ(FVG)/不均衡取引方法をステップバイステップで学ぶ:スマートマネーコンセプトのアプローチ

フェアバリューギャップ(FVG)/不均衡取引方法をステップバイステップで学ぶ:スマートマネーコンセプトのアプローチ

フェアバリューギャップ(FVG)取引戦略に基づいて、MQL5で自動売買アルゴリズムを作成して実装するためのステップバイステップのガイドです。初心者にも経験豊富なトレーダーにも役立つエキスパートアドバイザー(EA)の作成に関する詳細なチュートリアルです。
preview
知っておくべきMQL5ウィザードのテクニック(第15回):ニュートンの多項式を用いたサポートベクトルマシン

知っておくべきMQL5ウィザードのテクニック(第15回):ニュートンの多項式を用いたサポートベクトルマシン

サポートベクトルマシンは、データの次元を増やす効果を調べることで、あらかじめ定義されたクラスに基づいてデータを分類します。これは教師あり学習法で、多次元のデータを扱う可能性を考えるとかなり複雑です。この記事では、2次元データの非常に基本的な実装であるニュートンの多項式が、価格とアクションを分類する際にどのように効率的に実行できるかを検討します。
preview
ニュース取引が簡単に(第1回):データベースの作成

ニュース取引が簡単に(第1回):データベースの作成

ニュース取引は複雑で圧倒されるかもしれませんが、この記事ではニュースデータを入手する手順を説明し、さらに、MQL5経済指標カレンダーとその特徴についても学びます。
preview
GMDH (The Group Method of Data Handling):MQL5で多層反復アルゴリズムを実装する

GMDH (The Group Method of Data Handling):MQL5で多層反復アルゴリズムを実装する

この記事では、MQL5におけるGMDH (The Group Method of Data Handling)の多層反復アルゴリズム実装について説明します。
preview
どんな市場でも優位性を得る方法

どんな市場でも優位性を得る方法

現在の技術レベルに関係なく、取引したいどのような市場でも先んじることができる方法を学びましょう。
preview
知っておくべきMQL5ウィザードのテクニック(第14回):STFによる多目的時系列予測

知っておくべきMQL5ウィザードのテクニック(第14回):STFによる多目的時系列予測

データのモデリングに「空間」と「時間」の両方の測定基準を使用する空間的時間的融合は、主にリモートセンシングや、私たちの周囲をよりよく理解するための他の多くの視覚ベースの活動で有用です。発表された論文のおかげで、トレーダーへの可能性を検証することで、その活用に斬新なアプローチを取ります。
preview
MetaTrader 5用のMQTTクライアントの開発:TDDアプローチ(最終回)

MetaTrader 5用のMQTTクライアントの開発:TDDアプローチ(最終回)

この記事は、MQTT 5.0プロトコルのネイティブMQL5クライアントの開発ステップを説明する連載の最終回です。ライブラリはまだ製品化されていませんが、この部分では、他の証券会社から入手したティック(またはレート)でカスタム銘柄を更新するためにクライアントを使用します。ライブラリの現在の状況、MQTT 5.0プロトコルに完全に準拠するために足りないもの、可能なロードマップ、そしてその開発をフォローし貢献する方法についての詳細は、この記事の最後をご覧ください。
preview
MQL5で自己最適化エキスパートアドバイザーを構築する

MQL5で自己最適化エキスパートアドバイザーを構築する

どのような市場にも対応できる専門的なエキスパートアドバイザー(EA)を構築します。
preview
データサイエンスと機械学習(第21回):ニューラルネットワークと最適化アルゴリズムの解明

データサイエンスと機械学習(第21回):ニューラルネットワークと最適化アルゴリズムの解明

ニューラルネットワーク内部で使用される最適化アルゴリズムを解明しながら、ニューラルネットワークの核心に飛び込みます。この記事では、ニューラルネットワークの可能性を最大限に引き出し、モデルを精度と効率の新たな高みへと押し上げる重要なテクニックご紹介します。
preview
制約付きCustom Maxを実装するための一般的な最適化定式化(GOF)

制約付きCustom Maxを実装するための一般的な最適化定式化(GOF)

この記事では、MetaTrader 5端末の設定タブでCustom Maxを選択する際に、複数の目的と制約条件を持つ最適化問題を実装する方法を紹介します。最適化問題の例は、ドローダウンが10%未満、連敗回数が5回未満、1週間の取引回数が5回以上となるように、プロフィットファクター、ネットプロフィット、リカバリーファクターを最大化するといったものです。
preview
MQL5入門(第6部):MQL5における配列関数の入門ガイド

MQL5入門(第6部):MQL5における配列関数の入門ガイド

MQL5の旅の次の段階を始めましょう。この洞察に満ちて初心者に優しい記事では、残りの配列関数について調べ、複雑な概念を解明し、効率的な取引戦略を作成できるようにします。ArrayPrint、ArrayInsert、ArraySize、ArrayRange、ArrarRemove、ArraySwap、ArrayReverse、ArraySortについて説明します。アルゴリズム取引の専門知識を、これらの必要不可欠な配列関数で高めてください。一緒にMQL5マスターへの道を歩みましょう。
preview
Pythonを使用したEA用ディープラーニングONNXモデルの季節性フィルタと期間

Pythonを使用したEA用ディープラーニングONNXモデルの季節性フィルタと期間

Pythonでディープラーニングのモデルを作成する際、季節性から恩恵を受けることはできるのでしょうか。ONNXモデルのデータをフィルタすることでより良い結果が得られるのでしょうか。どの期間を使用するべきでしょうか。この記事では、これらすべてを取り上げます。
preview
知っておくべきMQL5ウィザードのテクニック(第13回):ExpertSignalクラスのためのDBSCAN

知っておくべきMQL5ウィザードのテクニック(第13回):ExpertSignalクラスのためのDBSCAN

DBSCAN (Density-Based Spatial Clustering of Applications with Noise)は、データをグループ化する教師なし形式であり、入力パラメータをほとんど必要としません。入力パラメータは2つだけであり、K平均法などの他のアプローチと比較すると利点が得られます。ウィザードで組み立てたEAを使用してテストし、最終的に取引するために、これがどのように建設的であり得るかを掘り下げます。
preview
MQL5を使ったシンプルな多通貨エキスパートアドバイザーの作り方(第7回):オーサムオシレーターシグナルを持つジグザグ

MQL5を使ったシンプルな多通貨エキスパートアドバイザーの作り方(第7回):オーサムオシレーターシグナルを持つジグザグ

この記事の多通貨エキスパートアドバイザー(EA)は、オーサムオシレーター(AO、Awesome Oscillator)でフィルタされたジグザグ(ZigZag)指標を使用するまたは互いのシグナルをフィルタするEA(自動売買)です。
preview
不一致問題(Disagreement Problem):AIにおける複雑性の説明可能性を深く掘り下げる

不一致問題(Disagreement Problem):AIにおける複雑性の説明可能性を深く掘り下げる

説明可能性という波乱の海を航海しながら、人工知能(AI)の謎の核心に飛び込みましょう。モデルがその内部構造を隠す領域において、私たちの探求は、機械学習の回廊にこだまする「不一致問題」を明らかにします。
preview
MQL5の高度な変数とデータ型

MQL5の高度な変数とデータ型

変数とデータ型は、MQL5プログラミングだけでなく、どのプログラミング言語でも非常に重要なトピックです。MQL5の変数とデータ型は、単純なものと高度なものに分類できます。単純なものについては前回の記事ですでに述べたので、今回は高度なものを特定し、それについて学ぶことにします。
preview
MetaTrader 5用のMQTTクライアントの開発:TDDアプローチ(第6回)

MetaTrader 5用のMQTTクライアントの開発:TDDアプローチ(第6回)

この記事は、MQTT 5.0プロトコル用のネイティブMQL5クライアントの開発ステップを説明する連載の第6部です。今回は、私たちの最初のリファクタリングにおける主な変更点、私たちがどのようにしてパケット構築クラスのための実行可能な設計図にたどり着いたか、どのようにPUBLISHとPUBACKパケットを構築しているか、そしてPUBACK Reason Codeの背後にあるセマンティクスについてコメントします。
preview
Pythonを使用した深層学習GRUモデルとEAによるONNX、GRUとLSTMモデルの比較

Pythonを使用した深層学習GRUモデルとEAによるONNX、GRUとLSTMモデルの比較

Pythonを使用してGRU ONNXモデルを作成する深層学習のプロセス全体を説明し、最後に取引用に設計されたエキスパートアドバイザー(EA)の作成と、その後のGRUモデルとLSTNモデルの比較をおこないます。
preview
プログラミングパラダイムについて(第2部):オブジェクト指向アプローチによるプライスアクションエキスパートアドバイザーの開発

プログラミングパラダイムについて(第2部):オブジェクト指向アプローチによるプライスアクションエキスパートアドバイザーの開発

オブジェクト指向プログラミングのパラダイムとMQL5コードへの応用について学びます。この第2回目の記事では、オブジェクト指向プログラミングの具体的な内容をより深く掘り下げ、実践的な例を通して実体験を提供します。EMA指標とローソク足価格データを使用した、手続き型プライスアクションエキスパートアドバイザー(EA)をオブジェクト指向コードに変換する方法を学びます。
preview
MQL5における修正グリッドヘッジEA(第3部):シンプルヘッジ戦略の最適化(I)

MQL5における修正グリッドヘッジEA(第3部):シンプルヘッジ戦略の最適化(I)

この第3部では、以前に開発したシンプルヘッジとシンプルグリッドエキスパートアドバイザー(EA)を再考します。最適な戦略の使用を目指し、数学的分析と総当り攻撃アプローチを通じてシンプルヘッジEAを改良することに焦点を移します。戦略の数学的最適化について深く掘り下げ、後の回でコーディングに基づく最適化を探求するための舞台を整えます。
preview
MQL5入門(第5部):MQL5における配列関数の入門ガイド

MQL5入門(第5部):MQL5における配列関数の入門ガイド

全くの初心者のために作られた第5部では、MQL5配列の世界を探検してみましょう。この記事は、複雑なコーディングの概念を簡素化し、明快さと包括性に重点を置いています。質問が受け入れられ、知識が共有される、学習者のコミュニティに仲間入りしてください。
preview
ニューラルネットワークが簡単に(第68回):オフライン選好誘導方策最適化

ニューラルネットワークが簡単に(第68回):オフライン選好誘導方策最適化

最初の記事で強化学習を扱って以来、何らかの形で、環境の探索と報酬関数の決定という2つの問題に触れてきました。最近の記事は、オフライン学習における探索の問題に費やされています。今回は、作者が報酬関数を完全に排除したアルゴリズムを紹介したいと思います。
preview
RestAPIを統合したMQL5強化学習エージェントの開発(第2回):三目並べゲームREST APIとのHTTPインタラクションのためのMQL5関数

RestAPIを統合したMQL5強化学習エージェントの開発(第2回):三目並べゲームREST APIとのHTTPインタラクションのためのMQL5関数

この記事では、MQL5がPythonやFastAPIとどのように相互作用できるか、MQL5のHTTP呼び出しを使用してPythonの三目並べゲームと相互作用する方法について説明します。この記事では、この統合のためのFastAPIを使用したAPIの作成について説明し、MQL5でのテストスクリプトを提供することで、MQL5の多用途性、Pythonのシンプルさ、そして革新的なソルーションを生み出すために異なるテクノロジーを接続するFastAPIの有効性を強調しています。
preview
RestAPIを統合したMQL5強化学習エージェントの開発(第1回):MQL5でRestAPIを使用する方法

RestAPIを統合したMQL5強化学習エージェントの開発(第1回):MQL5でRestAPIを使用する方法

この記事では、異なるアプリケーションやソフトウェアシステム間の相互作用におけるAPI (Application Programming Interface)の重要性についてお話しします。アプリケーション間のやり取りを簡素化し、データや機能を効率的に共有することを可能にするAPIの役割を見ていきます。
preview
リプレイシステムの開発(第37回):道を切り開く(I)

リプレイシステムの開発(第37回):道を切り開く(I)

今回は、もっと前にやりたかったことをようやく始めます。確固たる地盤がないため、この部分を公に発表する自信がありませんでした。今、私にはその根拠があります。この記事の内容を理解することにできるだけ集中することをお勧めします。単に読むだけではなくて、という意味です。ここで強調しておきたいのは、この記事を理解できなければ、それに続く記事の内容を理解することはできないということです。
preview
Developing a Replay System (Part 36): Making Adjustments (II)

Developing a Replay System (Part 36): Making Adjustments (II)

One of the things that can make our lives as programmers difficult is assumptions. In this article, I will show you how dangerous it is to make assumptions: both in MQL5 programming, where you assume that the type will have a certain value, and in MetaTrader 5, where you assume that different servers work the same.
preview
リプレイシステムの開発(第35回):調整(I)

リプレイシステムの開発(第35回):調整(I)

前に進む前に、いくつかのことを解決する必要があります。これらは実際には必要な修正ではなく、クラスの管理方法や使用方法の改善です。その理由は、システム内の何らかの相互作用によって障害が発生したということです。このような失敗をなくすために原因を突き止めようと試みましたが、すべて失敗に終わりました。例えば、C/C++でポインタや再帰を使用すると、プログラムがクラッシュしてしまいます。