読者です 読者をやめる 読者になる 読者になる

FXボーグ | テクニカル実験室

テクニカル分析を使った自動売買プログラムの開発に挑戦!

スポンサーリンク

時系列のセグメント化アルゴリズムに挑戦。SWABの情報があまりにも少なすぎる件。

時系列のセグメント化

こういう研究分野があるのですね。まずはこれを見つけて衝撃が走りました。まさに自分が作りたいと思っていた線です。あまりにも情報が少なすぎて公開に迷った程です。
ALGORITHMIC METHODS FOR SEGMENTATION OF TIME SERIES: AN OVERVIEW
f:id:fxborg:20160214210327p:plain

これまでにずいぶんとこの周辺の情報を探ってきましたが、ようやく一つの壁を越えることができそうです。有料のチャートソフトなどはこのあたりの手法を取り入れているのでしょうね。

 ざっくりとした説明

 改めて調べてみると、データマイニングソフトの技術資料に分かりやすい説明がありました。

「線分表現は、時系列を複数の線分で表現する方法である。 それぞれの線分を求める方法は、数多く存在するが、基本的には、隣接する時系列データ間の変動に注目し、変動の少ないもの同士を一直線で繋げるという方法である。」

「時系列データをこのような複数の線分で表現することには次の利点が挙げられる。

1.時系列上の細かい変動、または、ノイズを除去することができる
2.データを「圧縮」することができる
3.時系列データ間の距離計算の高速化が可能である
4.線分パターンに対して、データマイニング手法、特にクラスタリング、分類分析に適用しやすい」

https://www.msi.co.jp/vmstudio/materials/tech_web/timeseries.html より引用)

このセグメント化には3つの代表的なアルゴリズムあって、それぞれ次のような特徴があります。

  • Sliding Windw ・・・リアルタイムでの解析に向いていますが、直近のデータを中心に近似直線を求めるため、全体を見通すことができない。
  • Bottom-Up・・・  全体を見渡して条件が満たされるまで、誤差一つずつ取り除いていく方法なので精度はよいが計算量が多い。
  •  Top-Down ・・・はじめに1本の線分を引き、分割後に誤差が最小となる点を求め分割していくアルゴリズム。こちらもコストが大きい。

SWAB(Sliding Window And Bottom-up)

上記アルゴリズムの「Sliding Window」と「Bottom-Up」を組み合わせたものが、

Eamonn Keogh 教授考案した「SWAB」です。このSWABをマスターすれば、チャート分析の強い味方となりそうです。これをベースにした「ZIGZAG」などはすぐ作れそうです。

とりあえず情報が少ない中なんとか「Sliding Window」「Bottom up」を作ることができました。

f:id:fxborg:20160214215209p:plain

(Sliding Windowアルゴリズム)

f:id:fxborg:20160214215257p:plain

(Bottom Up アルゴリズム)

まだまだ勉強中なので不完全ですがよいアルゴリズムが見つかったので、じっくりと消化していきたいと思います。(SWABはまだ資料集め段階。)

こちらからどうぞ

/Indicators/sliding_window_segment.mq5
/Indicators/bottom_up_segment.mq5