CyberChaos(さいばかおす)

プログラミング言語、トランスパイラ、RPA、ChatGPT、データマイニング、リバースエンジニアリングのための忘備録

FXの任意のチャートをフーリエ変換するMQL4プログラム

2023-03-13 20:30:47 | FX

FXの任意のチャートをフーリエ変換するプログラムをMQL4で書いて。

MQL4でFXチャートをフーリエ変換するプログラムを作成するには、まずチャートから価格データを収集し、それを数値データに変換する必要があります。その後、収集した価格データをフーリエ変換するためのアルゴリズムを実装する必要があります。

以下は、MQL4でFXチャートのフーリエ変換を行うプログラムの一例です。

// チャートから価格データを収集する
double prices[];
int limit;
int counted_bars = IndicatorCounted();
if(counted_bars < 0) return(-1);
if(counted_bars > 0) counted_bars--;
limit = Bars - counted_bars;
ArraySetAsSeries(prices, true);
for(int i = 0; i < limit; i++) {
    prices[i] = Close[i];
}

// フーリエ変換を行う
Complex fft[];
ArraySetAsSeries(fft, true);
ArrayResize(fft, limit);
for(int i = 0; i < limit; i++) {
    fft[i].re = prices[i];
    fft[i].im = 0;
}
FourierTransform(fft, FFT_FORWARD);

// 結果を表示する
for(int i = 0; i < limit; i++) {
    double freq = i / (Period() * limit);
    double amplitude = MathSqrt(fft[i].re*fft[i].re + fft[i].im*fft[i].im);
    Print("Frequency: ", freq, ", Amplitude: ", amplitude);
}

このプログラムでは、Close価格を収集し、FourierTransform関数を使用してフーリエ変換を実行します。結果は、周波数と振幅のペアのリストとして表示されます。

ただし、このプログラムはFXチャートのヒストリカルデータを使用してフーリエ変換を行うだけで、リアルタイムでの解析には適していません。また、フーリエ変換を使用する場合、周期的な信号に対してのみ有効であるため、FXチャートの場合には限界があります。



最新の画像もっと見る