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

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

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

スポンサーリンク

MTAアルゴリズムと単純トップダウン法との比較

Python

前回の記事ではMTAを移植しましたが、一般的なトップダウン法とどのくらい違いがでるのか気になったので比較してみました。

f:id:fxborg:20170307211348p:plain

トップダウン法はこちらのソースを使用しました。
https://www.msi.co.jp/vmstudio/materials/tech_web/timeseries.html

トップダウン法とは・・・

はじめに1本の線分を引き、分割を繰り返していくアルゴリズムである。分割点となる条件(分割点条件)を満たす点の内、分割後に標準誤差が最小となる分割点から分割される。再度、分割点条件を満たす点を検索し、分割後の標準誤差が最小となる点で分割を繰り返す・・・・・

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

比較した結果

MTAもトップダウン法の一種なのですが、考えていた以上に結果に差が出ました。単純なトップダウン法では、区切られるトレンドの大きさも固定的で分割される位置もいまひとつです。

一方、MTAでは大小のトレンドに対しても、うまく捉えられているようです。また分割位置もかなり正確です。

いろいろな設定で比較してみた

どちらのアルゴリズムでも誤差の精度を指定できるので、いろいろなバリエーションを試してみました。

▼MTA (精度:0.1)

f:id:fxborg:20170307214934p:plain

▼MTA(精度:0.05)

f:id:fxborg:20170307215152p:plain

▼MTA(精度:0.02)

f:id:fxborg:20170307215447p:plain

 

▼トップダウン(精度:0.2)

f:id:fxborg:20170307215941p:plain

 ▼トップダウン(精度:0.1)

f:id:fxborg:20170307220126p:plain

 ▼トップダウン(精度:0.05)

f:id:fxborg:20170307220237p:plain

最後に

今回はMTAと単純トップダウン法の違いについて調べてみました。せっかく苦労して移植したプログラムが「大したことなかった」なんてこともよくある話なので、心配になり確認してみましたが、ちゃんと効果が出てたので安心しました。評価関数がうまく出来ているのでしょうね。