株式トレードに必勝法はあるのでしょうか?
株価は予測できるでしょうか?
その答えは明確です。
「予測できません。」
では、株式トレードに必勝法はあるのでしょうか?
「株価が予測できないのなら、必勝法などあるはずがありません。」
そう考える方が大半だと思います。
しかし、株価が予測できないことと、必勝法が存在しないこととは、実は同義ではありません。株価の予測が不可能でも、利益を上げる機会は存在します。
そうでなければ、株式市場そのものの存続が成り立ちません。
利益を上げる機会が存在するのなら、それを継続的に成し遂げる方法が分かれば、必勝法を手に入れたことになります。もちろん、トレード毎に毎回必ず勝つことは不可能です。したがって、そういった意味での必勝法は存在しません。
しかし、長期間に渡ってトレードを継続していった時、最終的に市場金利を上回る利益を上げることは不可能ではないでしょう。そのような結果を、偶然や直感に左右されない客観的な手法を用いて得ることが出来るのなら、その手法こそが必勝法と呼び得るものだと思います。
システムトレードとは?
上記の「偶然や直感に左右されない客観的な手法」の一つに、システムトレードというものがあります。これは、機械的売買や自動売買などと呼ばれることもありますが、トレードにおける売買判断を客観的データに基づいた演算結果に従って行なうという手法です。
そして、システムトレードにおいて、実際にデータに基づいた演算を行ない結果を出力する部分を、トレーディングシステムと言います。
逆に言えば、このトレーディングシステムが出す売買シグナルに従ってトレードすることを、システムトレードと呼ぶわけです。
客観的データに基づいた演算結果は、誰が行なっても同じ結果になります。これは、そのシステムの有効性を、そのシステムを所有している人ならば、誰でも検証可能ということです。
すなわち、そこには自然科学に匹敵する客観性が存在するということです。これは実は大変なことなのです。
では、なぜそのようなシステムが表舞台に立つことがないのでしょうか?それは、利益相反関係にある複数の人が、同一のシステムを所有することがないからです。
すなわち、自然科学のように批判的な見地から反証試験を行なおうとしても、その前提となるシステムの入手が事実上不可能なのです。
あるいは、未来の予測可能性を放棄した理論は、科学として認められないという主張があるのかもしれません。古典的な科学では、因果律が重要視されてきたからです。
しかし、20世紀以降、量子力学に代表されるような、因果律に支配されない科学理論が台頭してきたことは、周知のことと思います。
フィードバックシステムとトレーディングシステム
話を少し戻しましょう。株価を予測せずに利益を上げることなど、本当に出来るのでしょうか?
実は、私たちはそれとよく似たことを実生活の中で体験しています。
例えば、石油ファンヒーターを見てみましょう。これは、室温が設定温度以上になると、自動的に火力を弱めたり停止したりします。
これは基本的には、温度の上昇を予測しているわけではありません。その時々の室温をチェックしているだけです。このように、出力結果をチェックして入力に反映させる仕組みを、フィードバックシステムと言います。
株式トレードにも、基本的にはこのフィードバックシステムの考えを取り入れることが可能です。すなわち、予測など必要ないのです。
株式トレードで利益を上げられるかという課題は、株価の推移に対して、いかに適切なタイミングでフィードバックを掛けられるかという課題に置き換えることができます。
株価が上昇に転じたことを逸早く捉えて買い、上昇が止まったことを逸早く確認して売る。ただこれだけのことであり、原理的には石油ファンヒーターの温度設定と何ら変わることはないのです。
問題は、それらの変化を逸早く捉えることであり、そこに様々なノウハウやテクニックが存在します。
これらを定式化し、客観的に評価できるようにしたものが、トレーディングシステムであると言えます。
すなわち、トレーディングシステムとは、資産が常に増加するように株式の売買タイミングを調整するフィードバックシステムであり、怪しげな魔法グッズではないのです。
トレーディングシステムは有効なのでしょうか?
この売買タイミングを調整する部分がトレーディングシステムの心臓部にあたり、通常は門外不出の秘中の秘ということになります。
そのため現状においては、トレーディングシステムを自分で開発するか、シグナルのみを継続的に購入するか、大金を払って所有者からシステムの使用権を譲ってもらうかしかありません。
また、有効なトレーディングシステムであっても、それがひとたび大量に流出すれば、そのシステムはもはや効力を失ってしまうとも言われています。なぜならば、多くの人が全く同じタイミングで売買を繰り返したら、その状態で利益を上げ続けられるとは考えられないからです。
それが、システムトレードが一般に広がらない大きな理由であるかのように捉えられています。
しかし、それはそのシステムの汎用性が低いからに他なりません。トレード戦略や手法、運用資金や期間などは人それぞれであり、本来ならば、個人こじんに最も適合したトレーディングシステムが存在して然るべきです。
それは、一般論として様々な投資手法があらゆるメディアで公開されていたとしても、実際にトレードする人は、自分に最も適した手法を選択して運用することと似ています。
どんなに有力な投資手法があったとしても、実際の株式相場で全ての人が同一の投資行動を採ることはありません。売買が成立する限りは、正反対の投資行動を採る人と常に半々となるでしょう。
トレーディングシステムの場合でも、特定銘柄と特定期間のみで有効なシステムは、少数の人が運用するだけでマーケットインパクトを起こして機能停止する可能性が高くなりますが、銘柄選択や期間選択に任意性があるシステムであれば、特定銘柄や特定期日に売買が集中することを避けることができます。
その結果、そのトレーディングシステムは、あたかもテクニカル指標を用いて裁量トレードを行なっているかのように、自然に運用することが可能となります。
もちろん、運用中のシステムの出すシグナルは自分だけのものであり、絶対に他人に公表してはなりません。そして、そのシグナルが長期に渡って他人のものと同じになる可能性は、極めて低く出来るのです。
基幹システムと派生システム
銘柄選択や期間設定に任意性があり、さらには、最適化の条件も自身のトレード戦略に合わせて設定できる。そのようなシステムを、基幹システムと呼ぶことにします。
一方、実際に運用を行なう場面では、銘柄を固定し、全ての条件を決定して、売買シグナルを発生するシステムが必要になります。これを、派生システムと呼ぶことにします。
もうお分かりのことと思いますが、マーケットインパクトが影響するのは、この派生システムに関してであり、基幹システムについては、マーケットの規模はほとんど問題にならないということになります。
これは同時に、派生システムが拡散すると、そのシステムの有効性は失われていきますが、基幹システムについては有効性が失われにくいということでもあります。
もちろん、この話にはカラクリがあります。それは、私たちが合理的な投資家であるならば、一つの基幹システムから発生する派生システム群の中で、もっとも期待効率が高いシステムから順に運用が行なわれていくであろうということです。
そして、そのようなシステムには運用者が集中することになります。すなわち、マーケットインパクトの発生によって、そのシステムはやがて機能しなくなってしまいます。
すなわち、基幹システムが拡散することによっても、そこから派生するシステムの機能が継続しない可能性があるのです。私たちが合理的な投資家であるならば。
複数のシステムは共存可能でしょうか?
では、私たちは合理的な投資家なのでしょうか?また、そもそも全ての投資家が、基幹システムが発生させる全ての派生システムを余すところなく分析して、順位付けできるのでしょうか?
おそらく答えはNOでしょう。しかし、それは否定的なNOではなく、投資家自身の主義主張や好み、戦略などを無視してまで、合理性を追求することなど、意味がないということです。
基幹システムを入手した投資家は、おそらくはテクニカルトレードを行なうように、自分の好みに合った銘柄や投資期間に適合した派生システムを設計して、運用するでしょう。
その結果、全く同一の派生システムが同時に運用される可能性は、極めて低いものと思います。
そして何よりも、トレーディングシステムの性能は、バックテストの結果から推察されるに過ぎず、実運用でもテスト時の性能を維持できる保証など、厳密には存在しないということです。
そのため、システムに対する信頼度も人それぞれであり、システムがドローダウンに陥った時の対処の仕方も、人それぞれであると言えます。
唯一無二のシステムであるならば、ドローダウンに陥ってもシステムを信じて運用を続けるしかないかもしれませんが、基幹システムから如何様にも作成できる派生システムであれば、そこまで無理をする必要はないのかもしれません。このあたりは、テクニカルな裁量トレードに近い感覚になります。
トレーディングシステムを入手するには?
問題は、そのような基幹システムをどうやって手に入れるかということです。トレードやプログラムの知識がある人は、自力で開発することができるかもしれません。
しかし、そのような人はごく一部であり、多くの場合は組織単位で開発するか、大金を投入して開発依頼し購入するかしかないでしょう。
結局、現状において個人投資家が入手できるシステムは、非常に限定されたシステムということになってしまいます。しかし、それではシステムトレードはいつまで経っても、システムを自作できる人や機関投資家、および一部の資産家のものだけになってしまいます。
一般人でも数10万円も出せば、良質なトレーディングシステムを購入できると言われるかもしれません。あるいは、数千円の安価な料金でシグナル配信を受ければ、自前でシステムを持つことと同じことだと思われるかもしれません。
しかし、気を付けなければならないのは、それらの多くが派生システムに過ぎないこと、そして何よりも、それらは原則としてシステムの使用権を購入しているに過ぎないということです。
使用期間を限定したり、投資金額に上限を設けたりするのは、トレーディングシステムを安定的に機能させ続けるために必要だからなのでしょうか。
そうかもしれないし、そうでないかもしれません。
それでも、それらのシステムに料金を支払い続けても、それを上回る利益が得られればいいのではないかと思われるかもしれません。
そのような方はそれでいいのでしょうが、利益を得続ける保証なんてどこにもないことを、認識する必要があります。
トレーディングシステム作成支援ツール
一方、トレーディングシステムそのものではないのですが、様々な指標を組み合わせてバックテストを行なったりする、トレーディングシステム作成支援ツールというものも存在します。
これらは、利用者が様々な指標の中から任意の組み合わせを選択し、パラメータを最適化することで、専用のトレーディングシステムを作成するというものです。
機能的には極めて豊富で、様々なバックテスト条件を設定することができます。自分でコードを書けば、オリジナルの指標を組み込むこともできるツールもあります。
これらも一般には安価ではなく、数10万円程度かかる場合がありますが、期間制限や投資金額制限を受けることは少なくなります。
しかし、これは機能が豊富であるがゆえに使いこなしが難しく、高度なトレーディングのスキルやプログラムの知識が必要となります。
そのため、これらのツールを使いこなすための高額なセミナーが開催されることもあるようです。
何よりも、少なくともバックテスト段階において利益を得ることができる指標の選択やパラメータの設定を、ある程度試行錯誤に頼らざるを得ないという現実があります。
有効とされているテクニカル指標は、必ずしもバックテストで良い結果を示すというわけではありません。
これらのトレーディングシステム作成支援ツールは、基幹システムに近いものです。しかし、肝心のロジック部分は、自分で組み立てなければなりません。
その部分の敷居は思った以上に高く、一般の投資家が自由に使いこなせるというものではないでしょう。
私たちに必要なシステムとは?
以上から、私たちが必要とする基幹システムの概要が見えてきました。それは、利益の期待値が高いロジックを予め組み込んだ、トレーディングシステム作成支援ツールです。
そのシステムにトレード銘柄を組み込み、条件を設定して最適化を行なうだけで、自由に派生システムを作り出すことができる基幹システムです。
また、ロジックは常に進化するものであり、そのロジックはブラックボックスではいけません。ロジックの改良にはそれなりのスキルを必要としますが、誰もがそれにチャレンジする可能性を残しておかなければなりません。
ツールはあくまでツールであり、自由度の制限は最小限に留めるべきだと思います。
私は今まで、独自のロジックにこだわり、拡張性に乏しい派生システムに近いシステムでトレードを続けてきました。しかし、2007年2月末の世界同時株安の影響によるシステム停止をきっかけに、全く新しいロジックのシステム開発に取り組みました。
その結果、基幹システム足り得るシステムの完成に漕ぎ着けました。完成後も改良を続け、できるだけ簡単な操作で有効な派生システムを作成できるようにしたり、できるだけ目標性能の自由度を高めたり、その気になればロジックの改良も可能であるような仕様に仕上げました。
基幹システムを提供します
その過程の中で、このシステムを自分一人で運用していくことに疑問を感じてきました。私がこのシステムから作るであろう派生システムは、おそらくはせいぜい数10に過ぎず、さらに、実際に運用するのはその数分の一以下であろうと考えると、この基幹システムを埋もれさせておくのは惜しい気がします。
投資顧問のように派生システムを切り売りしたり、シグナル配信を行なったりすることも考えましたが、それは私の信条に反します。
それは、投資家が主体的に投資技術を学ぶ機会を奪うように思えるからです。
私を含めたより多くの人にとっての利益を考えると、個人使用に限定して、基幹システムを期間や資金などの使用制限なしで安価(とは言っても単なる情報商材よりは高い価値を認めて欲しいのですが)に提供することがベストなのではないかという考えに至りました。
そこで、今回新たにこのホームページを立ち上げて、基幹システム(KFシステムクリエイター)の販売を行なうと共に、システムの追加モジュールや様々な解析データなどの提供といったアフターフォローを行なうことにいたしました。
本製品のご購入をお考えの方は、このページの最後まで目を通した後、「お問い合わせ」ページからメールをご送信ください。
本製品が、少しでも皆様のトレードのお役に立つことができれば幸いです。
以下は、システム(KFシステムクリエイター)に添付した取扱説明書からの抜粋です。
KFシステムクリエイター取扱説明書ver2.00
1.初めに
この度は「KFシステムクリエイター」をご利用いただき、まことにありがとうございます。KFシステムクリエイターは、効率的にトレーディングシステムを開発するためのツールであり、任意の株式銘柄をトレード対象として、様々なバックテストを行なうことを目的としています。
KFシステムクリエイターを用いて作成されるトレーディングシステム(派生システムと呼びます)は、日足ベースのシステムであり、日中にザラ場を見ることができない方でも、安心してご利用いただけます。
派生システムでは、株式市場が引けた後に株価データと派生システムを更新するだけで、翌日の投資行動が示されます。
シグナルは、「買い」、「売り」、「買いHOLD」、「売りHOLD」の4種類で、それぞれの指示に従って実行します。
「買い」シグナルが表示された時は、翌日の寄付きで買い(もしくは買い返済)、「売り」シグナルが表示された時は、翌日の寄付きで売り(もしくは売り返済)、「買いHOLD」あるいは「売りHOLD」が表示された時は、翌日は売買せずにそれまでのポジションを継続します。
KFシステムクリエイターはMicrosoft Excelのブック(ワークシート)として作成されており、ご利用にあたっては、Microsoft Excelが必要となります。
KFシステムクリエイター単体では動作しませんので、ご注意ください。
KFシステムクリエイターはWindowsXP SP2上のMicrosoft Excel 97 SR-2、およびMicrosoft Office Excel 2003 SP2で動作を確認しております。マクロを使用していないため、比較的汎用性が高いものと考えますが、MacOS上での動作は確認しておりません。
また、Star Suite 7やOpenOffice.orgといった、Microsoft Office互換ソフトでは、動作しないことを確認しています。
これは、Excel(以降エクセルと表記)に含まれる一部の関数がこれらのソフトではサポートされていないことに起因しています。
KFシステムクリエイターには5つのシステムロジックが組み込まれており、それらのロジックで株式トレードを行なった場合の多種多様の性能指標が演算可能です。
バックテスト期間やテスト対象指標は任意に選択可能であり、銘柄の任意性と組み合わせると、無限に近い数のシステム構築が可能となります。
そのため、極めて汎用性が高く、シグナルの出現タイミングなどは、利用者のトレード戦略に応じて様々であり、トレーディングシステムの最大の問題のひとつであるマーケットインパクトに対しても、その影響は最小限となっています。
KFシステムクリエイターは、上記5つのシステムロジック毎に、[簡易版]および[拡張版]で構成されています。[簡易版]は基本的な性能指標評価項目に絞って構成されており、主に最適化演算や日々のシグナル確認に用いることを想定しています。
一方、[拡張版]は考えうるほとんどの性能指標に対応しており、システムの詳細な検討を行なうことが可能です。
[拡張版]で最適化演算を行なった場合の所要時間は、[簡易版]の2倍程度掛かりますが、より多くの指標に対して最適化を行なうことができます。
また、[簡易版]と[拡張版]の他に、システム運用に特化した「KFシグナルチェッカー」や、ストップ等の追加機能を実現する「追加システム」の提供も行なっています。
これらにつきましては、それぞれの取扱説明書をご覧ください。
KFシステムクリエイターは、エクセルを用いて作成されておりますが、エクセルの基本的な知識さえあれば、オリジナルのトレーディングシステムが構築可能です。
また、KFシステムクリエイターはエクセルの標準的な関数や機能のみを用いて作成されているため、エクセルに詳しい方ならば、オリジナルのロジックを組み込んで、全く新しいシステムに仕上げることもできるでしょう。
KFシステムクリエイターは、トレーディングシステムを開発するためのツールであり、初期状態においてはトレーディングシステムそのものではありません。
KFシステムクリエイターに株価データを組み込んで、テスト期間を設定し、最適化する指標を決定した後、バックテストを行なって最適パラメータを決定します。そうやって初めて、KFシステムクリエイターはトレーディングシステムとして機能することになります。
そのため、KFシステムクリエイターは必ずしも、ご利用者の利益を約束するものではないことにご注意ください。最終的な損益を決定するのは、ご利用者本人によるパラメータ設定等のシステム設計であり、さらには、システム運用時のリスク管理となります。
もちろん、運用開始後の相場展開にも損益は大きく左右されるでしょう。
ただ、山勘によるトレードと比べれば、遥かに合理的なトレード手法であり、最初はシステムトレードなどと難しく考えず、テクニカルトレードの延長として運用してみてもいいでしょう。
システムの出すシグナルを確認しながら、ご自分のトレード手法を振り返って見ることもまた、面白いかもしれません。
KFシステムクリエイターが、少しでも皆様のトレードのお役に立つことができれば幸いです。
2.システムロジック
KFシステムクリエイターは、異なったロジックを持つ5つのシステムで構成されています。これらは互いに独立したシステムであり、ご利用者は任意のシステムを選択してバックテストや運用を行なうことができます。
もちろん、複数のシステムを並列運用されても構いません。
また、各システムはそれぞれに「買い」システムと「売り」システム、そして「ドテン」システムを
内包しており、ご利用者はこれらのいずれに対しても最適化を行なうことができます。
すなわち、全部で「銘柄数×システム数5×売買方法3×統計期間×最適化対象指標」分の自由度が存在することになります。
そのため、他人のシステムと同一になる可能性は低く、運用銘柄はもちろん、シグナルを出すタイミングもまた異なったものになるでしょう。
すなわち、マーケットインパクトをほとんど気にすることなく、システムトレードを行なうことができます。
続いて、以下に各システムのロジックについて説明します。
(1)順張りシステム
1つ目のシステムは順張りシステムです。
-----中略-----
この順張りシステムによって得られる資産カーブは、株価の上昇に追従したものとなります。株価が大きな上昇トレンドを伴って上昇する場合は、上昇の初期段階で買いシグナルを出し、その後はホールドを続けます。そして、株価がピークを過ぎて下落に転じると、売りシグナルを出します。
これは、私たちがテクニカルな裁量トレードにおいて理想とする売買タイミングに近いものです。すなわち、システムの発するシグナルに戸惑うことなく、自然にトレードを継続できるでしょう。
もちろん、このような理想的なシグナルを出す銘柄は限られているかもしれませんが、そのような銘柄を見つけ出すこともまた、楽しみの一つかもしれません。
当然、それらのタイミングはパラメータによって大きく異なります。また、トレンドが弱い時にはダマシが多くなるかもしれません。しかし、株価がよほど大きな下降トレンド下にない限りは、買い建てのみでも総損益がプラスになる条件を見つけ出すことが出来るでしょう。
(2)逆張りシステム1
2つ目のシステムは逆張りシステム1です。
-----中略-----
逆張りシステムによる資産カーブは、比較的ロバスト性の高い右肩上がりのカーブになる場合が多く、総損益は順張りシステムよりも大きくなる傾向があります。
ただし、トレード回数が多く、その結果、PF等の性能指標はあまり高くないかもしれません。
このシステムが上手く機能する原因は、まだよく分かっていませんが、興味のある方はエクセルシートの判定条件部分を解析する等してみてください。
(3)逆張りシステム2
3つ目のシステムは逆張りシステム2です。
-----中略-----
順張りシステムにおいて、買いの条件で売りシグナルを、売りの条件で買いシグナルを出すようにしたのが、本システムです。
本来であれば買うべきところで売るのですから、これも2つ目のシステム(逆張りシステム1)同様、逆張りのシステムということになります。
性能的には、逆張りシステム1とほとんど変わらないのですが、逆張りシステム1が買いトレードに向いているのに対し、逆張りシステム2は売りトレードに向いています。
(4)移動平均システム
4つ目のシステムは移動平均システムです。これは、古くから知られた手法で、私のオリジナルではありません。
-----中略-----
移動平均システムの性能は、順張りシステムの性能に近いものになります。順張りシステムよりもトレード回数が多くなる傾向があり、その結果、順張りシステムと比べて総損益は大きく、PFは低くなる傾向があります。
これは、順張りシステムと同様に、テクニカルな裁量トレードに近い感覚で売買シグナルが出ますが、株価の変動周期が時期によって大きく異なる場合には、株価推移に上手く追従できない場合があります。
-----中略-----
(5)ブレイクアウトシステム
5つ目のシステムはブレイクアウトシステムです。これもよく知られた手法であり、もちろん私のオリジナルではありません。
ただ、通常のブレイクアウトとは異なり、直近最高値や最安値は4本値で求めますが、売買判定は終値で行い、実際の売買は翌寄付きで行ないます。
-----中略-----
ブレイクアウトシステムは、買いで40日、売りで20日の期間を設けることが多いようですが、当然のことながら、銘柄毎に綿密なバックテストを行なうと、最適な期間は異なったものとなります。
さらに、買いの期間は売りの期間よりも長くなければならないことが、絶対条件のように言われることもありますが、必ずしもその限りでないことが分かります。
本ブレイクアウトシステムの問題点は、総損益で最適化を行なった場合に、トレード回数が極端に少なくなる傾向があるということです。
そのため、過剰最適化に陥る可能性があることに注意する必要があります。
これを回避するために、まず最初にトレード回数でスクリーニングを掛けてやる必要があります。そして、トレード回数が十分多い範囲で改めてパラメータを最適化します。
そうすることで、実用性の高いトレーディングシステムを構築することができるでしょう。
スクリーニングを掛ける道具立ては、システムのテーブルの中に用意してあります。スクリーニングによって、最適化に要する時間は倍増しますが、より安定したシステムを構築するためには止むを得ません。
(6)共通ロジック
以上のシステムにおいては、買いや売りのタイミングを捉える方法はそれぞれ異なっていますが、それらを基にした売買シグナルの切り替えロジックは、共通となっています。
逆張りシステム2以外のシステムでは、買いシステムが基本であり、一旦買いシグナルが発生すると、その後買い条件が崩れても、売りシグナルが発生するまで買い持ちを続けます。
そして、売りシグナルが発生すると売り転換となり、新たな買いシグナルが発生するまで売り持ちを続けます。
すなわち、買いと売りとは完全に1対1の関係にあり、買いシグナルや売りシグナルが続けて出ることはありません。
-----中略-----
3.システムの使用方法
(1)株価データの準備
本システムでは、最初に株価データをご利用者自身で用意する必要があります。株価データの取得方法につきましては、当サイトの連載コラムページなどをご覧ください。
また、一度株価データを取得してしまえば、それ以降は株価データサンプルに示しますように、Webクエリを用いて日々の株価を自動取得・更新することが可能です。
株価データの推奨書式は、株価データサンプルの通りです。また、日付のみのダミーデータも添付していますが、こちらはKFシステムクリエイターを最初に立ち上げる際に必用となります。
新規に取得した株価データは、既存の(任意の)株価データファイルに上書きした後、Webクエリのリンク先や書式を変更して、必ず新しいファイル名で保存してください。
それらの方法につきましては、当サイトのコラム・解説ページをご覧ください。ちなみに、元となる株価データのフォーマットについて、以下に説明いたします。
-----中略-----
株価データファイルを更新するには、株価データシートの最終行を以下の任意の行までコピーするだけです。すると、コピーした行数に応じた日付データが追加されます。同時に、株価データ自動取得の計算式もコピーされますので、以降の日付に対応した株価データを自動取得することができます。
なお、自動更新した株価データは、50日以内に値複写して値を確定しておく必要があります。これは、Webクエリで取得する株価データが、過去50日分しかないためで、値を確定せずに50日を過ぎたデータは、順次消えていきます。
最後に、このようにして作成した株価データブックを、銘柄名や証券コードが分かるようなファイルネームをつけて保存します。株価データ専用のフォルダを作成してそこに保存すると、後々便利です。
なお、日付を1993年11月1日からにすることを推奨しましたが、もちろん、任意の日付を最初にしても構いません。ただし、その場合は、システムのチャート表示の更新作業を行なう必要があります。
エクセルの操作に慣れた人以外は、推奨書式での株価データ作成を行なってください。
(2)システムの起動
株価データの準備ができましたら、KFシステムクリエイターを起動して、その銘柄のシステムを作成します。ここでは、[拡張版]を用いてシステムを作成するとします。
ここでは、順張りシステムを作成する場合について述べますが、他のシステムでも最初に開くシステムのファイル名が異なるだけで、やり方は同じです。
-----中略-----
すると、1001日経平均株価のデータが、システムのワークシートに取り込まれます。ここで、忘れないうちにファイル名を変更して保存しておきます。
ファイル名は、「1001日経平均**a01.xls」とでもしておきましょう。(注)**にはバージョンに応じた任意の数字を入れるといいでしょう。
次回以降は、直接このファイルを開きます。その際、「このブックには、ほかのデータソースへのリンクが含まれています。」との注意書きが再び現れますが、そこでは以降、"更新する"もしくは"はい"を選択します。
-----中略-----
(3)最適化条件の設定
これで日経平均株価の順張りシステムが、とりあえず動かせる状態になりました。次に、このシステムのバックテストを経て最適化を行ないます。
まず最初に、バックテストのテスト期間を決定します。まず、サマリーシートを選択してください。
-----中略-----
ちなみに、システムシートの各日付や指標等は、ほとんど全てサマリーシート上に反映されていますので、通常はシステムシートを書き換えたりする必要はありません。
最適化パラメータは、G8セルとG9セルに表示されますが、ここは通常、別シートであるテーブル1あるいはテーブル2のC2セルおよびC3セルを参照しています。
テーブルNo.(G7セル)の値が1の場合はテーブル1の値が、2の場合はテーブル2の値が参照されます。
また、それ以外の場合は、手動設定(H8セルおよびH9セル)の値が参照されます。手動でパラメータをいろいろと変更したい場合は、G7セルに例えば0を入力した後、H8セルとH9セルの値を書き換えます。
次に、どの指標を最適化するかを決定します。最適化可能な指標は、12行目以降の各種性能指標です。テスト対象欄(G5セル)を選択した状態で、同セルに「=」と入力し、そのまま最適化したい指標のセルを選択して「Enter」キーを押します。すると、テスト対象欄に、最適化したい指標の値が表示されます。
例えば、2007年10月10日時点の買損益累計を最適化したいのであれば、C5セルに「2007/10/10」と入力した後、G5セルに「=」と入力した状態で、F21セルを選択して「Enter」キーを押します。
同様に、同日付時点における売りシステムのEERを最適化したいのであれば、C5セルに「2007/10/10」と入力した後、G5セルに「=」と入力し、G15セルを選択して「Enter」キーを押します。
ちなみに、最適化のために選択したセルを任意の色で塗りつぶしておくと、後でどの性能指標を最適化したのかが分かり易くなります。
セルの塗りつぶしは、"セルの書式設定"メニューの"パターン"タブで設定できます。
なお、選択する指標によっては、表示方法を変更したい場合があります。その際は、そのセルを選択した状態でマウスを右クリックし、ポップアップメニューから"セルの書式設定"を選び、"表示形式"タブを開いて変更します。
ちなみに、各性能指標の意味については、第4章をご参照ください。
(4)システムの最適化
-----中略-----
テーブルの計算中に他の作業を行なうと、テーブル計算が中断されたり、場合によっては、エクセルがハングアップすることがあります。念のため、計算の前に上書き保存を行なっておくといいでしょう。
なお、演算には大変時間が掛かります。[拡張版]の場合、Core2 Duo E6550(2.33GHz)、2GB RAM、Windows Xp_SP2、Excel2003で10分弱、[簡易版]の場合で5分強という結果が得られています。
常駐ソフトなどの状態も大きく影響すると思いますが、余分なファイルを開いているとその分演算に時間が掛かりますので、できるだけ最適化を行なうファイルのみ開くようにしてください。
-----中略-----
これで、2つのパラメータを変化させた時の、最適化対象指標の一覧表が出来上がりました。この中から、まずは指標が最大(指標によっては最小)になるパラメータセット(最適パラメータ)を見つけます。
なお、最適パラメータは、必ずしも性能指標の値が最大になる値ではない場合もあります。最大値が突出している場合は、パラメータが少しずれただけで、システム性能が大きく低下してしまいます。
すなわち、安定性の低いシステムになってしまいます。
データテーブルの演算結果の数値だけでは判断し辛い場合は、等高線グラフや3Dグラフを表示させて、その最適パラメータが適当なものであるかどうかを判断してください。
-----中略-----
以上のようにして決定した最適パラメータに問題がないと判断した場合、それらの値をC2セルとC3セルに入力し、それを含むパラメータ範囲をテーブル2において、更に絞り込みます。
-----中略-----
サマリーシートに戻ると、G8セルに"テーブル2"シートのC2セルの数値が、G9セルに"テーブル2"シートのC3セルの数値が表示されていることが分かります。
次に、この最適パラメータをH8セルとH9セルに、テスト期間をG3セルとG4セルに入力しておくといいでしょう。
ひとまずはこれでシステムの最適化は完了です。最後に、出来上がったシステムを保存します。
なお、ブレイクアウトシステム等において、トレード数でフィルタリングを行なう場合は、
-----中略-----
さまざまなフィルタリング条件設定が可能です。また、これは本来、トレード数に限ったものではありませんので、工夫次第では様々な応用が可能です。
ただし、最適化に掛かる時間は倍増してしまいます。
(5)システム性能の確認
それでは、出来上がったシステムの性能を見てみましょう。システム性能は、サマリーシートの12行目以降に表示されています。
[拡張版」では75行目までの性能指標データがありますが、[簡易版]では35行目までの性能指標に限定しています。
F列では買いシステム、G列では売りシステム、H列ではドテンシステムの性能指標を示しています。これらの指標の意味等に関しては、第4章で説明します。
システム性能は数値で確認することもできますが、資産カーブなどのチャートを見ることで、より一層明確になります。
本システムでは、標準で25種類([簡易版]では7種類)のチャートを用意しています。ここでは、これらのチャートの見方について説明します。
(a)全体チャート
"全体チャート"タブをクリックすると、各システム毎の累計資産推移に加えて、株価推移と、売買の判断基準となる指標の推移が表示されます。
-----中略-----
株価とこれらのラインとの位置関係によって、売買判断が行なわれます。
(b)直近チャート
"直近チャート"タブをクリックすると、全体チャートから直近の1年程度を抜き出したチャートを表示します。
株価の軸(Y/数値軸)を拡大してやれば、直近の詳しい推移が確認できます。拡大は、"軸の書式設定"で、"目盛"の"最小値"や"最大値"を指定して入力します。
このチャートでは、各資産累計チャートは第2軸(Y/第2数値軸)に設定してあります。株価の軸と同様に、推移が見やすいように目盛を調整してください。
なお、標準ではこれらの目盛は自動になっています。
(c)資産カーブ
"資産カーブ"タブをクリックすると、時価ベースの資産カーブが表示されます。これは、簿価基準の資金推移に、建て玉を保有している期間の評価損益を加えたものです。
これらは相対的な増減を示すのではなく、絶対的な推移を示しています。そのため、初期値がいくらになるかも重要となります。本システムでは、初期値を自動的に計算し、表示しています。
赤線は買いのみを行った場合の資産推移、青線は売りのみの資産推移、茶線がドテンの場合の資産推移であり、緑線は株価の推移を示します。
(d)資金推移
"資金推移"タブをクリックすると、資金推移チャートが表示されます。これは、簿価ベースで見た資金の推移を示しています。
チャートには起点日を基準とした資金および株価の増減が示されます。
赤線が買いのみを行った場合の資金増減の累計、青線が売りのみの累計、茶線がドテンの場合の累計、そして緑線が株価増減の累計です。赤線、または青線、茶線が、右肩上がりの推移になっていれば、このシステムで利益が得られていたということになります。
(e)時価累積損益率
"時価累積損益率"タブをクリックすると、テスト開始日を1(基準)とした時価累積損益率チャートを表示します。
このチャートでは、各システムの複利運用における時価資産と株価の推移を、比較することができます。
(f)簿価累積損益率
"簿価累積損益率"タブをクリックすると、テスト開始日を1(基準)とした簿価累積損益率チャートを表示します。
このチャートでは、各システムの複利運用における簿価資産と株価の推移を、比較することができます。
(g)トレード毎損益率
"トレード毎損益率"タブをクリックすると、買いシステムおよび売りシステムにおける、1トレード毎の累計損益率を表示します。
損益率のプラス量およびその期間が長く、マイナス量およびその期間が短いほど、優れたシステムであると言えます。
買いと売りは赤と青で色分けされていますが、例えば買いだけの損益率を見たい場合は、売りのチャートを選択した後、右クリックして"データ系列の書式設定"をクリックし、"パターン"タブの"線"を"なし"にして、"OK"をクリックしてください。
すると、買いの損益率のみが表示されます。元に戻す場合は、編集メニューの"元に戻す"を選択してください。
なお、それまでは、上書き保存等、ブックに変更を加える操作は行わないようにしてください。"元に戻す"が選択できなくなる場合があります。
万が一、元に戻すことができなくなった場合は、買いのチャートを選択した後、カーソルの↓を1回押して、左上の名前ボックスに「系列"売り"」と表示されていることを確認して、書式メニューの"選択したデータ系列"を選択し、"パターン"タブの"線"を"指定"にして、"色"を青、"太さ"を上から2番目に設定して、"OK"を押してください。
この表示の切り替え方法は、他のチャートでも行なえますので、必要な時に利用してみてください。
(h)買いトレード毎DD
"買いトレード毎DD"タブをクリックすると、買いトレードにおける、エンドトレード・ドローダウン(ETD)、スタートトレード・ドローダウン(STD)、およびトレード毎の累計損失率(STD2)のチャートを表示します。
このチャートを解析することにより、そのシステムにおける収益低下要因を突き止めることができます。例えば、ETDが相対的に大きい場合は、評価益がピークに達してから手仕舞いするまでの、資産の減少幅が大きいことが分かります。
この場合は、ETDの大きさに応じたストップを適用することで、期待収益を改善できる可能性があります。
このようなストップをシステムに付加するには、「追加システム01」を導入してください。
また、STDもしくは前項のトレード毎損益率のマイナスが大きい場合は、損失率の大きさに応じたストップを適用することで、期待収益を改善できる可能性があります。
このようなストップをシステムに付加するには、「追加システム11」を導入してください。
(i)売りトレード毎DD
"売りトレード毎DD"タブをクリックすると、売りトレードにおける、エンドトレード・ドローダウン(ETD)、スタートトレード・ドローダウン(STD)、およびトレード毎の累計損失率(STD2)のチャートを表示します。
(j)ドテントレード毎DD
"ドテントレード毎DD"タブをクリックすると、ドテントレードにおける、エンドトレード・ドローダウン(ETD)、スタートトレード・ドローダウン(STD)、およびトレード毎の累計損失率(STD2)のチャートを表示します。
(k)買い時価累計DD
"買い時価累計DD"タブをクリックすると、買いトレードにおける時価ベースのドローダウン量と、時価累計資産カーブを表示します。
時価累計資産カーブは最大資産と最小資産と共に表示されます。両者が囲むボックスの面積が大きいほど、そのドローダウンが深刻であることを示しています。
このチャートにおけるドローダウン量は、直近最大累計資産残高からの資産の減少量を示しています。また、資産カーブの起点は、最初の建て玉に必用な資金額を示しています。
(l)買い時価累積DD
"買い時価累積DD"タブをクリックすると、買いトレードにおける時価ベースのドローダウン率と、時価累積資産カーブを表示します。
時価累積資産カーブは最大資産と最小資産と共に表示されます。両者が囲むボックスの面積が大きいほど、そのドローダウンが深刻であることを示しています。
このチャートにおけるドローダウン率は、直近最大累積資産残高からの資産の減少率を示しています。また、資産カーブの起点は、最初の建て玉に必用な資金額を示しています。
(m)買い簿価累計DD
"買い簿価累計DD"タブをクリックすると、買いトレードにおける簿価ベースのドローダウン量と、簿価累計資産カーブを表示します。
簿価累計資産カーブは最大資産と最小資産と共に表示されます。両者が囲むボックスの面積が大きいほど、そのドローダウンが深刻であることを示しています。
このチャートにおけるドローダウン量は、直近最大累計資産残高からの資産の減少量を示しています。また、資産カーブの起点は、最初の建て玉に必用な資金額を示しています。
(n)買い簿価累積DD
"買い簿価累積DD"タブをクリックすると、買いトレードにおける簿価ベースのドローダウン率と、簿価累積資産カーブを表示します。
簿価累積資産カーブは最大資産と最小資産と共に表示されます。両者が囲むボックスの面積が大きいほど、そのドローダウンが深刻であることを示しています。
このチャートにおけるドローダウン率は、直近最大累積資産残高からの資産の減少率を示しています。また、資産カーブの起点は、最初の建て玉に必用な資金額を示しています。
(o)売り時価累計DD
"売り時価累計DD"タブをクリックすると、売りトレードにおける時価ベースのドローダウン量と、時価累計資産カーブを表示します。
時価累計資産カーブは最大資産と最小資産と共に表示されます。両者が囲むボックスの面積が大きいほど、そのドローダウンが深刻であることを示しています。
このチャートにおけるドローダウン量は、直近最大累計資産残高からの資産の減少量を示しています。また、資産カーブの起点は、最初の建て玉に必用な資金額を示しています。
(p)売り時価累積DD
"売り時価累積DD"タブをクリックすると、売りトレードにおける時価ベースのドローダウン率と、時価累積資産カーブを表示します。
時価累積資産カーブは最大資産と最小資産と共に表示されます。両者が囲むボックスの面積が大きいほど、そのドローダウンが深刻であることを示しています。
このチャートにおけるドローダウン率は、直近最大累積資産残高からの資産の減少率を示しています。また、資産カーブの起点は、最初の建て玉に必用な資金額を示しています。
(q)売り簿価累計DD
"売り簿価累計DD"タブをクリックすると、売りトレードにおける簿価ベースのドローダウン量と、簿価累計資産カーブを表示します。
簿価累計資産カーブは最大資産と最小資産と共に表示されます。両者が囲むボックスの面積が大きいほど、そのドローダウンが深刻であることを示しています。
このチャートにおけるドローダウン量は、直近最大累計資産残高からの資産の減少量を示しています。また、資産カーブの起点は、最初の建て玉に必用な資金額を示しています。
(r)売り簿価累積DD
"売り簿価累積DD"タブをクリックすると、売りトレードにおける簿価ベースのドローダウン率と、簿価累積資産カーブを表示します。
簿価累積資産カーブは最大資産と最小資産と共に表示されます。両者が囲むボックスの面積が大きいほど、そのドローダウンが深刻であることを示しています。
このチャートにおけるドローダウン率は、直近最大累積資産残高からの資産の減少率を示しています。また、資産カーブの起点は、最初の建て玉に必用な資金額を示しています。
(s)ドテン時価累計DD
"ドテン時価累計DD"タブをクリックすると、ドテントレードにおける時価ベースのドローダウン量と、時価累計資産カーブを表示します。
時価累計資産カーブは最大資産と最小資産と共に表示されます。両者が囲むボックスの面積が大きいほど、そのドローダウンが深刻であることを示しています。
このチャートにおけるドローダウン量は、直近最大累計資産残高からの資産の減少量を示しています。また、資産カーブの起点は、最初の建て玉に必用な資金額を示しています。
(t)ドテン時価累積DD
"ドテン時価累積DD"タブをクリックすると、ドテントレードにおける時価ベースのドローダウン率と、時価累積資産カーブを表示します。
時価累積資産カーブは最大資産と最小資産と共に表示されます。両者が囲むボックスの面積が大きいほど、そのドローダウンが深刻であることを示しています。
このチャートにおけるドローダウン率は、直近最大累積資産残高からの資産の減少率を示しています。また、資産カーブの起点は、最初の建て玉に必用な資金額を示しています。
(u)ドテン簿価累計DD
"ドテン簿価累計DD"タブをクリックすると、ドテントレードにおける簿価ベースのドローダウン量と、簿価累計資産カーブを表示します。
簿価累計資産カーブは最大資産と最小資産と共に表示されます。両者が囲むボックスの面積が大きいほど、そのドローダウンが深刻であることを示しています。
このチャートにおけるドローダウン量は、直近最大累計資産残高からの資産の減少量を示しています。また、資産カーブの起点は、最初の建て玉に必用な資金額を示しています。
(v)ドテン簿価累積DD
"ドテン簿価累積DD"タブをクリックすると、ドテントレードにおける簿価ベースのドローダウン率と、簿価累積資産カーブを表示します。
簿価累積資産カーブは最大資産と最小資産と共に表示されます。両者が囲むボックスの面積が大きいほど、そのドローダウンが深刻であることを示しています。
このチャートにおけるドローダウン率は、直近最大累積資産残高からの資産の減少率を示しています。また、資産カーブの起点は、最初の建て玉に必用な資金額を示しています。
(w)買い回帰
"買い回帰"タブをクリックすると、買い損益累計チャートと共に、その回帰直線(回帰推定値ライン)と、そこから上下に標準誤差の2倍分(±2δ)離れたラインが表示されます。
これにより、そのシステムの安定性や、現在のポジションの安全度が判断できます。
買い損益累計が、概ね±2δライン内に収まっていれば、そのシステムは安定していると考えられます。また、損益累計の現在値が回帰推定値の近くにあれば、買いポジションを建てても比較的安全であると判断できます。
(x)売り回帰
"売り回帰"タブをクリックすると、売り損益累計チャートと共に、その回帰直線(回帰推定値ライン)と、そこから上下に標準誤差の2倍分(±2δ)離れたラインが表示されます。
これにより、そのシステムの安定性や、現在のポジションの安全度が判断できます。
売り損益累計が、概ね±2δライン内に収まっていれば、そのシステムは安定していると考えられます。また、損益累計の現在値が回帰推定値の近くにあれば、売りポジションを建てても比較的安全であると判断できます。
(y)ドテン回帰
"ドテン回帰"タブをクリックすると、ドテン損益累計チャートと共に、その回帰直線(回帰推定値ライン)と、そこから上下に標準誤差の2倍分(±2δ)離れたラインが表示されます。
これにより、そのシステムの安定性や、現在のポジションの安全度が判断できます。
ドテン損益累計が、概ね±2δライン内に収まっていれば、そのシステムは安定していると考えられます。また、損益累計の現在値が回帰推定値の近くにあれば、ドテンポジションを建てても比較的安全であると判断できます。
(z)チャート表示の注意点
-----中略-----
その他、チャート表示に関する詳しい操作方法については、エクセルのヘルプ等をご覧ください。
(6)システムの運用と更新
最適パラメータを設定し、システム性能を確認して、そのシステムが実運用に適していると判断したら、そのシステムの指示に従って運用(株式トレード)を開始します。
なお、そのシステムを運用すべきかどうかの判断は、システム判定欄(C9セル)や機能判定欄(C8セル)で行なうこともできます。
システム判定欄では、そのシステムを運用した結果が、統計学的に意味があるかどうかを判定します。表示が"OK"なら問題なし、"WARNING"なら注意が必要、"NG"なら運用すべきではないことを意味します。"NG"の場合は、最適化条件を再検討した方がいいかもしれません。
ただし、これらはあくまで参考レベルであり、その判定を信用するかどうかは運用者に任せられます。また、これらの判定は、「買い」、「売り」、「ドテン」のいずれかのシステムの最悪値に基づいており、"NG"が表示されても、例えば買いシステムの運用だけなら問題ない場合があります。
また、機能判定欄では、システム判定をパスして運用中のシステムが、機能を維持しているかどうかの判定を行なっています。
この表示が"OK"なら、そのまま運用を継続しても問題ありません。"WARNING"が表示されたら、近い内にシステムが機能停止に陥る可能性があります。
そして、"NG"が表示されたら、システムが機能停止したと判断して、直ちにシステムの運用を停止すべきとなります。
それまで持っていたポジションは直ちに解消し、そのシステムの運用を停止します。もちろん、それに従うかどうかの判断もまた、最終的には運用者に任せられます。
なお、システム判定や機能判定の判定基準につきましては、自由に変更することが可能です。ここでは特に解説しませんが、それぞれのセルの数式を見て、必要があるようでしたらご自身の判断に基づいて変更を行なってください。
通常の運用においては、日々の株価を更新する中で、サマリーシートの売買判定欄(C7セル)に"買い"が表示されたら翌日の寄付きで買い、"売り"が表示されたら翌日の寄付きで売ります。また、"買いHOLD"もしくは"売りHOLD"が表示されたら、それまでのポジションを継続します。
買いシステムの場合は、"買い"の翌寄付きで買い建てた後、"売り"が出るまで保有し、"売り"の翌寄付きで手仕舞いします。
売りシステムの場合は、"売り"の翌寄付きで売り建てた後、"買い"が出るまで売り持ちし、"買い"の翌寄付きで手仕舞いします。
ドテンシステムの場合は、上記のタイミングで一方を返済(手仕舞い)すると同時に、もう一方を新規に建てます。
なお、システム上は、返済と新規建てを同時に行なうようにしていますが、実際にはその瞬間に保証金が不足する可能性があります。資金管理に注意してください。
派生システムの日々の更新は、基本的には株価データの更新で実行されます。株価データを更新しておき、その後派生システムを立ち上げますと、「このブックには、ほかのデータソースへのリンクが含まれています。」と表示されますが、そこで"更新する"あるいは"はい"を選択します。
すると、最新の株価データを織り込んだ派生システムが起動します。あとは、機能判定や売買判定を確認すればいいわけですが、終点日(C5セル)の日付は株価データの最新の日付に変更する必要があります。ちなみに、C5セルを選択した状態で"Ctrl"+";"を押すと、当日の日付が入力されます。
サマリーシートの性能指標(12行目以降)は、全て、起点日から終点日までの期間で算出されます。
派生システムを更新する日付を、立会日の株価データ更新後から当日深夜零時までに限定するのであれば、C5セルの内容を「=today()」と書き換えることで、更新を自動化できます。
ただし、その場合、上記以外の日時に派生システムを立ち上げますと、エラーとなりますのでご注意ください。
なお、テスト期間(起点日や終点日)を変更しても、売買シグナルの出方には一切影響しません。一方、各種性能指標は、テスト期間に応じて変わってきます。
なお、設定パラメータを変えると、売買シグナルの出方も変わりますので、ご注意願います。
また、現行システムは3600行まで演算データが入っています。これは、来年の2月半ば頃まで更新せずに持つ量ですが、この期間を延長する場合は、3600行を選択してそれを延長したい行にまでコピーしてください。
ちなみに、期間延長更新したシステムは、2008年初頭にリリースする予定です。
4.性能指標に関する説明
ここでは、性能指標に関して簡単な説明を行ないます。より詳しく知りたい方は、当サイトのアーカイブページや連載コラムページ等を参照してください。
(1)期待効率
これは、資産カーブの回帰直線(線形近似直線)の傾きを示します。これは、1日・1株当たりの資産増加額(円)の期待値を表し、この値が大きいほど大きなリターンが期待できます。
(2)標準偏差
これは、資産カーブの標準偏差を示します。この値が小さいほど、資産カーブの値のバラツキが小さいことになります。ただし、これは平均資産に対するバラツキを示しており、この指標の値が小さい状態というのは、リスクも小さいがリターンも小さい状態であると言えます。
(3)標準誤差
これは、資産カーブの標準誤差を示します。これは、回帰直線に対する資産カーブのバラツキを示しており、この値が小さいほど資産カーブが回帰直線に近く、ロバスト性が高くてリスクが小さいということになります。
(4)EER
これは、1年・1株当たり期待効率を標準誤差で割った値であり、この値が大きいほど、高効率・低リスクのトレードが可能となります。
(5)標準猶予日数
資産カーブの回帰直線と、回帰直線から標準誤差の2倍分下方に平行移動した直線を考えた時に、それらの直線間の水平距離(日数)を表します。これは、資産カーブが平均的に推移している状態から、上昇が止まって標準誤差の2倍ラインを割り込むまでの平均日数であり、この値が小さいほど低リスクなトレードが可能となります。
(6)統計期間
期待効率などの各種性能指標を求めた期間(日数)を示します。この値が大きいほど、それらの指標の値の信頼度が高まります。
(7)安定指数
統計期間を標準猶予日数で割った値です。これは、システムが停止するまでの平均期間の何倍の期間で検証を行なっているかを示しており、この値が大きいほど、システムの安定度が高くなると考えられます。
(8)RSQ
これは相関係数の2乗を示し、0~100%の値を取ります。この値が大きいほど相関が高いことを意味します。ここでは、資産カーブのロバスト性の度合いを示す指標として用いており、この値が大きいほどロバスト性が高いと言えます。
(9)損益累計
全テスト期間における通算損益のことです。テスト期間最終日(終点日)における累計損益額を示します。この値には、直近トレードにおける評価損益が含まれます。従って、以下の総利益から総損失を引いた値とは、必ずしも等しくなりません。
買いシステムにおける損益累計の値は、標準的な最適化対象性能指標となっています。本指標が最大となるパラメータを設定することで、比較的安定したシステムを構築することができます。
ただし、銘柄やシステムの種類によっては、EERや最小推定損益等、他の性能指標を用いた方が良い場合があります。
(10)総利益
全テスト期間における売買利益の総額です。この値が大きいほど、そのシステムによって多くの利益が得られることを意味します。
なお、これは簿価基準となっています。そのため、建て玉保有中の評価損益は含まれません。
(11)総損失
全テスト期間における売買損失の総額です。この値(の絶対値)が大きいほど、そのシステムによって多くの損失を被ることを意味します。
なお、これは簿価基準となっています。そのため、建て玉保有中の評価損益は含まれません。
(12)プロフィットファクター
総利益を総損失で割って絶対値を採った値です。この値が大きいほど、優れたトレーディングシステムであるとされていますが、これはトレード数にも大きく依存します。
ちなみに、総利益から総損失を引いた値が総損益ですが、それに直近トレードの評価損益を加えた値が損益累計ということになります。
(13)トレード数
テスト期間中に売買を行なった回数です。ポジション1回につき、トレード1回としてカウントしています。
バックテストの結果が統計的に意味を持つためには、トレード数は少なくとも20回、できれば30回以上が必要と言われています。最適化の結果、トレード数が20回に満たない結果が得られた場合は、トレード数が20回以上となるパラメータ範囲で、再度最適化を行なうことが望ましいです。
(14)勝ち数
テスト期間中の勝ちトレード数です。手数料や金利は考慮せず、損益が少しでもプラスとなれば、勝ちトレードとしてカウントします。
(15)負け数
テスト期間中の負けトレード数です。損益が0となる引き分けの場合も、負けトレードにカウントしています。
(16)勝率
トレード数に占める勝ち数の割合です。一般に、勝率が高いほど優れたシステムであると言われますが、以下に説明します損益レシオとトレードオフの関係にあります。
一般に、順張り系のシステムでは勝率が低く、逆張り系のシステムでは勝率が高くなります。
(17)平均利益
総利益を勝ち数で割った値であり、勝ちトレード1回当たりの利益の平均値を表します。平均利益が大きいほど優れたシステムであると言えますが、勝率や損益レシオとの関係から判断しなければなりません。
(18)平均損失
総損失を負け数で割った値であり、負けトレード1回当たりの損失の平均値を表します。平均損失が小さいほど優れたシステムであると言えますが、勝率や損益レシオとの関係から判断しなければなりません。
(19)損益レシオ
平均利益を平均損失で割って絶対値を採った値であり、これが大きいほど優れたシステムであると言えますが、勝率とトレードオフの関係にあります。
(20)インナー確率
テスト期間中の日々の資産残高が、その回帰推定値±2δの範囲に収まっている確率(割合)です。これは、整合率とでも言い換えた方が良いかもしれません。
資産残高が回帰推定値の周りに正規分布をしていると仮定した時、インナー確率が95%程度であれば、そのシステムでは正規分布仮定が成り立っていると考えます。
したがって、インナー確率が95%を極端に下回っている場合、そのシステムは統計的に説明できない動作をしているということになります。
それは、KFシステムクリエイター(システムトレード)の大前提を覆す現象であるため、そのようなシステムの運用は控えた方が良いと思われます。
(21)現在ポジション
資産残高が、回帰推定値から標準誤差の何倍分離れているかの指標です。この値が±2を大きく超えると、そのシステムの機能に問題が生じたと判断できます。
そのような場合には、直ちにシステムの運用を停止する必要があります。
なお、この判定が成り立つためには、そのシステムのインナー確率が適正範囲であることが必用です。
そのシステム運用による資産残高推移が、回帰推定値の周りに正規分布をしているという前提があってこそ、現在ポジションが適切に判断できることになります。
(22)最小推定損益
資産残高の回帰推定値-2δの直近値です。資産残高がこの値を大きく下回ると、原則としてシステムを停止するわけですから、この値が事実上の最小期待損益ということになります。
したがって、この値に注目することで、そのシステムを運用した場合に、最悪でどれくらいの損失が発生するかを事前に知ることができます。
当然、最小推定損益が大きいシステムほど、期待値が高いシステムであると言えます。また、インナー確率が適正で最小推定損益が大きいシステムにおいて、現在ポジションが下限近くにあった場合、そのタイミングで運用を開始すれば、逸早く収益を上げる可能性が高くなります。
もし、損失が生じてシステムが機能停止に至っても、その損失額は最小限で済みます。
(23)平均損益率
各トレード毎の損益率の平均値です。平均損益率が大きいほど、トレード毎の期待値が大きいということになります。
これは、利益も損失も含めたトータルの値であり、少なくともこの値がプラスでないと、そのシステムの運用を続けても利益が増えない、ということになります。
また、これは手数料や信用金利の影響を見積もるために重要です。1トレード当たりの手数料や金利の割合が、建値に対して仮に0.3%であったとすると、平均損益率が少なくとも0.3%以上なければ、このシステムでは資産を増やせないということになります。
(24)最大利益率
一連のトレードにおける最大の利益率です。この値が大きいということは、そのシステムでは一回のトレードで大きく利を伸ばす可能性が高いということです。
次項の最大損失率と比べてこの値が十分に大きいならば、そのシステムは損小利大を実現していると考えられます。
(25)最大損失率
一連のトレードにおける最大の損失率です。この値の絶対値が大きいということは、そのシステムでは一回のトレードで大きな損失を被る可能性が高いということです。
逆張り系のシステムでは、最大損失率と最大利益率が同程度の大きさになる傾向が強くなります。
(26)平均利益率
1トレード当たりの利益率です。この値が大きいほど、そのシステムにおけるトレード効率が高いということになります。
次項の平均損失率と比べてこの値が十分に大きいならば、そのシステムは損小利大を実現していると言えます。
(27)平均損失率
1トレード当たりの損失率です。この値の絶対値が大きいほど、そのシステムにおけるトレード効率が低いということになります。
逆張り系のシステムでは、平均損失率と平均利益率が同程度の大きさになる傾向が強くなります。
(28)累計損益率
一連のトレードの損益率を累計した値です。これは、各トレード開始時の元本を全て同一にした場合の、終点日における資産増加率を示しています。
例えば、この値が100%の場合は、資産が100%増加した、すなわち2倍になったことを意味します。当然、この値がマイナスとなるシステムでは、利益を上げることは困難です。
(29)最大ETD
一連のトレードにおけるエンドトレード・ドローダウン(ETD)の最大値を示します。ETDとは、あるトレードにおける手仕舞い時の損益率の、直近最大評価損益率からの下落幅です。
例えば、あるトレードにおいて、評価損益率が最大10%に達した後、5%で手仕舞いしたとすると、そのトレードのETDは-5%ということになります。
これは、相場格言の「頭と尻尾はくれてやれ」の「尻尾」に相当します。「尻尾」が大きすぎると、真ん中のおいしい部分が少なくなるのは当然のことです。
ETDをできるだけ小さく抑えることが、システム性能の向上につながります。KFシステムクリエイターでは、追加システムの提供によって、ETDの低減を可能にしています。
(30)最大STD
一連のトレードにけるスタートトレード・ドローダウン(STD)の最大値を示します。STDとは、あるトレードにおける最大評価損失率のことであり、この値が小さいほど、時価評価における資産減少が少なくなります。
そのトレードを開始してから評価損益率が一度もプラスになることなく、最大損失率で手仕舞いした場合、STDとETDは等しくなります。
したがって、ETDをコントロールすれば、必然的にSTDもコントロールされることになります。
(31)時価累積損益率
システムを複利運用した場合の、時価基準資産残高の増減率です。終点日における時価基準資産残高が、起点日における資産残高の何倍であるかを示しています。
期待効率がプラスのシステムにおいては、累積損益率は一般に累計利益率を上回ることが多くなりますが、標準誤差が大きい場合にはその限りではありません。
(32)簿価累積損益率
システムを複利運用した場合の、簿価基準資産残高の増減率です。終点日における簿価基準資産残高が、起点日における資産残高の何倍であるかを示しています。
ポジション保有中の評価額の推移は、反映されません。
(33)勝ちトレード総日数
全トレード期間に占める、勝ちトレードの総日数です。これは、勝ち数に振り分けられたトレードの、ポジション保有累計期間です。
あくまで、手仕舞い時点における勝ち負けが基準となりますので、ポジション保有中に一時的に評価損に陥った期間も、勝ちトレード総日数に含まれます。
(34)勝ちトレード平均日数
勝ちトレード総日数を、勝ち数で割った値です。勝ちトレード1回当たりの、ポジション保有平均日数を意味します。
この日数が長いほど、利を伸ばす傾向が強いシステムであるといえます。
(35)勝ちトレード最大日数
勝ちトレードの中で、最も長いポジション保有日数です。
(36)勝ちトレード最小日数
勝ちトレードの中で、最も短いポジション保有日数です。
(37)勝ちトレード標準偏差
勝ちトレードにおける、各ポジション保有日数の標準偏差です。勝ちトレード平均日数とは異なり、勝ちトレード1回当たりポジション保有日数の、バラツキの度合を示します。
勝ちトレード平均日数が大きく、かつ、勝ちトレード標準偏差が小さいことが理想ですが、順張り系のシステムにおいては、トレンドの長さという不確実性に左右されるため、勝ちトレード標準偏差は、勝ちトレード平均日数よりも大きめの値となる場合が多くなります。
(38)負けトレード総日数
全トレード期間に占める、負けトレードの総日数です。これは、負け数に振り分けられたトレードの、ポジション保有累計期間です。
あくまで、手仕舞い時点における勝ち負けが基準となりますので、ポジション保有中に一時的に評価益となった期間も、負けトレード総日数に含まれます。
(39)負けトレード平均日数
負けトレード総日数を、負け数で割った値です。負けトレード1回当たりの、ポジション保有平均日数を意味します。
この日数が短いほど、損を早く切る傾向が強いシステムであるといえます。
(40)負けトレード最大日数
負けトレードの中で、最も長いポジション保有日数です。
(41)負けトレード最小日数
負けトレードの中で、最も短いポジション保有日数です。
(42)負けトレード標準偏差
負けトレードにおける、各ポジション保有日数の標準偏差です。負けトレード平均日数とは異なり、負けトレード1回当たりポジション保有日数の、バラツキの度合を示します。
負けトレード平均日数が小さく、かつ、負けトレード標準偏差も小さいことが理想です。
(43)最大連勝数
勝ちトレードの最大継続回数です。
(44)最大連敗数
負けトレードの最大継続回数です。この回数が多いと、ドローダウンが増大する傾向になります。ドローダウンは、トレード毎の損失率と連敗数で決まってきます。
(45)平均連勝数
勝ちトレードの平均継続回数です。
(46)平均連敗数
負けトレードの平均継続回数です。
(47)時価累計最大DD量
時価累計資産残高から見た、最大のドローダウン量です。ドローダウンとは、直近最大資産残高からの資産の下落量もしくは下落率で、ここでは下落量を示しています。
最大資産残高を更新する度に、ドローダウンはゼロにリセットされます。最大ドローダウンとは、そのようにして生じる複数のドローダウンの内、資産下落のピークが最大のものを指します。
(48)時価累計最大DD期間
時価累計最大資産残高が更新されるまでの最大日数です。これは、必ずしも最大ドローダウンが生じている期間というわけではありません。
資産の下落が最大ドローダウンに満たなくても、最大ドローダウン期間となる場合があります。
なお、ドローダウン期間のことを回復期間と呼ぶこともあります。
(49)時価累計平均DD期間
時価累計ドローダウンが生じている各期間の平均日数です。ドローダウンは、ゼロにリセットされる毎に1回と数えます。それらの1回当たりの日数を平均した値です。
これが短いほど、リスクが小さいシステムであると言えます。また、心理的にも運用しやすいシステムとなります。
(50)時価累積最大DD率
時価累積資産残高から見た、最大のドローダウン率です。ドローダウン率は-100%~0%の値を取り、資産残高が0になった時が-100%となります。
一部の書籍などでは、ドローダウンが-100%以下になる例が述べられていることがありますが、厳密にはそれは正しくないと考えます。
ドローダウン率は低いに越したことはありませんが、最終的にはポジションサイジングとの兼ね合いで決まります。
システム単独ではドローダウン率が-20%であったとしても、そのシステムに振り分ける資金を総資金の10%に抑えれば、実質的なドローダウン率は、総資金に対して-2%ということになります。
(51)時価累積最大DD期間
時価累積最大資産残高が更新されるまでの最大日数です。これは、必ずしも時価累計最大DD期間とは一致しません。
(52)時価累積平均DD期間
時価累積ドローダウンが生じている各期間の平均日数です。これは、必ずしも時価累計平均DD期間とは一致しません。
(53)簿価累計最大DD量
簿価累計資産残高から見た、最大のドローダウン量です。ここでは、ポジション保有中の評価損益は反映されません。
そのため、通常は、時価累計最大DD量よりも小さな値となります。
(54)簿価累計最大DD期間
簿価累計最大資産残高が更新されるまでの最大日数です。これは、必ずしも時価累計最大DD期間や、時価累積最大DD期間とは一致しません。
(55)簿価累計平均DD期間
簿価累計ドローダウンが生じている各期間の平均日数です。これは、必ずしも時価累計平均DD期間や、時価累積平均DD期間とは一致しません。
(56)簿価累積最大DD率
簿価累積資産残高から見た、最大のドローダウン率です。ドローダウン率は-100%~0%の値を取り、資産残高が0になった時が-100%となります。
(57)簿価累積最大DD期間
簿価累積最大資産残高が更新されるまでの最大日数です。これは、必ずしも時価累計最大DD期間や時価累積最大DD期間、簿価累計最大DD期間とは一致しません。
(58)簿価累積平均DD期間
簿価累積ドローダウンが生じている各期間の平均日数です。これは、必ずしも時価累計平均DD期間や時価累積平均DD期間、簿価累計平均DD期間とは一致しません。
5.おわりに
KFシステムクリエイターを用いることにより、様々な派生システムを作成・運用することが可能となります。そこには、ご利用者のトレードに関する戦略や思いが反映されることでしょう。
思い入れのある銘柄に対して様々なバックテストを行ない、納得のいく売買タイミングが得られる派生システムを作成してみてもいいでしょう。あるいは、期待効率だけを追求してみても、いいかもしれません。
私たちがKFシステムクリエイターから生み出すことができる派生システムは、ごく一握りに過ぎないかもしれません。それらを単なる売買マシンと考えずに、今まで様々なテクニカル指標を使って売買タイミングを考えていたことと同様に、システムが出す売買タイミングを過去に遡って確認してみることもまた、KFシステムクリエイターの使用方法の一つであると思います。
KFシステムクリエイターは完成品ではありません。まだまだ進化する余地を大きく残しています。それについては、適宜、追加システムなどの形態でご利用者に提供していくつもりです。
また、ロジックの解析に役立つ情報も、順次公開していくつもりです。
KFシステムクリエイターは、エクセルのブック(ワークシート)という形態をとっています。傍から見れば、チープな印象を受けるかもしれません。
しかし、エクセルは極めて自由度が高く、複雑な処理を行なうことが可能であり、多くの企業等で実践的に使用されているという事実があります。
KFシステムクリエイターには、ご購入時を除いて一切のプロテクトを掛けておりません。ご利用者は、KFシステムクリエイターの隅々まで自らの手で解析することができます。
これは、体裁の整った製品ではありえない話です。
エクセルの操作に精通し、ご自身でシステムを作成することができる方は、ロジック部分を改良して、より優れたシステムにすることができるかもしれません。
あるいは、株価データ自動取得や自動発注などの機能を追加することも可能でしょう。
さらには、KFシステムクリエイターで用いているテクニックを、ご自身のシステムに応用することができるかもしれません。
KFシステムクリエイターでは、ロジック部分と性能指標演算部分とが完全に分離しているため、性能指標演算部分だけを流用するという使い方も可能です。
KFシステムクリエイターの使い方は、ご利用者の数だけ無数にあります。
KFシステムクリエイターが、少しでも皆様のトレードのお役に立つことができれば幸いです。
2007年10月25日 Kフロー株式トレード研究所
*2008年6月27日に、システムの改定を行ないました。改定内容についてはコラム・解説ページの2008年7月1日~3日の記事等をご覧ください。
本製品によって作成される派生システムの一例は、次のリンクをご参照ください。