投稿

ラベル(MQL4)が付いた投稿を表示しています

日銀の為替介入を検知するフーリエ逆変換mql4プログラム

Deep Seekの回答  # MQL4プログラム:  為替介入前の波形分析 以下は、FXチャートの価格データをフーリエ変換し、上位10成分を分解して表示するMQL4プログラムです。このプログラムは、為替介入の影響が表れる前の市場波形を分析するために設計されています。 ```mql4 //+------------------------------------------------------------------+ //| FourierAnalysis.mq4 | //| Copyright 2023, MetaQuotes Software Corp. | //| https://www.metaquotes.net/ | //+------------------------------------------------------------------+ #property copyright "Copyright 2023, MetaQuotes Software Corp." #property link "https://www.metaquotes.net/" #property version "1.00" #property strict #property indicator_separate_window #property indicator_buffers 11 #property indicator_plots 11 #property indicator_type1 DRAW_LINE #property indicator_color1 clrRed #property indicator_style1 STYLE_SOLID #property indicator_width1 1 // 同様に他のバッファも設定 (indicator_type2~11, indicator_color2~11など) // 入力パラメータ input int SampleSize = 256; // 分析サンプルサイズ (2のべき乗推奨) input int DominantComponents = 10; // 表示する主要成分数 ...

FXのチャートをフーリエ変換するMQL4ソースコード

承知いたしました。「10個の連続した曲線の成分で表す」という表現に沿って、逆フーリエ変換を行い、主要な成分に対応する波形を個別に表示する機能を追加したMQL4のソースコードを以下に提示します。 ```mql4 #property strict #property indicator_separate_window // 入力パラメータ input int SamplePeriod = 100; // フーリエ変換のサンプル期間 input int TopComponents = 10; // 表示する主要な成分の数 // グローバル変数 double ExtHandle[]; // フーリエ変換を行う関数 void FourierTransform(double &price[], int n, double &real[], double &imag[]) { for (int k = 0; k magB) return -1; if (magA 変更点と説明: * ExtractTopComponents 関数の修正: * フーリエ変換の結果の絶対値(magnitude)を計算し、それに基づいて主要な成分を抽出するようにしました。 * Component 構造体と CArrayObj を使用して、成分を大きさでソートしています。 * 抽出した主要な成分の元のインデックス (topIndices) も保存するようにしました。これは、逆フーリエ変換で正しい周波数成分を再構成するために必要です。 * ナイキスト周波数までの成分(n / 2 + 1)のみを考慮するようにしました。 * ReconstructComponent 関数: * 特定の周波数成分のインデックス、フーリエ係数(実部と虚部)、および時間インデックス t を受け取り、その成分に対応するサイン波(またはコサイン波、あるいはそれらの組み合わせ)の値を計算します。 * DC成分(インデックス 0)の扱いは特別です。 * 他の成分は、逆フーリエ変換の式に基づいて計算されます。係数に 2.0 / n を掛けています。 * インジケータバッファの追加: * OnInit 関数で、元の価格を表示するためのバッ...