先回のまとめ内に記載したので今回のお題は、データの変換作業の一例としてウェーブレット変換を取り上げてみました。
※ウェーブレット変換で何ができるの?
ウェーブレットには大きく分けると連続ウェーブレットと離散ウェーブレットがあります。
連続ウェーブレット変換
データの周波数の時間的変化を解析することに使用されている。
(はっきり理解できていません・・・・)
参考サイト
短時間フーリエ変換と連続ウェーブレット変換
離散ウェーブレット変換
データの圧縮、ノイズの除去、多重解像度解析に使われている。
参考サイト
離散ウェーブレット変換 - Wikipedia
http://wwwmp.jwu.ac.jp/mine/SemPPT/2005sem/2005FoundationOfWaveletTransformRevised.pdf今回は、離散ウェーブレット変換の代表であるHaar(以下Haar)を指標化してみました。
※Haarで何をしたいのか?
相場が作る波形を分解し必要な波形を取り出したい。
補足:複雑な波形は、実は単純な波形の組み合わせでできています。
※今回は、Haar理論の説明は省きます。興味がある方は、上記リンクなどを参考にしてください。
下記に添付したファイルにある【DWTHaar.mq4】をもちいて説明します。
選択事項
①波形をどれだけ分割(周波数ごとに)するかを決めます。
【extern int N = 7;】N値が分割数になります。
例)N=3の場合 【高周波数成分:中周波数成分:低周波数成分】に分割されます。
例)N=5の場合 【高高周波数成分:高中周波数成分:中周波数成分:低中周波数成分:低低周波数成分】に分割されます。
※【重要事項】
N値を上げると細分化が可能になりますが、その際のデータ量が2のN乗必要になり、その分処理能力が落ちてしまいます。
例)N=3の場合のデータ量8:N=5の場合32:N=7の場合128:N=10の場合1024:N=15の場合32768になります。
②どの波形が必要か決定する。
まず、N値最小値に最高周波数成分が対応し、N値最大値に最低周波数が対応しています。
【extern int HBs = 3;//高周波カット位置】【extern int LBs = 4;//低周波カット位置】を示しています。ただし、カット位置の数値は含みます。
例)N=3で【HBs=3:LBs=3】の場合【中周波数成分】を出力します。
例)N=5で【HBs=3:LBs=4】の場合【中周波数成分+低中周波数成分】が出力されます。
※一度試してみると分かりやすいと思います。
③その他パラメーター
【Shift = 0】は、検証用のシフトです。シフトしていくと理解しやすいと思います。
※ここまで【DWTHaar.mq4】を試してみると【あれ?】と思うことがあると思います。
今までの指標のように、全期間で指標が表示されません。どうして?
この指標は、あくまでも適用期間(2のN乗)のデータの変換作業を行っているだけだからです。
また、完全に周波数ごとに分解しているのではなく、あいまいに分解していることもわかると思います。
【DWTHaar.mq4】の活用方法
いろいろな活用方法があるかとは思いますが、今回はシンプルな活用方法を提案したいと思います。
【DWTHaar_M.mq4】は、【DWTHaar.mq4】の最新のデータが、期間の平均からどの程度乖離しているかというものです。
※N値を上げた状態で使用すると、(若しくはデータ数が多いと)処理に時間がかかりますので注意してください。
まとめ
今回使用したデータは、初値を使用しています。お好みに応じて変更してください。
また、DWT(離散ウェーブレット変換)は、解析精度を上げると処理能力が、多く必要となります。
それを回避する方法に、高速ウェーブレット変換というものもあるそうです。興味がある方は、検証されてはどうでしょうか?
9 件のコメント :
かなり前の記事にコメントして申し訳ないです
けどウェーブレット変換のインジケーターを作ろうと勉強していた最中なんで
助かりました有難うございます。
こんばんは。
突然の質問で申し訳御座いません。
先日より使用させて頂いているのですが、PCモニター画面の大きさによって若干違いが出るのはなぜでしょうか?
こんばんわ!
PCモニターの違いによる違いは、生じないと思いますが、以下のことが考えられます。
①サーバーの違いによる初値の違いが生じている。
②サーバーもしくはMT4の違いによるバーの抜けが生じている。
③初値が新しくできている。
上記以外で違いが生じていれば、理由がわかりません。
一度確認してみてください。
bighope様
返信、有難う御座います。
③の初値が新しくできている。
これは、①とどの様に違うのでしょうか?
素人質問で申し訳御座いません。
宜しくお願い申し上げます。
好史さんへ
①は、サーバーが異なると値が異なる場合があるための確認です。③は、時間的なずれがある場合の値のズレに対するものです。
ウェーブレットは、移動平均線などとは異なり、値が更新されるたびに適用範囲全体が変化していきます。パラメーターの中に【shift】がありますので一度そのパラメーターを変化して頂くとわかりやすいと思います。
bighopeさんへ
なるほど、でした。
shiftを変更してみます。
有難うございました。
こんばんは。
このDWTHaarはMQL5で使用できるようにならないものでしょうか?
また、方法が有れば教えて頂けませんでしょうか。
こんにちは。
為替取引で、高頻度データを使用してウェーブレット変換を使用したHFTシステム構築のために参考にしたいのですが、ダウンロードリンクはどちらでしょうか。
よろしくお願いします。
こんにちは。リンクが切れているようです。
なにぶん古い内容なのでご勘弁ください。
下記からDWTHaar.mq4がDLできると思います。
ご参考程度にはなるかな^^;
https://drive.google.com/file/d/15aGE8ivcTLxXxj9vb8c-m7Rl9GoP5EQ2/view?usp=sharing
コメントを投稿