改めてボラってなんだ?

2013/10/28 カテゴリ:数値化
  • このエントリーをはてなブックマークに追加

改めてボラってなんだ?

10月に入り、再び自動トレードシステム開発が加速してます。
ちょっと別件の仕事が入っていたので、しばらく自動トレードシステム開発は休止してたのですが無事再開です。


現在決まっているシステムの仕様に基づき開発をしてますが、普遍的なシステムを作ろうと思えば、「相場そのものの数量化」はさけられないものです。例えば、トレンドの有無。人間ならチャートを見れば、トレンドが発生しているかどうかはひと目で分かりますが、機械の場合、それを認識するのも難しい。


数ある数量化の中で、改めて取り上げたいのが「ボラティリティ」です。
勝っているトレーダーが異口同音にクチにするのが、

ボラさえあればそれでいいよ

という言葉。ボラ=ボラティリティというのは、トレードをする上で、欠くことのできない要素なのです。

では、ここで改めて聞きますけど、

ボラってなに?

※ブログランキング参戦中。よかったら応援してください

 

ボラってなんだ?

師匠の為替和尚も度々言います。

ボラさえあれば、トレードルールなんてなんでもいいねん。
どうやっても勝てるよ。

まぁ師匠の場合、どんな状況でもさばける「技術」があるので、こういうセリフを吐きますが、基本的にエントリーにめちゃめちゃ自信のある人なので、その中でも勝率の高いポイントをきちんと選別しますけどね。


ボラティリティというと、ボリンジャーバンドやATRなどテクニカルを思い浮かべる人が多いと思います。
でも、これは相場の現象を数値に置き直したある種の「指数」です。
ボラそのものを表しているわけではありません(ボラティリティの判断に使っている人はいると思いますけど)。


ボリンジャーバンドやATR、はてはストキャスティクスなどのテクニカル指標は、考案者がある種の考え方に基づき作成したものです。だから、単に相場の現象を数値化するというよりは、別の何かを検出しようとしているものもふくまれます。


吉田と師匠が取り組んでいる自動トレードシステムは、普遍的なシステムです。通貨ペアを問わず、実際に人間がチャートを見て判断するのと同様のことを機械にやらせるのが最終的な目的です。
だから、数量化をするにあたり、余計な概念は入れたくないのです。
必要なのは、「人間がチャートをどう捉えているか?」ということだけ。


で、話は最初に戻りますけど、「ボラってなに?」


大雑把な定義になりますが、吉田はこう考えています。

  • ある区間の値動きの幅
  • ヒゲではなく、ローソク足の積み上げ(買い方、売り方の圧力)

ボラとトレンドは概念的に近いものですが、トレンドはボラティリティの積み重ねであると考えます。値幅というと、ヒゲをふくめた値動きの幅を指しますが、結局、終値を押し上げる(押し下げる)力がないと、ボラがあるとは判断しません。ヒゲ(高値安値)はサポレジになるので、重要な要素のひとつですが、ヒゲだらけで方向感のない相場を値幅があっても「ボラがある」とは言わないでしょ。


つまり…

ボラティリティ=ある方向にどれだけ動いたか

と定義してます。

ボラティリティの可視化と数量化

ボラティリティの定義が出来たところで、次に行わなければならないのが、数量化です。数値に置き換えれば、曖昧さは消えて見える化(可視化)されます。


自動トレードシステムにおける定義付けとは、トレンドやボラティリティ、流れといった曖昧なものを、「人に定義を説明できるぐらい言語化する」ことを指します。

実際に勝っているトレーダーでも、こういう定義を明確に言語化できる人はすくないです。それを「感覚的なもの」と表現しますが、内情は言語にできていないだけです。
だから、プログラミングの出来ない人が、業者にシステム作成を依頼した時に、真っ先に問題になるのが、感覚的なものを言語として伝えられないという点です。プログラミングというのは、非常にロジカルなもので、そこに曖昧さはありません。曖昧さがないということは、明確に言語化できているということなのです。


吉田は師匠と自動トレードシステムの開発をして5年半が経ちますが、その間、公式サイトの作成などシステム開発以外に取られていた時間もありますが、一番時間がかかったのは、お互いの意思疎通です。


師匠はトレーダーとして語るし、吉田はプログラマーとして語るので、同じチャートを見ても解釈や捉え方が異なり、意思疎通が出来ないのです。
開発奮戦記でも触れましたけど、師匠の話はよく飛ぶので、全体像を把握するのにも苦労しました。結局、師匠の話を理解できるようになる=吉田自身が強い裁量トレーダーになるということと同じでした。


今まで曖昧だった概念が明確に言語化できるようになると、相場の情報で必要なものを数値に置き換える、数量化がはじまります。
実際、ボラティリティを数値化する試みは、考え方を変えてなんども行われてます。この作業は、ボラティリティのある区間よりも、逆にボラがない「レンジ」区間に焦点をあてました


なぜなら、コレまでに開発してきたシステム、ひとが作ったEAを運用して思ったのは、結局、レンジでやられるという事実があったためです。

レンジでやられるなら、レンジを定義してそこを避ければいいじゃん!

至極当たり前の結論。で、あれこれやった結果がコレ。

レンジを定義
(※クリックで拡大できます)

グレーで表示されている区間がレンジと判定した区間です。
また、1番目のサブウィンドウに表示されているヒストグラムは、ローソク足の長さを元にボラティリティの計算用に作ってみたインジケータ。
(現在は、このインジケータの考えは使ってません)


相場の数量化の歴史は、定義とそれに基づく解釈、インジケータの作成による目視確認のくり返しです。

まとめ

トレーダーも機械もこれまでのチャートの動きを元に、現在の相場の状態を判断します。過去のチャートの動きは大切です。なにせ、これしか判断の拠り所に使える情報がないからです。


でも、大きな問題が有ります。

チャートの右端の状態までは
わからない

ボラがあるにせよ、レンジ状態にせよ、右端で判断することは出来ません。未確定のローソク足が動いているチャートの右端は、現在と未来のことなのです。不確定な未来が含まれている以上、レンジはまだまだ継続するかもしれないし、十分にあったボラティリティもこの先も継続する保証はないのです。


だからこそ、師匠がたびたびブログに書いているように、ダメだった時の処理が重要になるのです。

ボクラは数値しか判断できないから、
数値で伝えてね。

ブログランキング

この記事に対するコメント

4 件のコメント

  • 白川
    2013/11/01 03:51

    このブログができた最初から愛読者です。
    いつもためになる内容で楽しく読ませていただいています。
    どうもありがとうございます。

    今日は一つストレートな質問をさせていただきたいと思うのですが・・・

    自動化ソフトの完成のめどは立っておられるのでしょうか?
    めどが立っているとしたら、完成の予定はいつ頃でしょうか?

    実はブログを読み始めた最初から知りたいと思っていたことなのですが、
    ブログを読み始た頃は、ある程度たったら、ソフトが完成され
    販売サイトが立ち上がり、販売が開始されるだろうと思っておりました。
    しかし、なかなかソフトが完成されないため、
    これは本当に「奮戦記」なの?と思うに至りました。

    もし、まだめどが立っていないのであれば、とても厳しい質問になると思うのですが、(十分その可能性もあると思っております。目標自体が不可能を可能にする類のものだと思っております。)、長年疑問に思っておりましたので、今回、質問させていただきました。

    以上、よろしくお願いいたします。

  • 2013/11/01 07:07

    白川さんコメントありがとうございます。

    たぶん、みんなが疑問に思っていることだと思うので、はっきりと答えますね。自動トレードの目処は立っています。完成の時期はちょっと明言できませんが(いついつまでに完成って言えるシロモノではないので)。
    また、ここが一番誤解を受ける部分だとおもいますが、販売は一切考えていません。自分たちと仲間で運用するだけです。

    ちなみに、以前は人を選んだ上で、販売することも考えていましたけど。2011年に投資助言を取得申請をした際に、自分たちのやり方は、金融庁(関東財務局)が一任勘定と判断したため、これも諦めました。
    吉田個人の意見ですが、これだけの開発期間と労力をかけたものを、お金を出すからと理由だけで、ひとには譲りたくないというのが本音ですね(笑)。

    「開発奮戦記」か否か? といえば開発奮戦記です。
    5年半もの間開発をしてきたものですから、その記録です。ちょっと、プロジェクトX的なノリも入ってます(笑)。肝心の開発奮戦記の続きが書けないのは、ちょっと確信に近い部分に来ているので、あの形式では書きづらくなったためです。
    このブログもシステムが完成して、ある時期になったら更新終了になるかもしれません。最も、公式サイトのフォローアップという位置づけもあるため、それ次第の面は否めませんが。

  • 吉田(同姓です^^)
    2013/11/03 07:44

    なつかしい鯔の写真が出てきました(笑)

    トレンドが出ているのかレンジなのか、それさえ判断つけばルールなんてそこそこ適当でも十分勝つことが可能と思います。その判断が難しいですが^^

    >この作業は、ボラティリティのある区間よりも、逆にボラがない「レンジ」区間に焦点をあてました。

    私も突破口はここだと思います。
     多分、一番困難なのはドテンではないでしょうか。ピンポイントで捕らえないと取れないので、ドテンすべきポイントが見えたときには時遅しですし、トレンドも、トレンドが明確に出たと認識できたときは、すなわちそれは乗り遅れたことを意味している場合が多いですので(笑)
     逆にレンジであれば、その時点でレンジかどうか判断をして、そこからレンジ継続なのか、それともレンジ上限下限を抜けていくのか、という次のアクション、シナリオが作れます。レンジを如何に認識させていくのかがポイントではないかと考えています。

    >実際に人間がチャートを見て判断するのと同様のことを機械にやらせるのが最終的な目的です。

     単純な計算式から出るサイン(テクニカル指標)は便利な反面、使えるケースが限られてきて補助的に使うのはいいにしてもメインには持ってこれないですよね。。
     人間がどう捕らえているのか、という面からチャートを見ていくと、どうしてもある程度の長さのコードになってしまいます。。。
     そこで実行速度がネックになりつつあります;; 実運用環境だとTickデータが入ってくるのは短くても300ms間隔くらいだと思うので問題ないとは思いますが、一年間1通貨ペアのTickが手元のデータで約2000万件なので、1件4msで処理しても24時間、一件100msかかると23日かかります(笑)
    (仕方がないので開発検証段階ではだいぶ間引いたデータを使っています。。)

     完成の目処が立っているのはすばらしいことだと思います。私も頑張ります^^

  • 2013/11/05 13:07

    レンジの区間も始まるポイントは後にならないとわからないので、最初に発生すると思われる損失をどう処理するか? これがポイントだと思います。

    でも判断を遅らせると、波に乗り遅れる可能性があり、痛し痒しの状況ですね。

    プログラムの処理スピードは、並列プログラムを取り入れるより他はないと思います。ただ、ボトルネックが計算なのか、I/O周りなのかで、ちょっと対応が変わりますが。