奮戦記:ボラのないところを避けろ!
前回のあらすじ(トレンドの正体ってなに?)
トレーディングエッジの精度を高めるためには、ボラティリティとトレンドを定義し、裁量トレードではエントリーしない箇所を排除する必要があると判断した。
2週間あまりの期間、机上であれこれと悩んだ吉田は、トレンド=角度と結論づけた。これには為替和尚も同意したが、和尚が指摘するように角度は、チャートの大きさで変わってしまう。
また、時間と値段という異なる単位をどうやって計算するか?
概念は定義できても、まだまだ問題は山積みであった。
これまでの自動トレード開発を通じて、トレンドとボラティリティの問題に真剣に向き合う必要性は感じていたが、いざそれを数値化するとなると数々の問題が目の前にあった。
- チャートの大きさを変えると、移動平均線などの角度が変わってしまう問題
- 異なる単位軸のものにどうやって三角関数を適用して角度を求めるのか?
これらの問題を解決して、「ボラティリティのない区間」の排除をどうやって機械に認識させるかが、今回のテーマである。
※ブログランキング参戦中。よかったら応援してください。
ボラのない期間を数値化しろ
ボラティリティがあれば、どんなトレードルールでも勝てる。
十分なボラティリティがあるときは、テクニカルがぜんぶワークする。
自動トレードの検証すると一番負けるのは「ボラのない区間」だ。なら…
ボラのない区間を避けて
トレードすれば勝つる!!
という発想に行き着くのは、自然な流れだと思う。
裁量トレードなら「ボラのない区間」は見ればわかる。
しかし、自動トレードで機械に判断させる場合は、チャートを数値化しないとボラのあるなしは判断ができない。
「ボラティリティ」とは価格変動率である。乱暴な言い方をすれば高値と安値の差(価格差)となる。しかし、トレーダーがいうところのボラがある状態とは、どちらかの方向にトレンドが発生している状態を指す。
つまり、価格差だけでなく、トレンドを判定する必要がある。
横軸:時間をどう扱えばよい?
「トレンド=角度」と定義したのはいいが、これをどう数値化したものか。
ちなみに平面上で角度を求めるには、三角関数のArcTanを使えば求められる。
しかし、今回は横軸が時間で、縦軸は価格と平面だけど、単位も数量も異なるチャートが相手。これをどう処理するか?
吉田はトレンドの正体を突きとめたのと同じく、紙とチャートをにらめっこしながら、やり方を考えた。
一番の問題は、横軸が時間ということ。
価格はともかく、時間はそのままでは比較できない。
あるとき、時間をそのまま扱うのではなく、ローソクの本数に置き換えればいいことに気づく。チャートの横軸である時間は、確かに表示は「時」や「分」で表記されているが、実態は「ローソク足の本数」だ。
例えば、1分足チャートが5本あれば、時間にすると5分経過していることを表すが、1時間足チャートで5本のローソク足は5時間になる。
これを「時間」としてみると5分と5時間では扱いが変わる。
チャート上ではどちらも
ローソク足5本分
この事実に違いはない。時間軸がローソク足の本数にすぎないなら、どの時間軸のチャートでも、横軸は同じものを扱っていることになる。つまり、横軸を縦軸にあわせて平面に置き換えるだけでよい。
チャートの大きさを変えると角度が変わる問題は?
残りは、「チャートの大きさを変えると角度が変わってしまう問題」だけだが、これはチャートを眺めていて解決策が見つかった。
我々が見ているチャートは、パソコンの画面の大きさの関係で、ある区間のチャートが切り抜かれて表示されている。でも、実際には画面の外側にもチャートは続いている。スクロールさせると、チャートが一続きになっていることも分かるはず。
つまり、目で見るのと同じように、見えている区間だけを相手にすればいいわけだ。「スケーリング」という考え方を応用する。
単純に言うと、画面に100本のローソク足が見えてるなら、その中の最安値を0%、最高値を100%として計算するやり方だ。
いくつかの試行錯誤を経てボラのない区間を表示するインジケータ
「デッドバンド」が完成した。
※ちなみに、このインジケータはまだまだ改良の余地があるため、一般公開はしていません。
意気揚々とインジケータを見せたものの…
吉田は出来上がったインジケータを師匠に見せた。
インジケータを見た師匠(為替和尚)は開口一番
これは使えるで! 吉田っち!
と声を張り上げた。
吉田「結構苦労しましたよ…」
師匠「わかるわ。なかなかええで。ほうほう、このグレーのボックスがボラのない区間やな」
吉田「デッドバンドと名付けました。未来予測というより、過去の一定期間の角度と値幅を見て、ずらして表示させているだけなんですけどね」
師匠「ブレイクアウトの箇所までずれ込んでるのは、そのためやな?」
吉田「未来予測まではできませんからね。あくまでも過去を評価してるだけです」
師匠「吉田っち的には、デッドバンドはどう使うつもりや?」
吉田「フィルターとして利用することを考えてますけど…。」
師匠「つまり、デッドバンドが表示されてるときはエントリーさせない?」
吉田「今回はエントリーしたくない区間の定義が目的なのでそうですね」
師匠「エントリー遅れへん? それやと問題が解決せえへんで」
このあと何を話したかは覚えていないが、解決策にと考えたインジケータが
自動トレードには使えないことを知り、少なからずショックを受けた。
トレンドの定義からはじまり、この数週間いろいろ悪戦苦闘したことが無駄に終わった。
師匠は「裁量トレードには使える」といってくれたが、結局、まだまだ機械と人間の間には大きな差があることを痛感させられた。
ボラのあるなしを判断させればなんとかなると考えたが、裁量トレードはもちろん、自動トレードにしろ、一番大事なのは…
チャートの右端でどう判断するか?
過去の状態を評価するだけでは先に進めないのだ。
春先から始まったトレーディングエッジの開発だが、
ここで完全に暗礁に乗り上げたため、一旦開発を中止する決断をした。
どうすれば、機械にプロトレーダーの考え方を判断させることができるのか?結局、最初の振り出しに戻った。
気づくと2010年の秋も深まっていた。
いつも楽しく拝見しています。
今回の記事は、自分が聖杯探しをしている頃を思い出しました。
周りが見えなくなって、いつの間にか手段が目的になってしまうんですよね。
「お金を稼ぐのが目的か、クローン人間を作るのが目的か?」みたいな。
そして裁量と自動売買の埋めがたい差異に気付きながら、5年間(?)もそれに執着する職人気質に脱帽致します。
しかし、記事の中で「無駄だ」と仰っている作業も、再び壁に当たったとき「あの方法は無駄だったしな」と言う形で報われるかと思います。
続きを楽しみにしています。