年収を10倍にする方法 実践7
システムトレード、トレンドフォロー、カウンタートレンド
まず、システムトレードの根本的な考え方を復習しておこう。
感情を排するとか機械的にやるというのは、
もうそういう説明はどこにでもあるから省略する。
システムトレードは、別にコンピュータをアルゴリズムによって、
人間が出せないような驚異的な売買シグナルを出すとか
そういうことではない。
ある程度これは優位性があるだろうという戦略、
エッジがある戦略とか言うんだけど、それに基づいて、
繰り返し繰り返しトレードするってことだ。
ひとつひとつのトレードの成績はばらばらでも、
それがたくさん積み重ねれば、そのエッジが明確に出現してきて、
ある程度の長期ではきっちり利益を叩き出している、
それがシステムトレードの本質だ。
最初からエッジがない戦略で設計されているシステムは、
当たり前だけど、長期的に運用しても利益は出るわけがないし、
ちゃんと強力なエッジのある戦略で設計されているシステムは、
普通にそのシステムのシグナル通り運用していたら、
利益は必ず出るはずだ。
で、なぜエッジがあれば、長期的には必ず利益がでるはずだ、
と言い切れるのかというと、それは統計学に基づいているから
そう言い切れるんだ。
前にも言ったけれども、「大数の法則」。
「コイントス」つまり
コインを上に投げて、テーブルの上なんかに落ちたとき、
裏、表どっちが上になっているか?
というゲームというか賭けがある。
サッカーの試合なんかで審判がゲームの最初にやっているのとか
みたこともあると思う。
コイントスの結果はまったくエッジがないんだ。
表も裏も出る確率は50/50。
1回だけやったら、裏表どっちかが出ておしまい、だけれども、
これを100回、200回、1000回とやっていくと、
コインのバランスがいびつでない限り、
本当に1000回コイントスするならば、
ほぼ500回表がでて、
ほぼ500回裏がでるようになってくる。
コイントスの回数が増えれば増えるほど、
50/50に収束していく。
だから、大数の法則の上では、確率的、統計学的には、
絶対確かなことを言えてしまう。
1回1回は表も裏も不確かなのに、
回数を重ねると確かになる。
これが大数の法則の重要なポイント。
さて、具体的なシステムトレードの話。
コイントスをシステムトレードのルールにすることはできるよね?
つまり、プログラムの中で乱数を発生させて、
ある桁の数字が、偶数ならば表、奇数ならば裏とか。
まあいろんなやり方はあるけど、
プログラム上でコイントスをするのは簡単だ。
で、あるポイントで
表ならばロング(買い)
裏ならばショート(売り)
利益確定、ロスカット、ともども50pipsとか。
こういうシステムなんか簡単に組める。
こういう超単純なシステムで、エントリのルールが
コイントス、つまりまったくエッジがない場合は、
このシステムは長期的には利益も出さないし、
損失も出さない、ということは確実にわかる。
運用期間のマーケットが上がり調子であろうと下がり調子であろうと、
ときどきコイントスでロングかショートか決めているんだし、
長期的には利益も損失も出ない、平らなシステムだろう。
大数の法則によってエッジがないルールのシステムは
長期的にはエッジのない結果しか残さない、ということが
確実に言える。
ということは、トレードシステムを運用するにあたって、
根本的に大事なことは、ただ2つ。
1.エッジの優れたシステムを構築すること
2.大数の法則が効くようにトレード回数を多くすること
この2つだ。
ある期間でみて、トレード回数が多ければ多いほど、
大数の法則が効いて来るので、エッジは明確に現れてくる。
だから、トレード回数の多い、短期システムのほうが、
長期システムよりもパフォーマンスは安定している、
ということが言える。
しかし、ここで問題は取引コストだ。
取引コストがゼロ、具体的には、
1分間に100回ある通貨ペアを売り買い売り買いしても、
まったくコストがかからない、みたいな状況であれば、
これは、全力で、超短期トレードシステムで
エッジがあるものを探すことをお奨めする。
もちろん超短期トレードシステムを運用するには、
手動でやっていたら大変なので、自動売買とかにする。
でも、実際はそんなことしていたら取引コストがかさんで、
すぐ口座ゼロになっちゃう。だから無理。
短期システムのほうがパフォーマンスは安定しやすいが、
取引コストが多くかかるので、その分不利になる、
という諸刃の剣がある。
だから取引コストが小さければ小さいほど、結構いろんな
短期トレードシステムをテストできることになるから、有利なんだ。
どの程度の短期トレードシステムが、たとえばIBでは許容範囲か?
というと、かなり個人的見解になってしまうけど、
だいたい24時間で10往復くらいが限界かな。20往復とかなると
かなりIBのトレードコストでも厳しいだろうと思う。
1日、2,3回のトレードです、というのであれば、
IBのトレードコストではかなり余裕。
1週間に、2,3回のトレードシステムというのは、
なかなかバランスが良い感じがする。
1月に5回トレードします、というシステムも悪くないだろう。
ただ、こうやって短期から長期になるに従って、
ある期間のなかで大数の法則が効く程度は弱くなるので、
パフォーマンスの安定はどんどん悪くなる、というのは
宿命だ。
じゃあ、長期トレードシステムはパフォーマンスが安定しにくいので、
ダメなのか?というと、そうでもない。
日足とかの長期トレードシステムはトレンドフォロータイプが
圧倒的多数だろうと思う。
トレンドがある限り、ずーっとロングとかショートしっぱなしにする。
これは実際単独で運用するのはつらい。
トレンドが発生していないのは、マーケット全体の7割、8割以上とか
なので、ほとんどの期間は、トレンドフォロー仕掛けては、失敗、
損失の繰り返しになって、損失がどんどん膨らむ。
トレンドフォローって勝率が低いんだ。
それで、大数の法則が効かないから、かなり長期でみないと、
エッジどおりのパフォーマンスが出現してこない。
だから、特に長期トレンドフォローシステムは単独で運用するのは、
厳しい。かなり厳しい。
単独ではNGなので、必ず複数のマーケットで同時に運用する。
これが長期トレンドフォローシステムのエッジを確実に出して、
運用を成功させるための唯一の方法なんだ。
これしてないとまず失敗するだろう。
可能な限りトレンドが発生しやすいマーケットを探して、
できるだけ多くのマーケットでトレンドフォローする。
ひとつひとつのマーケットではだいたい損失出している期間が
ほとんどなんだけど、1個でも大きなトレンドが発生して、
それに乗っていれば、他の全部あわせてちゃらにできて、
おつりがくる。つまり、トレンドフォローのエッジが出現したということだ。
結局、この長期トレンドフォローシステムをできるだけ多くの
複数マーケットで運用する、というやりかたの基本の思想は、
全部あわせてトレード回数を増やす、という事なんだ。
大数の法則。
ひとつのマーケットで長期トレンドフォローだったらトレード数が
少ないので、大数の法則が効かないから、
複数寄せ集めて、トレード数稼ぎましょう、
大数の法則を効かせましょうと。そういうこと。
だから、短期、長期かかわらず、いろんなシステムを同時運用する、
というのは、リスクを分散させるメリットはもちろん大きいんだけど、
なによりも、トレード数が全体で増えている、という事実が、
システムトレードが機能する本質に合致しているということがある。
ということは、ぐるっと一周回って、長期であれ短期であれ、
トレード数を多くするほうが望ましい、
むしろシステムのパフォーマンスを安定させるためには、
トレード数は全体で多くしなければならない、ということだ。
だから、いずれにせよ、トレードコストを可能な限り削る、
というのは必須で、それが唯一一番簡単な
システムのパフォーマンス向上のための方法であるともいえる。
トレンドフォローとカウンタートレード
トレンドフォローとは、その名のとおり、
トレンドを追っかけるタイプのシステム。
日本語では順張りと呼ばれる。
タートルズのシステムが有名だけど、
年々機能しなくなってきているのも有名。
とはいえ、トレンドというのは相場で必ず発生するものなので、
堅牢な手法だといえる。
ブレイクしたらその方向に張
るという、
いたってシンプルな手法ですが、
実際に使いこなすのはなかなか困難。
以下特に長期のトレンドフォローの場合。
トレンドが発生しない期間はマーケット全体の7割以上なので、
そのほ とんどの期間はドローダウンに苦しめられることになる。
これを解決するために可能なかぎり同じシステムを
運用する銘柄を分散させる。
たいがいの銘柄でシステムの成績がマイナスで
ドローダウンが蓄積されていても、
どれかひとつホームランがあれ ば、
ちゃらになってしまう、とこういう考え方。
この分散というのが特にこのトレンドフォローシステムを
運用するうえで最大の秘密であり肝になる。
さらにトレンドフォローの欠点は、
大きなトレンドを狙えば狙うほど途中のロスカットが少なくなり、
ホームランも大きくなるんだけど、
このために非ト レンド期間のロスカットの幅を
十分に取る必要になる。
つまり損きりの幅が大きいということ。
これもドローダウンが膨大になる要因のひとつになる。
トレンドにのっているポジションでは、
そのトレードはある意味「ロック」される。
数ヶ月にわたる大トレンドで1枚のポジションを持っていたとしよう。
この間、資金は順調にふえてどんどん余裕が出てきて、
再投資したいと思うだろう。
しかしどのタイミングで枚数上乗せすればいいのだろうか?
ト レンドはいつか終わるので、
その新たに建てたポジションの分は
負けトレードになる可能性がある。
資金が増えたから、どーんとポジション積みましたら、
トレンド反転して、大きな損失を計上するとか。
こういうポジション管理、ピラミッディングとかいうような
テク ニックも最適化する必要があり、
これも分散とならんでタートルズ的ななトレンドフォローの
秘密だろうね、ポジション積み増しの方法は難しい。
一方、カウン
タートレンドとはトレンドフォローの逆で、
非トレンドモードのレンジモードで利益をあげるタイプのシステムで、
日本語では逆張りと呼ば れる。
メリットは上で解説したトレンドフォローのデメリットがないこと。
一般にトレンドフォロータイプのシステムより も勝率が高く、
ほとんどの期間トレンドが発生していないマーケットの状態で
利益をあげることができる。
損きり幅は、これはシステムによってまちまちだけど、
トレンドフォローのように大きくせずとも機能する。
勝率がトレンドフォローよりも高いという点に絡むけど、
カウンタートレンドがトレン ドフォローに対して
アドバンテージがあると思うのは、
いつ運用にはいっても、いつ中止してもたいして
パフォーマンスには影響がないということだろう。
これは大きい。
トレン ドフォローはそのほとんどの利益をまれな
ホームラントレードに依存しているため、
そのホームランタイミングが来るときには
しっかりマーケットでそのシステ ムを運用している必要がある。
それ以前、それ以後でシステムを運用しても単なる損失を出す
システムで終わる。
粘り強く継続してコンスタントにトレ ンドフォローシステムを
使い続けることにある。
システム関連書籍などを読むと、
そ こで、さんざんシステムを信じるとか
継続して運用する必要があるとかいうのは、
最初に説明した大数の法則もそうだけど、
このトレンドフォローシステムの難しさという部分も大きいだろう。
カウンタートレンドではトレンドフォローポジションのように
長期間ポジションがロックされるということもないし、
各トレードの途中のどのタイミングで枚 数をコントロールすべきか?
というジレンマがない。
トレード期間はだいたい利益トレードも損失トレードも
似たようなものなので、そのトレード単位で
トレードボリュームを自由にコントロールすることが可能。
このように、カウンタートレンドはいつ使い始めても
たいしてパフォーマンスは左右されない、
と運用タイミン グに関してトレンドフォローのような運
(大相場だと大もうけだがそれ以外はドローダウン)
に依存する部分が小さく、
ポジション管理が各トレードごとででき るので
ユニットごとにわかれている感じで楽だろう。
堅牢なシステムの条件
まず、投資全般の一般論から。
相場で有名な格言として、ウォーレンバフェット氏の
1.損をするな
2.損をするな
3.1.2を守れ
(不正確かもしれないけどこんな感じ)
というのがある。
彼の手法は市場で安く評価されている厳選した銘柄を
超長期保有するというもので、
要するに、優良銘柄は下がっても紙くずになる可能性も低いし、
下がる率も 知れている。
ファンダメンタルよりから判断される妥当な株価よりも
割安で買えばさらに下方リスクは限定されるということだ。
しかし上の方向は青天井で、
下方リスクさえ限定すれば多大な利益を生む可能性は
そのリスクにたいして大きい。
これはトレードにおけるリスクコントロールの重要性という
観点ではまったく同じで、
さらにシステムトレードにおいてもまったく同じ。
おおわくの定義におけるリスクコントロールと言う意味では
トレード全般の資金管理があり、
さらにシステムトレードにおける資金管理というものがあり、
これ が大事になってくるんだけど、
ここでは、システムそのものについての損失という
キーワードでリスクコントロールを見ていこう。
システムのパフォーマンスを判断するときには、
1.「過去のデータにおいて」どれだけ利益をあげたのか
という要素よりも、どれだけ損をしていないのかという要素を重視。
さらに、システムというのは、本質的に、過去のデータに基づいてバックテストされデザインされたものなので、
2.「未来のデータにおいて」今後も継続して機能するのか?
損失を出し続けるシステムに変貌しないか?という考察。
この2つを考える。
まずシステムを走らせたときに
ロング(買い)シグナル、
ショート(売り)シグナル、
またはポジションクローズ(手仕舞い)シグナル
などのログが吐き出される。
これを分析していくわけだけど、
1.それぞれのトレードについて利益損失は簡単な計算によって求まる。
次に、
2.それらを合計すると総利益損失額が求まる。
。。。
以下省略するけども、
以上のように全体のトレードにおけるシステムの勝率、
1トレードあたりの平均の利益額、損失額、
その割合、などなどが算出されていく。
トレード毎における総利益損失額を棒グラフなどで
プロットしていけば、
それは資金残高曲線(横X軸は時間ではなく、トレード単位)
のグラフを見ることもできる。
ここで、直感的に結果がすべてだという思考パターンで
総利益損失額を重視してしまうのは誤り。
理由はこのページ前半に述べたとおりで、
あくまで、どの程度損失を出しやすいシステムなのか、
どの程度危ないシステムなのか、
逆にいうと、どの程度安定しているシステムなのか?
ということを重視する。
このどの程度安定しているのか?というのを「堅牢さ」=Robustness
という。
WindowsやUNIXなどのOSでもRobustという用語は
英語圏のマーケティングで使われるけれども、
落ちにくい、トラブりにくい、安定しているという感覚が、
このトレードシステムにおける堅牢さと言う点で共通。
さて、堅牢さ=損失の出しにくさを評価していきます。
1.「過去のデータにおいて」 どれだけ損をしていないのか?
これは資金残高曲線のグラフを見る。
がたがたになっていれば、
それだけ資金のアップダウンがはげしく、
へこんでいる部分は損失を出し続けている部分。
この値をドローダウンと呼ぶ。
グラフにおいてへこんでまたその直前のレベルに
回復するまでの最大資金下げ幅のことだと定義できる。
最終的な総利益がいくら大きくても、
このドローダウンが膨大ならば安定した運用は困難。
ゆえに、まずシステムを評価するとには、
「ぱっと見」でこの資金残高曲線のグラフのなめらかさを目で
判断してしまうことが可能。
これはシステムの堅牢性を評価するうえで結構な目安になる。
とはいえ、このグラフのなめらかさを厳密に数値化して
判断するには、標準偏差(ばらつきぐあい求める計算)を用いる。
資金残高曲線の回帰曲線の傾き/標準偏差という
統計的な計算で、このグラフのなめらかさ
というのが数学的に求まる。
<参考>
http://www.panrolling.com/etc/users/tokosumi/nikkei225.html
この数値はRRR(リスクリワードレシオ)と呼ばれ、
名前のとおりリスクとリワードの比率。
しかし、これは文脈によって微妙に何を指すのか、
計算の仕方は一定ではないんだ。
今のシステムトレードの資金残高曲線のなめらかさを
判断するという文脈におけるRRRだと理解して。
2.「未来のデータにおいて」 どれだけ損を出しにくいのか?
三位一体の要素。
この「未来のデータにおいて」どれだけ損を出しにくいのか?
というのを評価するのは困難だという印象を受けるかもしれない。
しょせん今手持ちのデータが現在までの過去のデータしかない
のだから到底無理に思えてしまう。
たしかに困難で確証を得ることは原理的に不可能だけど、
アウトラインをさぐる程度のことはできる。
ある程度の推測を建てることは
過去のデータを分析することによって可能なんだ。
これを評価するためにはまず
(総利益損失額=総利益+総損失)について注目する。
たとえば最終的なシステムのパフォーマンスとして、
総利益損失額=+1000万円だとする。
資産残高曲線のなめらかで、
過去のデータにおいての振る舞いはまったく問題ないように
見受けられる。よしこれで行こう!
となるのはちょっとまった。
総利益損失額の内訳である
総利益と総損失を見てみると、
+100万円になるために、
-1000万円+1100万円
だと発見する。
これは非常に危ういということが直感的にわかるだろうか?
100万円の利益を出すために1000万円も損している。
しかし1100万円の利益が出ているので
100万円の利益になっている。
薄氷の上を歩くようなことだとはこのこと。
ちょっとしたはずみで、
この数値が逆転してマイナス100万円にも
マイナス300万円にもなり得る危険 性は十分ある。
一方、最終結果が+100万円で
総利益は+200万円、総損失は-100万円で
合計100万円だというシステムであると、
これはまあまあ安全だと 評価することができそう。
どんなにひどいことになっても
逆転することがなさそうだと評価できそうだ。
これを数学的に表現すると、
総利益/総損失 の割合
が大きければ大きいほど安全で損失が出なさそうな
システムだと評価できる。
この割合はPF(プロフィットファクター)と呼ぶ。
直訳すると利益要素だけど、
上述のように、
その利益はどういう利益と損失から出てきたのかと いう
システムの質みたいなものが計算できる。
これが三位一体の一つ目の要素。
さらに、分析を進める。
全体のトレードにおける総利益、総損失があるならば、
個々のトレードの平均の利益、損失も計算できる。
PF同様この割合に注目する。
これが1:1であるとすると、
だいたいのトレードにおいて平均的に、
利益トレードと損失トレードの額は同じだということに なる。
2:1であるならば、
利益トレードは損失トレードの額の2倍の利益だということがわかる。
平均利益/平均損失=PR(ペイオフレシオ)と呼ぶ。
2:1ならPR=2で、
これはどういう意味かというと
2回損失トレードがあっても
1回の利益トレードでPayoff=ちゃらになるよ、
ということ。
だから数字が大きいほど良いのは言うまでもない。
しかしこのPRはシステムの勝率(WR)と密接な関係があり、
反比例するのが常。
このPRとWRが三位一体の残りのふたつ。
つまり、PRをを大きくとればとるほ
ど、
勝率は下がっていき、
勝率をあげるとPRはさがります。
たとえば勝率50%、平均利益1、平均損失1のシステムを考えよう。
まったくエッジがないコイントスのシステムだ。PR=1.。
これをそのまま平均利益が2で平均損失が1になるように、
利益確定と損きりを調整する。PR=2。
2倍のうまみがでたかわりに勝率は半分の25%にさがってしまう。
WR
xPR
0.5
x 1 =0.5
0.25
x 2 =0.5
というように常に反比例の関係にあり、
どちらかを有利に動かせば、
どちらかが不利に動いてしまう。
同じシステムで、どっちかだけをおいしいところ取りしようとすると、
かならずもう一方にそのツケがまわるということだ。
PRが1ならば1回の損失にたいして
1回の利益でその損失はちゃらになる。
一般に、PRが小さいと、
損失トレードが続くとちゃらにするための
利益ト レードの回数が多くなるため、
累積される損失額がふくらむ。
つまりその局所におけるドローダウンが
大きくなりやすいということになる。
勝率が高ければ、
当然利益トレードがやってくるのがより早く期待できるために、
この累積される損失額=ドローダウンは小さく済むけど、
両者が反比例関係 にあるというのはすでに述べたとおりだ。
ちなみに
(平均利益x勝率) ÷ (平均損失x負率)
= 利益期待値 ÷ 損失期待値
で、利益期待値 ÷ 損失期待値というのは、
PF,プロフィットファクターになる。
以上のように
PF プロフィットファクター
WR 勝率
PR ペイオフレシオ
という数値は互いに密接にからみあって
いる
三つ巴になっている。
システムパフォーマンスの三位一体の要素。
覚えておこう。
だいたいシステムのパフォーマンスを
数値的に評価するときには、
この3つの数字さえ評価すれば十分だろうと思う。
将来の未来の損失の出しやすさのようなことを
推し量る重要な目安になる。
さて、あわせて「現在のデータ」「未来のデータ」について考察
したけど、実はまだシステムの堅牢性を調べるのに
十分ではない。
これは過度の最適化=カーブフィッティングという言葉が
キーワードになる。
システム構築においては、まず間違いなく、
過去のデータに基づいて設計されているので
過去のデータのうえでルールをつくり
そのために必要なパラメータ (変数)を設定する。
このパラメータというのはシステムの振る舞いを
規定するためにある程度は必須なもの。
しかしパラメータが多すぎると、
そのシステムは自由度が大きくなりすぎて、
ルールそのものよりもパラメータによって
どんなシグナルでもだせてしまうシステムになりえる。
またルールの数も多すぎると、
どんなシグナル でもだせてしまうシステムになりえる。
システムを調整するうえで、最初のRRRとか三位一体の数値を
参照しながら作業することになるけども、
この数値を良くしようとするあまりパラメータを調整していくと
過去のデータにがちがちに ぴったりあったシステムが
出来上がってしまう事が多い。
でも未来のデータでは機能しないとか。
しかし、ここで、じゃあどの程度調整すれば「ちょうど」で、
どの程度やりすぎると「過度の」最適化で
カーブフィッティングなのか?という疑問がうかぶ。
解答はない、というか、
そもそもパラメータ、ルールの数が多すぎると、
そんなものもはシステムのバックテスティングからは
絶対に判断できなくなってしまうんだ。
だからバックテストで機能しました、未来でも機能します、
ってちょっとでも確証をもって言うためには、
パラメータ、ルールの数はできるだけ絞らないといけない。
システムの調整自由度が大きいこと自体が
間違ったやりかただと 考えたほうがいい。
パラメータ、ルールの数が多くなればなるほど、
それぞれの数値の比重は薄まるし、
その根拠とか正当性というのはどんどん希薄になっていく。
意味のない単なるパラメー タの集まりになっていき、
もともとあったはずの、「エッジ」の角がまるくなっていきます。
つまり本来あるはずの優位性を記述した
ルールとパラメータの数が 増えていくことによって、
うすくなった情報の集まりを合理性もなく
単なるいきあがりばったりで調整した
ルールとパラメータの集合になっていってしまう。
結論としては、堅牢なシステムの絶対条件としては、
ルールとパラメータが合理的な理由に基づいて設定されており、
その数が少ない、シンプルな設計のシステ ムであること
だと言える。
システムと資金管理だけど、最後にひとつだけ。
ある資金があって、
それをあるレバレッジで、
あるシステムに投入する場合、
システムのドローダウンにより
その資金が25-30%以上損失を出すケースはNGだ。
それ以上は許容できないので、
そのシステムでの運用を中断するか、
そのレバレッジの高さを低くするかどちらかの処置をとるべき。