MQL5取引ツール(第23回):カメラ制御対応DirectX 3Dグラフによる二項分布分析
MQL5における二項分布グラフ描画ツールをさらに発展させ、DirectXを統合することで3D可視化を実現します。これにより、カメラ制御による回転、ズーム、自動フィット機能を備えた切り替え可能な2D/3Dモードが利用可能になります。3Dヒストグラムバー、グラウンドプレーン、軸を理論的な確率質量関数(PMF)曲線とともに描画しながら、統計パネル、凡例、カスタマイズ可能なテーマ、グラデーション、ラベルなどの2D要素も維持します。
ニューラルネットワークの実践:最小二乗法
この記事では、数式がコードで実装されたときよりも見た目が複雑になる理由など、いくつかのアイデアについて説明します。さらに、チャートの象限を設定する方法と、MQL5コードで発生する可能性のある1つの興味深い問題についても検討します。正直に言うと、まだどう説明すればいいのかよくわかりません。とにかく、コードで修正する方法を紹介します。
行列分解:より実用的なモデリング
行と列ではなく列のみが指定されているため、行列モデリングが少し奇妙であることに気付かなかったかもしれません。行列分解を実行するコードを読むと、これは非常に奇妙に見えます。行と列がリストされていることを期待していた場合、因数分解しようとしたときに混乱する可能性があります。さらに、この行列モデリング方法は最適ではありません。これは、この方法で行列をモデル化すると、いくつかの制限に遭遇し、より適切な方法でモデル化がおこなわれていれば必要のない他の方法や関数を使用せざるを得なくなるためです。
マーケットプロファイルインジケーター(第2回):キャンバス上の最適化と描画
この記事では、複数のグラフィカルオブジェクトでの描画を、CCanvasクラスのオブジェクト上での描画に置き換えた、最適化されたマーケットプロファイルインジケーターのバージョンについて考察しています。
最適化アルゴリズムの効率における乱数生成器の品質の役割
この記事では、メルセンヌ・ツイスタ乱数生成器を取り上げ、MQL5の標準的な乱数生成器と比較します。また、乱数生成器の品質が最適化アルゴリズムの結果に与える影響についても調べます。
MQL5での取引戦略の自動化(第39回):信頼区間とダッシュボードを備えた統計的平均回帰
統計的平均回帰取引用のMQL5エキスパートアドバイザー(EA)を開発します。指定期間における平均、分散、歪度、尖度、ジャック=ベラ統計量などのモーメントを算出し、非正規分布を特定するとともに、適応的な閾値を用いた信頼区間に基づいて売買シグナルを生成します。
ニューラルネットワークが簡単に(第93回):周波数領域と時間領域における適応予測(最終回)
本稿では、時系列予測において2つのブロック(周波数と時間)の結果を適応的に組み合わせるATFNetモデルのアプローチの実装を継続します。
タブーサーチ(TS)
この記事では、最初期かつ最も広く知られているメタヒューリスティック手法の一つであるタブーサーチアルゴリズムについて解説します。初期解の選択や近傍解の探索から始め、特にタブーリストの活用に焦点を当てながら、アルゴリズムの動作を詳しく見ていきます。本記事では、タブーサーチの主要な特徴と要素について取り上げます。
リプレイシステムの開発(第30回):エキスパートアドバイザープロジェクト - C_Mouseクラス(IV)
今日は、プログラマーとしての職業生活のさまざまな段階で非常に役立つテクニックを学びます。多くの場合、制限されているのはプラットフォーム自体ではなく、制限について話す人の知識です。この記事では、常識と創造性があれば、クレイジーなプログラムなどを作成することなく、MetaTrader 5 プラットフォームをより面白くて多用途にし、シンプルでありながら安全で信頼性の高いコードを作成できることを説明します。創造力を駆使して、ソース コードを1行も削除したり追加したりすることなく、既存のコードを変更します。
リプレイシステムの開発(第44回):Chart Tradeプロジェクト(III)
前回の記事では、OBJ_CHARTで使用するテンプレートデータの操作方法について解説しました。ただし、あの記事ではトピックの概要に焦点を当て、詳細な部分には触れていませんでした。これは、説明をよりシンプルにするために、非常に簡略化された手法を用いたからです。物事は一見シンプルに見えることが多いですが、実際にはそうではないケースもあり、全体を正確に理解するためには、まず最も基本的な部分をしっかり押さえる必要があります。
リプレイシステムの開発(第56回):モジュールの適応
モジュール同士はすでに適切に連携していますが、リプレイサービスでマウスポインタを使用しようとするとエラーが発生します。次のステップに進む前に、この問題を修正する必要があります。さらに、マウスインジケーターのコードにある別の問題も修正します。この修正によって、今回のバージョンは最終的に安定し、洗練されたものになります。
PythonとMQL5による多銘柄分析(第3回):三角為替レート
トレーダーは、誤ったシグナルによるドローダウンに直面することが多い一方で、確認を待ちすぎることで、有望な機会を逃すこともあります。本稿では、ドル建て銀価格(XAGUSD)、ユーロ建て銀価格(XAGEUR)、およびEURUSD為替レートを用いた三角裁定取引戦略を紹介し、市場のノイズをフィルタリングする方法を解説します。市場間の相関関係を活用することで、隠れた市場センチメントをリアルタイムで捉え、エントリータイミングをより洗練させることが可能になります。
MQL5経済指標カレンダーを使った取引(第6回):ニュースイベント分析とカウントダウンタイマーによるトレードエントリーの自動化
本記事では、MQL5経済指標カレンダーを活用して、ユーザー定義のフィルターと時間オフセットに基づいた自動取引エントリーを実装します。対象となる経済指標イベントを検出し、予想値と前回値の比較により、買うか売るかの判断を下します。動的なカウントダウンタイマーは、ニュース公開までの残り時間を表示し、取引後には自動的にリセットされます。
MQL5経済指標カレンダーを使った取引(第8回):ニュース駆動型バックテストの最適化 - スマートなイベントフィルタリングと選択的ログ
本記事では、スマートなイベントフィルタリングと選択的ログ出力を用いて経済カレンダーを最適化し、ライブおよびオフラインモードでのバックテストをより高速かつ明確に実施できるようにします。イベント処理を効率化し、ログを重要な取引やダッシュボードイベントに絞ることで、戦略の可視化を向上させます。これらの改善により、ニュース駆動型取引戦略のテストと改善をシームレスにおこなえるようになります。
MQL5からDiscordへのメッセージの送信、Discord-MetaTrader 5ボットの作成
Telegramと同様に、Discordもその通信APIを使用してJSON形式の情報やメッセージを受信することができます。本記事では、MetaTrader5からDiscordの取引コミュニティに取引シグナルやアップデートを送信するためにDiscord APIをどのように利用できるかを探っていきます。
リプレイシステムの開発(第29回):エキスパートアドバイザープロジェクト - C_Mouseクラス(III)
C_Mouseクラスを改良した後は、分析のためのまったく新しいフレームワークを作るためのクラスを作ることに集中しましょう。この新しいクラスを作るのに、継承やポリモーフィズムは使用しません。その代わりに、価格線に新しいオブジェクトを追加します。それがこの記事でやろうとしていることです。次回は、分析結果を変更する方法について見るつもりです。これらはすべて、C_Mouseクラスのコードを変更することなくおこなわれます。実際には、継承やポリモーフィズムを使用すれば、もっと簡単に実現できるでしょう。しかし、同じ結果を得る方法は他にもあります。
人工電界アルゴリズム(AEFA)
この記事では、クーロンの静電気力の法則に触発された人工電界アルゴリズム(AEFA: Artificial Electric Field Algorithm)を紹介します。このアルゴリズムは、荷電粒子とその相互作用を利用して複雑な最適化問題を解決するために電気現象をシミュレートします。AEFAは、自然法則に基づいた他のアルゴリズムと比較して、独自の特性を示します。
汎用MLP近似器に基づくエキスパートアドバイザー
この記事では、機械学習の深い知識がなくても利用できる、取引EAでのニューラルネットワークの簡単でアクセスしやすい使用方法を紹介しています。この方法では、目的関数の正規化を省略できるほか、「重みの爆発」や「収束停止」といった問題を解消し、直感的な学習と結果の視覚的な管理を可能にしています。
データサイエンスとML(第35回):MQL5でのNumPy活用術 - 少ないコードで複雑なアルゴリズムを構築する技法
NumPyライブラリは、Pythonプログラミング言語においてほぼすべての機械学習アルゴリズムの中核を支えています。本記事では、高度なモデルやアルゴリズムの構築を支援するために、複雑なコードをまとめたモジュールを実装していきます。
MQL5での取引戦略の自動化(第27回):視覚的なフィードバックによるプライスアクションクラブハーモニックパターンの作成
本記事では、MQL5で弱気、強気両方のクラブ(Crab)ハーモニックパターンを、ピボットポイントとフィボナッチ比率を用いて識別し、正確なエントリー、ストップロス、テイクプロフィットレベルを使用して取引を自動化するクラブパターンシステムを開発します。また、XABCDパターン構造やエントリーレベルを表示するために、三角形やトレンドラインなどのチャートオブジェクトを使った視覚的な表示機能を追加します。
プライスアクション分析ツールキットの開発(第49回):トレンド系、モメンタム系、ボラティリティ系インジケーターを1つのMQL5システムに統合する
Multi Indicator Handler EAでMetaTrader 5のチャートをシンプルにしましょう。このインタラクティブなダッシュボードは、トレンド系、モメンタム系、ボラティリティ系インジケーターを1つのリアルタイムパネルに統合します。用途に応じてプロファイルを瞬時に切り替え、ワンクリックで表示と非表示を切り替えてチャートを整理し、プライスアクションに集中できます。本記事では、これをMQL5で自作してカスタマイズする手順をステップバイステップで解説します。
人工蜂の巣アルゴリズム(ABHA):理論と方法
この記事では、2009年に開発された人工蜂の巣アルゴリズム(ABHA)について説明します。このアルゴリズムは、連続的な最適化問題を解決することを目的としています。この記事では、蜂がそれぞれの役割を担って効率的に資源を見つける蜂のコロニーの行動から、ABHAがどのようにインスピレーションを得ているかを探ります。
初級から中級まで:テンプレートとtypename(I)
この記事では、多くの初心者が避けがちな概念の1つを取り上げます。これはテンプレートに関連する話題で、多くの人がテンプレートの基本原理を理解していないため、決して簡単なテーマではありません。その基本原理とは、関数や手続きのオーバーロードです。
MQL5での暗号化の探索:ステップごとのアプローチ
この記事では、MQL5内での暗号化の統合について探り、取引アルゴリズムのセキュリティと機能を強化する方法を紹介します。主要な暗号化手法と、それらを自動取引に実際に実装する方法について説明します。
算術最適化アルゴリズム(AOA):AOAからSOA(シンプル最適化アルゴリズム)へ
本稿では、加算、減算、乗算、除算といった単純な算術演算に基づく算術最適化アルゴリズム(AOA: Arithmetic Optimization Algorithm)を紹介します。これらの基本的な数学的操作が、さまざまな問題の最適解を見つけるための基盤となります。
長期取引の最適化:包み足と流動性戦略
高時間足(W1、D1、MN)に基づいて長期的な分析と取引判断をおこなうEAです。このEAは、短期的な値動きに翻弄されることなく、利確目標に到達するまで自分のトレンドの方向性(バイアス)を頻繁に変えずにポジションを保持できる、忍耐強い長期トレーダー向けに設計されています。
Python-MetaTrader 5ストラテジーテスター(第4回):テスター入門
シミュレーター上で初めての自動売買ロボットを構築し、MetaTrader 5のストラテジーテスター風にストラテジーテスト処理を実行します。その上で、カスタムシミュレーションで生成された結果を、普段使用しているターミナルの結果と比較します。
初級から中級まで:オーバーロード
おそらく、この記事は初心者プログラマーにとって最も混乱を招くものになるでしょう。実際のところ、ここでは、同じコード内で必ずしもすべての関数や手続きが一意の名前を持つとは限らないことを示します。同じ名前の関数や手続きを使うことができるのです。これをオーバーロードと呼びます。
MQL5で取引管理者パネルを作成する(第10回):外部リソースベースのインターフェイス
本日は、MQL5の機能を活用して、BMP形式の画像などの外部リソースを利用し、トレーディング管理パネル用に独自のスタイルを持ったホームインターフェイスを作成します。ここで紹介する手法は、画像やサウンドなど複数のリソースを一括でパッケージ化して配布する際に特に有効です。このディスカッションでは、こうした機能をどのように実装し、New_Admin_Panel EAにおいてモダンで視覚的に魅力的なインターフェイスを提供するかを一緒に見ていきましょう。
知っておくべきMQL5ウィザードのテクニック(第75回):Awesome Oscillatorとエンベロープの使用
ビル・ウィリアムズによるオーサムオシレータ(AO: Awesome Oscillator)とエンベロープチャネル(Envelopes Channel)は、MQL5のエキスパートアドバイザー(EA)内で補完的に使用できる組み合わせです。AOはトレンドを検出する能力を持つためこれを利用し、一方でエンベロープチャネルはサポートおよびレジスタンスレベルを定義する目的で組み込みます。本記事は、このインジケーターの組み合わせを探求するにあたり、MQL5ウィザードを用いて両者が持つ可能性を構築および検証します。
リプレイシステムの開発(第33回):発注システム(II)
今日も発注システムの開発を続けます。ご覧のように、他の記事ですでに紹介したものを大量に再利用することになります。とはいえ、この記事にはささやかなご褒美があります。まず、デモ口座からでもリアル口座からでも、取引サーバーで使えるシステムを開発します。MetaTrader 5プラットフォームを幅広く活用し、当初から必要なサポートをすべて提供します。
ニューラルネットワークが簡単に(第51回):Behavior-Guided Actor-Critic (BAC)
最後の2つの記事では、エントロピー正則化を報酬関数に組み込んだSoft Actor-Criticアルゴリズムについて検討しました。このアプローチは環境探索とモデル活用のバランスをとりますが、適用できるのは確率モデルのみです。今回の記事では、確率モデルと確定モデルの両方に適用できる代替アプローチを提案します。
市場シミュレーション(第24回):ポジション表示(II)
取引サーバー上の未決済ポジションを、インジケータを使って、できるだけシンプルかつ実用的な方法で追跡する方法を紹介します。これは、必ずしもすべてをエキスパートアドバイザー(EA)に移す必要はないことを示すため、段階を追って説明していきます。皆さんの多くは、何らかの理由で、このような処理をEAでおこなうことに慣れているかもしれません。しかし、実際には、そのやり方にはそれほど十分な根拠があるわけではありません。なぜなら、この実装を発展させていくにつれて、この目的のためにさまざまな種類のインジケータを作成したり、実装したりできることが明らかになるからです。
人工蜂の巣アルゴリズム(ABHA):テストと結果
この記事では、人工蜂の巣アルゴリズム(ABHA)の探索を続け、コードの詳細を掘り下げるとともに、残りのメソッドについて考察します。ご存じのとおり、このモデルにおける各蜂は個別のエージェントとして表現されており、その行動は内部情報、外部情報、および動機付けの状態に依存します。さまざまな関数を用いてアルゴリズムをテストし、その結果を評価表としてまとめて提示します。
MQL5-Telegram統合エキスパートアドバイザーの作成(第6回):レスポンシブなインラインボタンの追加
この記事では、インタラクティブなインラインボタンをMQL5エキスパートアドバイザー(EA)に統合し、Telegram経由でリアルタイムにコントロールできるようにします。各ボタンを押すたびに特定のアクションがトリガーされ、ユーザーにレスポンスが返されます。また、Telegramメッセージやコールバッククエリを効率的に処理するための関数もモジュール化します。
PythonとMQL5による多銘柄分析(前編):NASDAQ集積回路メーカー
ポートフォリオのリターンを最大化するために、AIを活用してポジションサイジングと注文数量を最適化する方法について解説します。本稿では、アルゴリズムを用いて最適なポートフォリオを特定し、期待リターンやリスク許容度に応じてポートフォリオを調整する手法を紹介します。このプロセスでは、SciPyライブラリやMQL5言語を活用し、保有中のすべてのデータを基に、最適かつ分散化されたポートフォリオを構築します。
MQL5で取引管理者パネルを作成する(第9回):コード編成(I)
このディスカッションでは、大規模なコードベースを扱う際に直面する課題について掘り下げます。MQL5におけるコード構成のベストプラクティスを紹介し、取引管理パネルのソースコードの可読性と拡張性を向上させるための実践的なアプローチを実装します。また、他の開発者がアルゴリズム開発で活用できる再利用可能なコードコンポーネントの開発も目指しています。ぜひ最後までお読みいただき、ご意見をお寄せください。
多通貨エキスパートアドバイザーの開発(第27回):複数行テキスト表示コンポーネント
テキストをチャート上に表示する必要がある場合は、Comment()関数を使用できます。しかし、この関数の機能には多くの制限があります。そこで本記事では、独自コンポーネントとして、複数行テキストの表示、柔軟なフォント設定、さらに、画面全体を占めるスクロール機能対応ダイアログウィンドウを作成します。
リプレイシステムの開発(第51回):物事は複雑になる(III)
この記事では、MQL5プログラミングの分野で最も難解な問題の1つである、チャートIDを正しく取得する方法と、オブジェクトがチャートにプロットされない場合がある理由について解説します。ここで提供される資料は教育目的のみに使用されるべきです。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを閲覧することは避けてください。