Python-MetaTrader 5ストラテジーテスター(第4回):テスター入門
シミュレーター上で初めての自動売買ロボットを構築し、MetaTrader 5のストラテジーテスター風にストラテジーテスト処理を実行します。その上で、カスタムシミュレーションで生成された結果を、普段使用しているターミナルの結果と比較します。
中心力最適化(CFO)アルゴリズム
本記事では、重力の法則にヒントを得た中心力最適化(Central Force Optimization, CFO)アルゴリズムを紹介します。このアルゴリズムは、物理的引力の原理を用いて最適化問題を解決する手法を探究するものです。ここでは、「より重い」解が、成功度の低い解を引き寄せる仕組みを扱います。
MQL5で他の言語の実用的なモジュールを実装する(第2回):Pythonに着想を得たREQUESTSライブラリの構築
この記事では、MetaTrader 5 (MQL5)でWebリクエストの送受信をより簡単におこなうために、Pythonのrequestsモジュールに似たモジュールを実装します。
ログレコードをマスターする(第10回):抑制機能を実装してログの再表示を防ぐ
Logifyライブラリにおけるログ抑制システムを作成しました。本記事では、CLogifySuppressionクラスがどのようにコンソールのノイズを低減するかについて詳しく説明します。このクラスは、繰り返しや無関係なメッセージを回避するための設定可能なルールを適用します。また、外部設定フレームワーク、検証機構、包括的なテストについても取り上げ、ボットやインジケーター開発時のログ取得における堅牢性と柔軟性を確保しています。
MQL5でのデータベースの簡素化(第2回):メタプログラミングを使用してエンティティを作成する
前回の記事では、MQL5における#defineを活用した高度なメタプログラミング手法を検討し、テーブルや列のメタデータ(データ型、主キー、オートインクリメント、NULL許容など)を表現するエンティティを定義しました。これらの定義はTickORM.mqhに集約し、メタデータクラスを自動生成する仕組みを整えることで、SQLを直接記述することなくORMが効率的にデータ操作を実行できる基盤を構築しています。
初心者からエキスパートへ:市場期間同期化ツール
本ディスカッションでは、上位時間足から下位時間足への同期をおこなうツールを紹介します。このツールは、上位時間足の期間にまたがる市場パターンを分析する際の課題を解決することを目的としています。MetaTrader 5に標準搭載されている期間マーカーは、制限が多く柔軟性に欠けるため、非標準の時間足には対応しにくいことがあります。そこで私たちは、MQL5言語を活用して、下位時間足のチャート上で上位時間足の構造を動的かつ視覚的に表示できるインジケーターを開発しました。このツールは、詳細な市場分析に非常に役立ちます。その機能や実装方法について詳しく知りたい方は、ぜひディスカッションにご参加ください。
MQL5標準ライブラリエクスプローラー(第5回):マルチシグナルEA
本セッションでは、MQL5標準ライブラリを使用して、複数のシグナルを組み合わせた高度なエキスパートアドバイザー(EA)を構築します。このアプローチにより、組み込みシグナルと独自ロジックをシームレスに統合し、柔軟かつ強力な取引アルゴリズムの構築方法を示します。詳細については、続きをご覧ください。
初級から中級まで:イベント(II)
この記事では、すべてを必ずしも特定の方法で実装する必要がないことを見ていきます。問題解決には複数のアプローチが存在します。本記事を正しく理解するには、前回の記事で説明された概念を把握していることが前提となります。ここで提示する内容はあくまで学習目的のものであり、最終的なアプリケーションとして利用することを目的としたものではありません。
PythonでリモートFXリスク管理システムを構築する
Pythonで動作するリモートの外国為替リスク管理システムを構築しており、サーバーにも段階的に展開しています。本記事を通して、プログラムでFXのリスクを管理する方法や、FXの資金を無駄にしない方法を学んでいきます。
知っておくべきMQL5ウィザードのテクニック(第76回): Awesome Oscillatorのパターンとエンベロープチャネルを教師あり学習で利用する
前回の記事では、オーサムオシレータ(AO: Awesome Oscillator)とエンベロープチャネル(Envelopes Channel)のインディケーターの組み合わせを紹介しましたが、今回はこのペアリングを教師あり学習でどのように強化できるかを見ていきます。Awesome OscillatorとEnvelope Channelは、トレンドの把握とサポート/レジスタンスの補完的な組み合わせです。私たちの教師あり学習アプローチでは、CNN(畳み込みニューラルネットワーク)を使用し、ドット積カーネルとクロスタイムアテンションを活用してカーネルとチャネルのサイズを決定します。通常どおり、この処理はMQL5ウィザードでエキスパートアドバイザー(EA)を組み立てる際に利用できるカスタムシグナルクラスファイル内でおこないます。
取引戦略の開発:バタフライオシレーター法
魅力的な数学概念であるバタフライ曲線を、実践的な取引ツールへと応用する方法を紹介します。バタフライオシレーターを構築し、それを基盤とした基本的な取引戦略を開発します。この戦略は、オシレーター特有の周期的シグナルと移動平均による従来型のトレンド確認を効果的に組み合わせることで、潜在的な市場エントリーポイントを特定するための体系的なアプローチを実現します。
多通貨エキスパートアドバイザーの開発(第21回):重要な実験の準備とコードの最適化
さらなる前進のためには、自動最適化を定期的に再実行し、新しいエキスパートアドバイザー(EA)を生成することで結果を改善できるかどうかを検証することが有益でしょう。パラメータ最適化の利用を巡る多くの議論における最大の障害は、取得したパラメータを将来の期間において、収益性およびドローダウンを所定の水準に保ったまま、どれだけ長く取引に使用できるのかという点です。そして、そもそもそれは可能なのかという問題でもあります。
機械学習の限界を克服する(第4回):複数ホライズン予測による既約誤差の回避
機械学習は統計学や線形代数の観点から語られることが多いですが、本記事ではモデル予測を幾何学的に理解する視点に注目します。本記事で示したいのは、モデルはターゲットを直接近似しているのではなく、ターゲットを別の座標系に写像することで固有のずれを生み出し、その結果、避けがたい既約誤差が生じる点です。また本記事では、ターゲットとの直接比較ではなく、異なるホライズンにおけるモデルの予測同士を比較する複数ステップ予測の方が実務的かつ有効であることを提案します。この手法を取引モデルに適用すると、基礎モデルを変更することなく、収益性と予測精度が大幅に向上することを確認しました。
市場シミュレーション(第3回):パフォーマンスの問題
時には一歩下がってから前進する必要があります。本記事では、マウスインジケーターおよびChart Tradeインジケーターが正常に動作するようにするために必要なすべての変更についてご紹介します。さらにおまけとして、今後広く使用される他のヘッダーファイルにおける変更についても触れます。
母集団最適化アルゴリズム:極値から抜け出す力(第II部)
母集団の多様性が低いときに効率的に極小値を脱出して最大値に到達する能力という観点から、母集団最適化アルゴリズムの挙動を調べることを目的とした実験を続けます。研究結果が提供されます。
取引におけるニューラルネットワーク:Attentionメカニズムを備えたエージェントのアンサンブル(MASAAT)
アテンション機構と時系列解析を組み合わせたマルチエージェント自己適応型ポートフォリオ最適化フレームワーク(MASAAT: Multi-Agent Self-Adaptive Portfolio Optimization Framework)を提案します。MASAATは、価格系列や方向性の変化を分析する複数のエージェントを生成し、異なる詳細レベルで資産価格の重要な変動を特定できるように設計されています。
多通貨エキスパートアドバイザーの開発(第23回):自動プロジェクト最適化段階のコンベアの配置(II)
1つの最終EAで使用される取引戦略を自動的かつ定期的に最適化するためのシステムの構築を目指します。システムは進化するにつれてますます複雑になるため、時折全体を俯瞰し、ボトルネックや非効率な解決策を特定する必要があります。
カオスゲーム最適化(CGO)
本記事では、新しいメタヒューリスティックアルゴリズムであるカオスゲーム最適化(CGO)を紹介します。CGOは、高次元問題に対しても高い効率を維持できるという独自の特性を示しています。ほとんどの最適化アルゴリズムとは異なり、CGOは問題の規模が大きくなると性能が低下するどころか、場合によっては向上することさえあり、これがこのアルゴリズムの主要な特徴です。
リスク管理(第3回):リスク管理のメインクラスの構築
本記事では、システム内のリスクを管理するための重要な基盤となるコアのリスク管理クラスを作成し始めます。今回は、基礎の構築に焦点を当て、基本的な構造、変数、関数を定義します。加えて、最大損益値を設定するために必要なメソッドを実装し、リスク管理の土台を築きます。
他言語の実用モジュールをMQL5で実装する(第04回):Pythonのtime、date、datetimeモジュール
MQL5とは異なり、Pythonは、時間の扱いや操作において高い柔軟性と制御性を提供します。本記事では、Pythonのように日付や時刻をより扱いやすくするためのモジュールを、MQL5で実装していきます。
初心者からエキスパートへ:MQL5を使ったアニメーションニュース見出し(XI) - ニュース取引における相関
本記事では、金融相関の概念を活用して、主要な経済指標発表時に複数の通貨ペアを取引する際の判断効率を高める方法を検討します。特に、ニュースリリース時のボラティリティ上昇によるリスク増大という課題に焦点を当てます。
リプレイシステムの開発(第72回):異例のコミュニケーション(I)
私たちが本日作成する内容は、理解が難しいものになるでしょう。したがって本稿では、初期段階についてのみ説明します。この段階は次のステップに進むための重要な前提条件となるため、ぜひ注意深く読んでください。この資料の目的はあくまで学習にあります。提示された概念を実際に応用するのではなく、あくまで理解・習得することが目的です。
取引におけるニューラルネットワーク:Attentionメカニズムを備えたエージェントのアンサンブル(最終回)
前回の記事では、複数のエージェントによるアンサンブルを用いて、異なるデータスケールのマルチモーダル時系列をクロス分析するマルチエージェント適応型フレームワーク「MASAAT」を紹介しました。今回は、このフレームワークのアプローチをMQL5で引き続き実装し、この研究を論理的な結論へと導きます。
多通貨エキスパートアドバイザーの開発(第24回):新しい戦略の追加(I)
本記事では、作成済みの自動最適化システムに新しい戦略を連携する方法を見ていきます。どのようなEAを作成する必要があるのか、EAライブラリのファイルを変更せずにできるのか、必要な変更を最小限に抑えられるかを確認してみましょう。
古典的な戦略を再構築する(第21回):ボリンジャーバンドとRSIのアンサンブル戦略の発見
EURUSD市場を対象としたアンサンブル型アルゴリズム取引戦略の開発について説明します。この戦略は、ボリンジャーバンドとRSI(相対力指数)を組み合わせたものです。初期のルールベース戦略は高品質なシグナルを生成した一方で、取引頻度が低く、収益性にも限界がありました。その後、複数の戦略バリエーションを反復的に評価した結果、市場に対する理解の誤り、ノイズの増加、パフォーマンスの劣化といった問題が明らかになりました。これらの課題に対し、統計的学習アルゴリズムを適切に活用し、モデリング対象をテクニカル指標へと再定義し、適切なスケーリングを適用したうえで、機械学習による予測と従来の取引ルールを組み合わせることで、最終的には許容可能なシグナル品質を維持しながら、収益性と取引頻度の大幅な改善を達成しました。
MQL5取引ツール(第18回):向き制御対応の角丸吹き出し
角丸長方形と三角形のポインタを組み合わせることで、MQL5における角丸の吹き出しを作成する方法を紹介します。また、ポインタの向きを上、下、左、右に制御する方法についても解説します。さらに、形状のジオメトリの事前計算、スーパーサンプリングによる塗りつぶし、頂点部の丸みを持たせた円弧処理、および継ぎ目を滑らかに接続するための拡張比を用いた分割枠線の描画について詳しく説明します。サイズ、角丸半径、色、不透明度、線の太さなどを自由に設定できるコードを提供しており、トレーディングインターフェースのアラートやツールチップなどにそのまま利用できます。
リプレイシステムの開発(第66回)サービスの再生(VII)
この記事では、チャート上に新しいバーがいつ表示されるかを判断するための、最初のソリューションを実装します。このソリューションは、さまざまな状況に応用可能です。その仕組みを理解することで、いくつかの重要なポイントを把握する助けとなるでしょう。ここで提示されるコンテンツは、教育目的のみに使用されることを意図しています。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを閲覧することは避けてください。
取引におけるニューラルネットワーク:階層型ベクトルTransformer(最終回)
階層的ベクトルTransformer法の研究を引き続き進めていきます。本記事では、モデルの構築を完了し、実際の履歴データを用いて訓練およびテストをおこないます。
ニューロボイド最適化アルゴリズム(NOA)
新しい生体模倣型最適化メタヒューリスティックであるNOA (Neuroboids Optimization Algorithm)は、集合知とニューラルネットワークの原理を組み合わせた手法です。従来の方法とは異なり、このアルゴリズムは自己学習型の「ニューロボイド」集団を使用し、それぞれが独自のニューラルネットワークを持ち、探索戦略をリアルタイムで適応させます。本記事では、アルゴリズムのアーキテクチャ、エージェントの自己学習メカニズム、そしてこのハイブリッドアプローチを複雑な最適化問題に応用する可能性について解説します。
取引におけるニューラルネットワーク:ResNeXtモデルに基づくマルチタスク学習(最終回)
ResNeXtに基づくマルチタスク学習フレームワークの探求を続けます。このフレームワークは、モジュール性が高く、計算効率に優れ、データ中の安定したパターンを特定できることが特徴です。単一のエンコーダーと専門化された「ヘッド」を使用することで、モデルの過学習のリスクを減らし、予測の精度を向上させます。
レストラン経営達人アルゴリズム(SRA)
レストラン経営達人アルゴリズム(SRA)は、レストラン経営の原則に着想を得た革新的な最適化手法です。従来のアプローチとは異なり、SRAは弱い解を破棄するのではなく、成功した解の要素と組み合わせて改善します。このアルゴリズムは競争力のある結果を示し、最適化問題における探索と活用のバランスに関する新しい視点を提供します。
MQL5における単変量時系列への動的モード分解の適用
動的モード分解(DMD: Dynamic Mode Decomposition)は、主に高次元データセットに対して用いられる手法です。本稿では、DMDを単変量の時系列に適用し、その特性把握や予測に活用できることを示します。その過程で、MQL5に搭載されているDMDの実装、とりわけ新しい行列メソッドであるDynamicModeDecomposition()について詳しく解説します。
血液型遺伝最適化(BIO)
人間の血液型の遺伝システムに着想を得た、新しい集団最適化アルゴリズム「血液型遺伝最適化(BIO)」を紹介します。このアルゴリズムでは、各解がそれぞれ固有の「血液型」を持ち、その血液型が進化の方法を決定します。自然界において子の血液型が特定の遺伝ルールに従って受け継がれるように、BIOでは新しい解が継承と突然変異の仕組みを通じて特性を獲得します。
オンチャートUIを使用したリスクベースの取引執行EA(第1回):ユーザーインターフェースの設計
MQL5でリスクベース取引執行エキスパートアドバイザー(EA)用の、クリーンでプロフェッショナルなオンチャートコントロールパネルを構築する方法を解説します。このステップバイステップガイドでは、トレーダーが取引パラメータを入力し、ロットサイズを計算し、自動発注に備えることができる機能的なGUIの設計方法を説明します。
共和分株式による統計的裁定取引(第6回):スコアリングシステム
本記事では、共和分株式の統計的裁定取引に基づく平均回帰戦略のスコアリングシステムを提案します。流動性や取引コストから、共和分ベクトルの数(ランク)や回帰までの時間に至るまでの基準を示しつつ、時間足やルックバック期間のような戦略的基準も考慮し、スコアランキングを正しく評価する前に検討しています。バックテストの再現に必要なファイルも提供され、その結果についてもコメントしています。
初級から中級へ:WHILE文とDO WHILE文
この記事では、最初のループ文を実際的かつ視覚的に見ていきます。多くの初心者はループを作成するという作業に直面すると不安を感じますが、正しく安全におこなう方法を知るには経験と練習が必要です。しかし、コード内でループを使用する際の主な問題と注意事項を示すことで、皆さんの悩みや苦しみを軽減できるかもしれません。
初級から中級まで:構造体(I)
本日は、構造体について、よりシンプルで実践的、かつ無理のない形で学び始めます。構造体は、構造化プログラミングであろうとなかろうと、プログラミングの基礎を成す要素のひとつです。多くの人は、構造体を単なるデータの集合だと考えがちですが、実際にはそれ以上の役割を持っています。本記事では、この新しい世界を、できるだけ分かりやすく、体系的に探っていきます。
MQL5における取引へのコンピュータビジョンの統合(第1回):基本関数の作成
コンピュータビジョンおよびディープラーニングを活用したEURUSD予測システムです。本記事では、畳み込みニューラルネットワークが外国為替市場における複雑な価格パターンをどのように認識し、最大54%の精度で為替レートの変動を予測できるかを解説します。また、従来のテクニカル指標の代わりに、チャートの視覚的分析に人工知能技術を活用するアルゴリズムの構築手法を共有します。著者は、価格データを「画像」へと変換するプロセス、それらをニューラルネットワークで処理する方法、さらに活性化マップやアテンションヒートマップを通じてAIの「意識」を可視化する独自のアプローチを解説します。MetaTrader 5ライブラリを用いた実践的なPythonコードにより、読者は本システムを再現し、自身の取引へ応用することができます。
MQL5での取引戦略の自動化(第29回):プライスアクションに基づくガートレーハーモニックパターンシステムの作成
本記事では、MQL5で弱気、強気双方のガートレーハーモニックパターンを、ピボットポイントとフィボナッチ比率に基づいて識別し、正確なエントリー、ストップロス、テイクプロフィットレベルを使用して取引を自動化するガートレーパターンシステムを開発します。また、XABCDパターン構造やエントリーレベルを表示するために、三角形やトレンドラインなどのチャートオブジェクトを使った視覚的フィードバックでトレーダーの洞察力を高めます。
MetaTraderとGoogleシートがPythonAnywhereで融合:安全なデータフローのガイド
本記事では、MetaTraderのデータをGoogleスプレッドシートに安全にエクスポートする方法を紹介します。Googleスプレッドシートはクラウドベースで、保存されたデータにいつでもどこからでもアクセスできるため、非常に有用なソリューションです。トレーダーはGoogleスプレッドシートにエクスポートされた取引データや関連情報にいつでもアクセスでき、将来の取引に向けた分析を自由におこなうことができます。