フーリエ変換で未来を予測する - ページ 4

 
ところで、昨日は「左の半波長の周期は短く、右の半波長の周期は長く」と書きました。そして、外挿もまた同じ法則を担うことになる。そして、今日、それを確信しました。ユーロの急速な下落の後、ゆっくりではあるが激しい回復の試みが行われた。
 

もちろん、DLLの使用は許可すべきですが、DLL自体は接続されていますが、その中の関数が見えません。

そうですね、機能を正面からカウントしている間に、mq5が出て、クラスも出てくるかもしれませんね。

 
m_keeper:

数学的、統計学的、微分学的、その他の分析で結論を出すことができない場合に、ニューラルネットワークを 使うべきだと思うのです。


NSはあらゆる面で最も簡単なツールではないので、まずは古典的なものから可能な限り絞り出す方が良いという論理です。


m_keeper です。

私のインジケーターはまだ何も作らないでください、未完成すぎます。

でも、きれいに描けるんですよ :)
 
ANG3110:
ゴールドトレーダー

インジケータ信号(というか、読み取り値と現在値との差)をNS入力に送ったらどうでしょう。

このページを閲覧している私に質問されたわけではありませんが、お答えしてもよろしいでしょうか。

実は、この問題はあまり正しくない。なぜなら、入力と出力の数が異なるネットワークが存在するからだ。

近似的なもの、分類的なもの、連想的なものがある。先生の有無にかかわらず

でも、作者が何を言いたかったのかを想定すれば、できるはずです。しかし、果たして満足のいく結果が得られるのだろうか。

明確である。具体的というより、もっと一般的な提案がありました。m_keeperからの 回答は満足しています。

 

別の日の指標に悩まされる

高速フーリエ変換を通常のものに置き換え、窓の長さを任意に設定できるようになりました。


波に乗る」ためにウィンドウサイズを実験してみたら、いろいろと面白いことがわかりました。

)高調波がある場合、3~4倍を超えないこと。

) これらの高調波は、対応する市場波と周波数が正確に一致するわけではありません(一致するとしたら不思議なことです)。

)この場合、ウィンドウの移動中にビートが発生し、位相が崩れます。

非高調波の周波数がいくつか存在します。

ANG3110が書いているように、最大振幅で分離することができます。

必要な範囲の倍音をより多く出すために、周期を長くすることを考えた。

) 望みの周波数が全域に渡って存在する場合は、遅れが生じます。

を押すとスピードアップし(非直線性が顕著)、最後には正しく位相が合わなくなります。

)長尺はあまり良くない、余計なものがたくさんある。


実は、そのとき2つのアイデアが浮かんだんです。

)周波数は主周波数の高調波でなければならないと誰が言ったか(フーリエが言ったと思われる)

1/T 2/T 3/T 10/10T 11/10T 12/10Tとすれば、より高い周波数密度を得ることができます。

を、私たちの関心のある範囲に設定します。

) なぜハーモニクスを全く取らないのか?基本周波数(振幅と位相)だけを計算すればよいのです

は、与えられた帯域幅より小さいすべての帯域幅について。振幅プロットは、次のようになると思います。

低周波数帯域で非常に滑らかな)局所的な最大値とこれらの高調波を取る必要があります。

は、すでに予想がつく。


そして、私もお願いしたいことがあります。

周波数による振幅の重要性の判断は、どのような基準で行えばよいのでしょうか?

結局のところ、局所的な最大値を探す前に、スペクトルを前置化するのが良いのだろう。

 

PS 主な周波数のみというのは間違っていたようだ、少なくとも2-3期は見るべきだろう

 

単純にウィンドウを正規化し、別に予測セグメント、ci= (Close[i] - min)/(max - min); これで少し改善されますが、ほんの少しです。一般に、振幅の一致を実現するのはかなり難しい。ここでは、むしろピボット・ポイントの見極めの方が重要である。


そこでは、2-4倍波が実に最適なのです。以前は、そこで何が起こっているのかをすぐに確認するために、描画スクリプトを作っていたんです。棒状のものからなんとか曲線を描き出す。そして、マウスで期間を変更することができ、すべてが素早く、よく見えるようになります。あるいは、別の方法として、インジケータを開発し、ウィンドウ内のデータを更新するスクリプトを作成しないと、インジケータのstart()関数が起動されないことがあります。スクリプトで回帰チャネルを使用し、グローバル変数を 使用してそのパラメータをインジケータに送信したり、キーボードのキーを押して高調波の数を変更したりすることが可能です。

#import "user32.dll"
int GetAsyncKeyState(int nVirtKey);
int PostMessageA(int hWnd,int Msg,int wParam,int lParam);
#import
、 #define WM_COMMAND 0x0111


すると、インジケータ画像がマウスで移動できるようになります。ちなみにRMSはdc=Close[i]-fx; sq+=dc*dc; で、最後に sq=MathSqrt(sq/T); と全振幅 MathSqrt(ak[k]*ak[k]+bk[k]*bk[k]) で算出されます。

組み合わせは、まず目分量で大まかに、次に最小RMSと最大amkで極限を作る。

これは、すべてを素早く見るための研究用です。自動化については少し違っていて、そこでは何も目視で行うことはありません。

位相が浮いていると定在波がなく、予報が悪くなる。ムービングやリグレッションを入れれば、位相が安定するんです。しかし、原理的には、ラジオ受信機が周波数の位相オートチューニングを使用するように、オートメーションでも位相差を使用して周期オートチューニングを行うべきである。

ただし、これは1周波の場合です。精度を上げるために、より大きな周期と小さな周期を取り、それらすべての高調波の数を1から5まで、それ以上は好まないようにして、合計し、平均を導き出すのです。しかし、繰り返しになりますが、リニアな時間スケールで常に良い予測をすることはほとんど不可能です。むしろ、予測と連続的なオートチューニングを組み合わせる必要があるのです。一般的に、自動化は単純ではありませんが、もちろん、それが成功すれば、トレードの結果は非常に良いものになると思います。


 
m_keeper:

そして、私もお願いしたいことがあります。

周波数の関数としての振幅の重要性を判断するために、どのような基準を用いることができるでしょうか?

結局のところ、局所的な最大値を探す前に、スペクトルを前置化するのが良いのだろう。

記事の著者が提案する正規化(アーカイブ、p.17)を試してみてはいかがでしょうか。

ファイル:
1.zip  246 kb
 

ニュートロン

そこには通常のレーションは見当たりません。


m_keeperへ

総エネルギーにノーマライズしてみてください。

 

ペリオドグラムをプロットしたのが下の図です。


右端の値は最大周期の2倍高調波の振幅

の12倍高調波と等しくなるまで、連続する1つ(1小節、高調波ではない)を小さくしていきます。


予想通り、グラフは非常に滑らかで、明確な局所的な最大値を示している

各最大値は、すでに計算された周波数と位相に対応し、最大値での位相が必要です。

の値を逸脱することなく表示します。


あとは、全体をプロットするだけです。