English Русский 中文 Español Deutsch Português 한국어 Français Italiano Türkçe
ラグのないデジタルフィルターの作成

ラグのないデジタルフィルターの作成

MetaTrader 5インディケータ | 23 12月 2015, 14:48
1 019 0
Konstantin Gruzdev
Konstantin Gruzdev

はじめに

本稿はストリームデータにおいて有用な信号(トレンド)を判断する方法の一つについて説明します。マーケットクオートに対して適用される小規模なフィルタリング(平滑化)テストが最終バーで再作成されないノンラギングデジタルフィルタ(インディケータ)作成の可能性を示しています。


標準的アプローチ

このアプローチは古いタイプの時系列平滑化方法を基にしています。このテーマについての記事は本サイトにも外部のウェブサイトにも数多くあります。結果もまた古典的なものです。

  1. トレンドにおける変化はレイテンシとして表示されます。
  2. よいインディケータ(デジタルフィルタ)応答は平滑化のクオリティー低下を犠牲にして達成しました。
  3. ノンラギングインディケータのを実装しようとする試みは最終サンプル(バー)での再作成につながります。

そのためトレーダーは、経済プロセスの持続性やその他の芸当を使ってこういった事柄に対処することを学びました。これはリアルタイムの実験データ、たとえば航空機構造、を評価するにはに認められることではありません。


主な問題

トレーディングシステムの多くが時間の経過とともに処理を停止し、インディケータだけが一定の間隔を経ての唯一の指標であることは知られていることです。これは簡単に説明がつきます。:マーケットクオートは静止していないのです。定常過程の定義は ウィキペディアにあります。

定常過程とはその同時分布が時間の変化とともに変化しない定常過程を言います。

この定義から判断するに、定常時系列の分析方法はテクニカル分析には適しません。そしてこれは理解可能なことです。マーケットに参入する技能の高いマーケットメーカーは、既知のマーケケットクオートの系列に関してそれ以前に行った計算をすべて台無しにします。

これが明らかであっても、数多くのインディケータは定常時系列解析の理論に基づいています。そういったインディケータの例がいづオ平均とその変形です。ただし、適応可能なインディケータを作成しようとする試みもいくつかあります。それらはマーケットクオートのある程度までの非定常性を考慮しようとしていますが、まだこれといった成果は挙げていないようです。現在既知の非定常系列(ウェーブレット経験モデル その他)の分析方法を使ってマーケットメーカーを『お仕置き』する試みも成功していません。特定のキー要因がつねに無視されている状態か未確認のようです。

この主な理由は使用されている方法がストリームデータを処理するようにできていないことです。それらはすべて(またはほとんどすべて)すでにわかっている、またはテクニカル分析に関して言えば、履歴データを分析するために作成されていました。こういった方法は便利です、たとえば地球物理学では:地震を感じ、地震記象を取得し、それを数か月間分析する、といったようなことです。すなわち、こういった方法は、フィルタリング過程の時系列の終わりに起こる不確実性が最終結果に影響するのです。

実験的ストリームデータまたはマーケットクオートを分析するとき、われわれは履歴データではなく取得した直近データに注目します。これが古典的アルゴリズムでは扱うことのできないデータなのです。


クラスタフィルター

クラスタフィルターは初期シーケンスを近似化するデジタルフィルタです。クラスタフィルターをクラスタインディケータと混同してはいけません。

クラスタフィルターは非定常時系列をリアルタイムで、すなわちストリームデータを分析するとき便利です。それは、既知の時系列値を平滑化するためではなく、リアルタイムで受け取る出来る限り平滑化された新規データを取得するためにこういったフィルターに主に関心が集まることを意味します。

多様な分解法や希望周期のフィルターと異なり、クラスタフィルターはコンポジションや初期シーケンスの近似化のためにさらに分析される初期系列の可能な値のファンを形成します。入力シーケンスは分析対象というよりは規準のような役割をします。主な分析対象は受け取ったデータを処理したあと、フィルターセットによって計算される値です。

図1 シンプルなクラスタフィルター図

図1 シンプルなクラスタフィルター図

一般的なケースでは、クラスタに含まれるフィルターはすべて独自の特性を持ち、その他とはまったく関連性がありません。こういったフィルターは、初期の非定常時系列の個別の性質を説明する各自の定常時系列の分析用にカスタマイズされることがあります。もっともシンプルな場合、初期非定常系列がパラメータを変更するとフィルターは『切り替え』を行います。このためクラスタフィルターは特性のリアルタイムの変化を追跡します。


クラスタフィルターの作成手順

クラスタフィルターはすべて3ステップで作成されます。

1. 第1ステップは、通常もっとも難しいステップですが、受け取られるストリームデータの確実性モデルが形成されるステップです。こういったモデル数はいずれも大きい可能性があります。それらはかならずしも近似化できるデータに影響する物理的プロセスに関連しているとは限りません。モデルが近似化可能なシーケンスを詳細に記述するほど、非定常クラスタフィルターを取得する可能性は高くなります。

2. 第2ステップでは、各モデルに対して複数のデジタルフィルタデジターが作成されます。フィルター同士をクラスタ内で接続するもっとも一般的な条件はそれらが近似化可能なシーケンスを記述するモデルに属することです。

3. よってわれわれはクラスタ内に2つ以上のフィルタを持たせることができます。結果的に、新しいサンプルそれぞれでサンプル値と2つ以上のフィルター値を取得します。このためサンプルはそれぞれベクトルまたはいくつかの値以上(最小2)で作成される人口ノイズを持ちます。ここで必要なのはもっとも適した値を選択することです。


シンプルなクラスタフィルターの一例

説明のために、マーケットクオートを入力シーケンスとして上図に対応するシンプルなクラスタフィルターを実装します。単純に任意のタイムフレームの終値を利用します。

1. モデル記述 以下の仮定の上に進めていきます。

  • 近似可能なシーケンスは非定常、すなわちその特性は時間の経過とともに変化しやすいものです。
  • あるバーの終値は実際のバー価格ではありません。言い換えると、あるバーの登録された終値はノイズの動きで、そのバー上のその他の価格変化のようなものです。
  • 実価格または近似化可能なシーケンスの実際の値は現在バーの終値と前回バーの終値の間にあります。
  • 近似化可能なシーケンスはその方向を維持する傾向にあります。それは、前回バーで上昇にあれば、現在バーでも上昇を維持する傾向にあるのです。

2. デジタルフィルターの選択 シンプル化のために、フィルターを2つ取ります。

  • 最初のフィルターは、過去2つの終値を基に計算される単純移動平均 です。これはわれわれのモデルで指定する3番目の仮定によく適合すると私は思います。
  • われわれは非定常フィルターを持つため、できれば時系列の特性変化特定に役立つもうひとつのフィルターも使用してみます。私は指数移動平均を選択しました。私にはこのオプションは合理的でひじょうに適していると思えるからです。これは EMA が MA より速いため、トレンドに沿った遅れが発生することがなく、ノイズに対する応答も良好です。EMA もまた過去2つの終値を基に計算されます。

3. クラスタフィルター用適切な値の選択

これで新しいサンプルによってサンプル値(終値)、MA と EMA の値も取得します。終値はわれわれのモデルに指定した第2の仮定に従い無視されます。その後、最後の仮定、すなわちトレンド方向維持、を基に МА または ЕМА 値を選択します。

  • 上昇トレンド、CF(i-1)>CF(i-2) に対しては以下の4つのバリアントの一つを選択します。

    CF(i-1)<MA(i) および CF(i-1)<EMA(i) であれば、CF(i)=MIN(MA(i),EMA(i));

    CF(i-1)<MA(i) および CF(i-1)>EMA(i) であれば、CF(i)=MA(i);

    CF(i-1)>MA(i) および CF(i-1)<EMA(i) であれば、CF(i)=EMA(i);

    CF(i-1)>MA(i) および CF(i-1)>EMA(i) であれば、CF(i)=MAX(MA(i),EMA(i)).


  • 上昇トレンド、CF(i-1)<CF(i-2) に対しては以下の4つのバリアントの一つを選択します。

    CF(i-1)>MA(i) および CF(i-1)>EMA(i) であれば、CF(i)=MAX(MA(i),EMA(i));

    CF(i-1)>MA(i) および CF(i-1)<EMA(i) であれば、CF(i)=MA(i);

    CF(i-1)<MA(i) および CF(i-1)>EMA(i) であれば、CF(i)=EMA(i);

    CF(i-1)<MA(i) および CF(i-1)<EMA(i) であれば、CF(i)=MIN(MA(i),EMA(i)).

ここで

  • CF(i) -現在バーにおけるクラスタフィルター値
  • CF(i-1) および CF(i-2) - 前回バーにおけるクラスタフィルター値
  • MA(i) -現在バーにおける単純移動平均値
  • EMA(i) - 現在バーにおける指数移動平均値
  • MIN-安値
  • MAX -高値


プログラムコードおよびクラスタフィルターのパフォーマンス

われわれのクラスタフィルターを持つインディケータコードは移動平均のコードほど複雑ではありません。それにノウハウ技術はありません。よってそれを考察することには意味がありません。ソースコードは本稿に添付があります。

時間を無駄にせず、われわれのインディケータのパフォーマンスを確認するには次のビデオを見ることです。


ビデオ1 シンプルなクラスタフィルターのパフォーマンス

フィルターの作成プロセスは厳格な数学的アプローチというよりも手品のように見えたとしても、ビデオはわかりやすくクラスタフィルターのラインの動きが個別の移動平均のラインよりも妥当であることを示しています。それは特に初期系列のぎざぎざのセクションで明らかです。みなさんにとってそれが印象的でなかったとしたら、クラスタフィルターをさらに JJMA と比較することもできます。それはもっともすぐれたインディケータの一つとみなされているものです。次のビデオでは同じセクションについて JJMA とわれわれのクラスタフィルターの対戦を示しています。私はラインが最大値でわれわれのインディケータのラインと一致するようにJJMA のパラメータを選ぶようにしました。

ビデオ2 シンプルなクラスタフィルター vs JJMA

われわれのフィルターは平均値でどの時系列に関しても JJMA と同様のパフォーマンスを示しています。ただ JJMA がすでにその最高の状態であるのに対して、われわれのクラスタフィルターはさらに改善することが可能です。


高度な平滑化効果

これまでクラスタフィルターがレイテンシなく入力シーケンスを平滑化する能力がある証拠はありませんでした。. この結果を達成するためには、これまで考察してきたよりもっと複雑なフィルターが必要です。

説明目的で、GMomentum テスト インディケータを作成しました。それにはインディケータラインが2本あります。

  • ブルー-古いタイプのモメンタム
  • 赤-より複雑なアルゴリズムを持つデジタルクラスタフィルターによって平滑化された古いタイプのモメンタム

インディケータの設定は多様なテストオプションに対応し、特に本稿向けに準備されています。以下で説明するテストでは、William Blau氏が述べる相対モメンタムを使用します。ご自身の実験を行う際には、みなさんはモメンタムの他のバリエーションを利用することができます。結果は同様です。インディケータの詳細説明とダウンロードの仕方、使用説明はインディケータ説明にあります。

本稿で「モメンタム」を使用することに深い意味はありません。モメンタムラインはひじょうにノイズに汚染されており、そのためフィルターのパフォーマンスをより役立つのです。そのため GMomentum テストインディケータを実行し、ブルーラインの動きと比較して赤ラインの動きを分析します。

まず、おもしろいことに目を向けます。このために、インディケータを実行する前に『フィルター』パラメータを『テストNo.1 アドバンス』に設定します。このモードでのフィルター設定は『リーディング効果』とも呼べるものを明らかにすることがよくあります。テストをする際、モメンタムの初期ライン全体の平滑化を確認することはできません。フィルターは良いリーディング効果を得る可能性が高い領域を見るものです。これがつねにうまくいくとは限らないのも不思議ではありません。それでも気づくに十分な頻度で発生します。

フィルターのパフォーマンスでもっとも説明に役立つ部分は次のチャートに表示されています。

図2 モメンタムライン平滑化におけるリーディング効果

図2 モメンタムライン平滑化におけるリーディング効果

それはフィルタリングを先導しているように見えるだけであることに注意が必要です。この効果は、時間の先をいくフィルターというよりはモメンタムラインのノイズの動きのために排他的に発生します。他のインディケータ(単純 MA から JJMAまで)での同様の調査により、平滑化のリーディング効果は各インディケータで観察されることが確認されます。指定期間が短いほど、この効果はより頻繁に観察されます。最近の研究によりこの効果を強化することが提案されています。それはすべて可能性のある値のベクトル収集方法とその分析によります。


コブラ効果

すでに実行中のインディケータをご覧になったことのある方はもうひとつ別の異常にお気づきかもしれません。最終の未完了バーのインディケータラインはかならずしも価格をフォローしているとは限らないのです。たとえば、インディケータが下降している間にも価格は上昇するかもしれません。逆もしかりです。マーケットが速いとき、またはビジュアライザによって見ているとき、獲物を追跡するコブラの舌に似ていることがあります。

ビデオ3 平滑化のリーディング効果とコブラ効果


トレンド先行エラー

モメンタムの初期ラインがトレンドに逆行するとき(ノイズが出る)、それは初期ライン全体に平滑化されたラインのリーディング効果につながることが、上で確認できます。明らかにモメンタムラインは別の方向で誤った動きもする可能性があります。すなわち、予想外にトレンド方向に進みすぎたり、トレンドはとくに反転しているのにときどきぐずぐずしすぎたりです。フィルターがそのような動きを抑えられるならば、それは論理的でしょう。

アルゴリズムがこのようなトレンド先行エラーをどのようにフィルターにかけるか見てみましょう。このために、インディケータを実行する前に『フィルター』パラメータを『テストNo.2 平滑化』に設定します。このテスト中にクラスタフィルターの処理は二分割されます。

チャートのサブウィンドウに表示される短いインディケータ名には"GMomentum(パラメータ 1、パラメータ2)" 括弧の中にパラメータが2個あります。2番目のパラメータが -1 であれば、アルゴリズムはトレンド先行エラーを修正(平滑化)しようとします。2番目のパラメータがゼロ以上であれば、事前の平滑化設定が実行されます。

以下のビデオでは感度を最小から許容可能な値まで上げ、それから戻すというぐあいに変化した上でのフィルター処理を示しています。ビデオで示される効果を得るには、フィルターの感度はUp / Down キーによってコントロールできます(インディケータウィンドウがアクティブであるとして)。

ビデオ4 トレンド先行エラーのフィルタリング

上のビデオでは価格とモメンタムの初期ラインの突然の変化にもかかわらず、フィルターの感度が高まるにつれ、モメンタムラインはラグなく平滑化されているのが提示されています。最大平滑化においては、許容できるエントリーポイントを取得します。

付け加えて言えば、平坦な領域はインディケータのほとんとに対する問題を提示しています。ただしここでは、そのいくつかは既存の設定であっても簡単にほとんど直線に作成しなおします。理論的にはこの技術はそれ以上のラグを生まずに既存のインディケータを改善するのに使用可能です。実用面からは、それは確認が必要です。

次のビデオではフィルターがどのように初期モメンタムのメジャーピークを平坦かし、ほとんどラグなして価格変化に近いなめらかなトレンドラインを描いているかに注意を向けてください。なぜそのようなことができるのか、に対する説明は本稿でWilliam Blau のインディケータとして提供します。

ビデオ5 初期モメンタムラインのピーク平滑化

達成されたみごとな結果はクオートの履歴全体におよぶものと同様ではありません。ですが、モメンタムにはノイズが多く、インディケータはラグなくストリームデータをフィルタリングするのを示すためだけに実装されていることを考えると、これはひじょうに許容できると考えられます。また、インディケータは再作成されていないことにも注意が必要です。


インパルス応答

内蔵フィルタによるモメンタムのパラメータ調査はひじょうに興味深いもののようです。たとえば、インパルス応答はどのようにどこでインディケータラインからピークが消えるのかをうまく説明します。テストを行うには、『フィルター』パラメータを『テストNo.3 インパルス』に設定します。テスト中、1024番目のバーごとに単位インパルスが受信されます。インディケータ実行後、関連個所をチャートで検索します。それは以下のようなものです。

図3 モメンタムのインパルス応答

図3 モメンタムのインパルス応答

インディケータ実行中、フィルターは無効です。そのためブルーと赤の2つのピークが確認できます。:1つは単位インパルスのときに出現し、それはそのインパルスに等しくなっています。もう一方は指定の間隔数の後に逆方向のピークが出現します。これは『稀な』モメンタムのインパルス応答の表示です。その後、Up / Downキーで次第にフィルターの感度を上昇または下降します。そうすると以下のようなものを取得するはずです。

ビデオ6 モメンタムのインパルス応答

ご覧のように、第二のピークは完全にフィルターによって平坦になり、一方第一のピークにはまったく変化がありません。フィルターはモメンタム効果をすべて修正し、正確に最初の絵を作り直します。:単位インパルスそれ自体で、です。ラグはまったくありません。振幅や単位インパルスの形のゆがみもありません。それは動作中の完璧なフィルターなのでしょうか?


完璧なフィルター

問題のフィルターが完璧であるとすぐに考えるわけにはいかない物理的要因がひとつあります。これについては少しあとで説明します。

完璧なフィルターは存在せず、どんなフィルター(インディケータ)にもラグがあると思われています。しかしそれなら取得した結果をどう説明できるのでしょうか?それらはすべて観察できる何かとして提示されています。開発者の細工でしょうか?単位インパルスコードでは小細工ができるかもしれません。ですが、効果はクオートすべてにおいて観察できます。その上、トレードのインスツルメントに対してインディケータを特に設定したりリセットする必要はありません。

フィルターが物理的な物体(コンデンサー、インダクタなど)で作られているなら完璧なフィルターは存在しえません。これは自然そのものによって管理されてきました。それならば、デジタルの世界では完璧なフィルターは存在するのでしょうか?この質問に対する答えは確実にコンピュータシステム(精度、計算スピードなど)の物理的限界に関係なく出ます。

インディケータに話を戻します。内蔵デジタルフィルターは線形フィルターには属しません。内蔵フィルターを持つインディケータについては、先に考察したインパルス応答はたまたまうまくいったフィルタリングの特殊なケースにすぎないのです。大きな結論を導き出すには、より適切で慎重な調査が必要です。


おわりに

本稿で提供されている情報がデジタルフィルター(インディケータ)作成に関する固定観念を破ることに役立つことを願っています。

説明されている事柄はすべて提案のインディケータによって検証することができます。紹介したGMomentum テストによりクラスタフィルターのパフォーマンスと潜在能力を評価することができます。また、シンプルなフィルター例はご自身のフィルターを作成する開発者の方への刺激になるかもしれません。

最後に、勇気をもって次の結論を導こうと思います。:フル機能のラグなしインディケータ(デジタルフィルター)を作成することは潜在的に可能である。

MetaQuotes Ltdによってロシア語から翻訳されました。
元の記事: https://www.mql5.com/ru/articles/812

添付されたファイル |
clusterfilter.mq5 (6.67 KB)
ビデオチュートリアル:MetaTrader Singals Service ビデオチュートリアル:MetaTrader Singals Service
15分にて、このビデオチュートリアルは、MetaTrader Singals Serviceが何であるか、そして詳細にどのようにトレードシグナルをサブスクライブするか、どのようにシグナル提供者になるかについて説明しています。このチュートリアルを見ると、どのトレードシグナルにもサブスクライブし、自身のシグナルを発行し、宣伝することができるようになります。
MetaTrader 5の継続的な先物取引 MetaTrader 5の継続的な先物取引
先物取引の短期的なスパンは、テクニカル分析を複雑にします。短いチャートをテクニカル分析するのは難しいです。例えば、UX-9.13 Ukrainian Stockインデックス先物のディチャートにおけるバーの数は、100以上になります。したがって、トレーダーは総合的な長期の先物取引を作成します。この記事は、MetaTrader 5ターミナルにて、異なる日付の先物取引を組み合わせる方法を紹介します。
安くて楽しいニューラルネットワーク - MetaTrader 5 でNeuroPro へリンク 安くて楽しいニューラルネットワーク - MetaTrader 5 でNeuroPro へリンク
トレード用の特定のニューラルネットワークプログラムが高価で複雑そうであったら、反対にシンプル過ぎると思えたら、NeuroPro をお試しください。それは無料でアマチュア用の最適な機能セットが備えられています。本稿では MetaTrader 5 と連携してそれを利用する方法をお伝えします。
MQL5 エキスパートアドバイザーから、GSMモデムを使用する MQL5 エキスパートアドバイザーから、GSMモデムを使用する
現在、トレーディングのアカウントを監視する手段がたくさんあります:モバイルターミナルはICQを用い、プッシュ通知を行います。しかし、すべてインターネットの接続を必要とします。この記事は、特に呼び出しやテキストメッセージはできるが、モバイルのインターネットを使用できないような時にトレーディングターミナルの情報を取得できるようになるエキスパートアドバイザーを作成するプロセスを紹介します。