2010年10月17日日曜日

CBOを検証してみた

今までランダムトレードで自作検証プログラムの動作がOKかを何となく確認してきたのですが今回やっとランダムではないものを試してみました。チャネルブレークアウト (CBO) というものをまずはやってみて、ランダムより良ければ良しということでやってみました。

使ったデータは2001年1月~2010年9月までの1時間足のデータを1年区切りにしたものを利用しました。合計で10年弱分のデータ × 16通貨ペア=160年分のデータでやってみました。

CBOのエントリー時のパラメータEntryPeriod(過去何時間の最高値をつかうか)は20,25,30,35,..,75,80までの13パターンとしました。ExitのパラメータはEntryPeriodを一とした場合の比率として定義(ExitRatio)して0.2~0.8までを0.1ステップ刻みで変化させました。(例えばEntryPeriod=20の場合でExitRatioが0.5の場合Exitに使う期間は10本(時間足を使っているので10時間)ということになります)合計13エントリー期間 × 7Exit比率 ×160年 =14560の結果が得られました。(合計2パラメータ)

今回の設定ではロングもショートもチャンスがくればエントリーするという設定になっていますが以下がそのルール(ロングの場合)です。
  • エントリーはEntryPeriod期間中の最高値を終値ベースで更新した次の始値でエントリーとしました。
  • エグジットは 切り捨て(EntryPeriod×ExitRatio) とし、その期間中の最安値を終値ベースで更新した次の始値でエグジットとしました。

下記の結果はその全ての結果の平均です。CBOがチャネルブレークアウト(今回)の結果で、RANDOMがランダムトレード(今までやっていたやつ)の結果です。(あとPF=プロフィットファクター、AvProf=%ベースのトレードあたりの平均利益をそれぞれ示しています)

たったこれだけのちがい?と思いましたがあくまでこれは16通貨ペアでかつ良い年も悪い年も含め、そしてさらに良いパラメータも悪いパラメータも全部含めての全平均なのでこんなもんなのかもしれません。この2つでU検定を行うと(前回の記事参考)とりあえず意味のある差がある(P値=0.0001)との結果です。(サンプル数が多いのでP値も相当小さいです)

尚上記のデータはすべて0.025%のスプリットが考慮してあります。ランダムのAvProf(パーセンテージベースの平均利益)が-0.025となっているのはまさにそのためでです。(ランダムトレードは(スプリット等を除いて)とんとんになる) ですのでCBOではスプリット等考慮しなければ確率的には+が見込めるということです。

この次のステップとしてはまずはEntryPeriodとExitRatioの各パラメータの指定範囲をもう少し小さくしていってそれでAvProf等の平均値を上げていくことだと思っています。各パラメータは最初は(点ではなく)範囲で指定することが良いことだと考えています。これによってオーバーフィッティングを避けることができてより堅固なシステムができれば良いなぁなどと現時点では考えています。

<1日経過>

まずはEntryPeriodとExitRatioそれぞれと平均利益の関係を見てみたいと思ってグラフにしてみました。以下のような結果が出ました。
これによれば(アバウトですが)EntryPeriodは50~75の範囲、ExitRatioは0.5以上で0.8以上も今後検証したほうがよいといった感じに見受けられます。

そこで次はEntryPeriodを狭めて且つExitRatioは0.5~1.4くらいまででやってみようと思います。

<半日経過>

やってみた結果は以下の通りでした。

少し良くなりましたが微々たるもの。こんなもんなんでしょうかね。今回もまたEntryPeriodとExitRatioそれぞれのパラメータ値毎の平均利益を出してみました。今回はパラメータによっては平均利益がプラスに振れているものが出てきました。
最後に一番良さそうなEntryPeriod=50, ExitRatio=1.3での集計もとってみると以下のような感じでした。また少しだけ良くなりました。

この結果は持ってるデータの10年弱×16通貨ペアの平均なのですが、これじゃ儲かりませんね。平均でそこそこのPF(1.4程度?)もしくはAvProf(0.20%程度?)が出てそして且つ標準偏差が小さいというようものを目指したいと考えています。(これがどのくらい大変なことかは現時点では皆目見当もつきませんが、簡単ではないのだろうなぁと思っています。)

(※後で気が付いたのですが標準偏差の計算が間違っていました!平方根取り忘れてた!なのでこの記事を含め今までの記事で標準偏差とあるものはすべて不偏分散でした。)


0 件のコメント: