« 2007年1月 | トップページ | 2007年3月 »

2007年2月

2007/02/27

トレンド判定後の利益曲線

基本的な移動平均によるフィルターは、あらゆるフィルター検証プロセスの基礎となるもので、あらゆるマーケットで元の仕掛けのテクニックに対して最も有効な参照期間を探っていく
トレーディングシステム入門、P332

いままで会社の昼休みにブログを書いていたんだけど、セキュリティの関係で書けなくなってしまった...やれやれ(-_-+

で、まともに更新ができていなかった間にniftyのトップページで「いま話題のブログ」として紹介されていたようだ。

なんだか嬉しいけど、更新しないうちに紹介の掲載が終わってしまって、何だか損した気分。

そろそろ、ブログの方もmixi日記と同じく、携帯で更新できるようにしようかな?

...といっても、携帯じゃぁグラフの貼り付けやバックテストはできないから、エッジ付B5ノートパソコンが欲しいところだなぁ。

ここの方々はどんな環境でブログ書いてるんでしょ?

今回は、前回組み込んだトレンド判定フィルタによって結果がどうなったのかをチェック。

...とその前に、ドローダウン(AG列)と回復期間(AH列)にエラー(#VALUE!と表示)が出ているので、その原因となっている値洗い損益(V列)を修正する。

V278に「=IF(O277=1, (E278-T278)*S278, IF(O277=-1, (T278-D278)*S278,))」と入力し、V278をコピー、V279~V991にペースト。

これで、ドローダウン(AG列)と回復期間(AH列)がエラーでなくなるはず。

さて、修正も終わったことだし、各銘柄の利益曲線をチェックしてみよう。

トレンド判定フィルタ適用前のバックテストの利益曲線と比べて欲しい。

■インパクト21(9944)

200日MAトレンドフィルタ適用後のインパクト21(9944)の利益曲線

■高速(7504)

200日MAトレンドフィルタ適用後の高速(7504)の利益曲線

■富士ソフト(9749)

200日MAトレンドフィルタ適用後の富士ソフト(9749)の利益曲線

■三菱自動車工業(7211)

200日MAトレンドフィルタ適用後の三菱自動車工業(7211)の利益曲線

その結果、S-Revengeの利益曲線とシステム評価は、こんな感じになる。

200日MAトレンドフィルタ適用後のS-Revengeの利益曲線

200日MAトレンドフィルタ適用後のS-Revengeのシステム評価

なんだかトレンド判定フィルタ適用前より、すべて悪くなっているような気が...

それに、利益曲線の後半にかけての下落がひどい。

これはなぜなんだろう?

次回は、その原因について、考えてみる。

ではでは(^_^y

この記事でワクワクしたら応援クリックよろしく!

気が向いたらこちらも応援してね

mixi日記でシステムトレード以外のネタを書いているのでどうぞ

| | コメント (3)

2007/02/21

トレンド判定フィルタ

トレンドフォローの長所は単純である。あなたはいかなる市場でも、主要な動きを決して逃すことはないだろう
魔術師たちの心理学、P119

投資やトレード、ビジネスをやっていると、「トレンド」がいかにパワフルなのかを知ることができる。

その威力は、トレンドの発生を確認した後に、すぐにトレンドに飛び乗っても、結構な利益を出せることからも分かる。

でも、最も旨みがあるのは、トレンドがまだトレンドとして認識される前に仕掛けること。

投資家やトレーダー、ビジネスオーナーとしてのチカラは、トレンドをどこまで読んで、フォローするかという先見性にかかっているのかも知れない。

ランキングも上昇トレンド突入中?

今回は、トレンド判定をトレードシステムに組み込んでみる。

さて、トレンド判定として何を使うのか?

それは...

移動平均。

「えっ?シグナルでダメ出ししていた移動平均!?」

というのもの、”価格を動かす要因として”の移動平均にはあまり説得力がないが、トレンドの大雑把な方向を示すので、短期トレードシステムでのトレンド判定としては移動平均が適している。

次の問題は、移動平均の平均日数をどのぐらいにするか?

200日移動平均(約1年弱)を使うとちょうどいい。

では、なぜ200日か?

特にこれといった根拠がある訳ではないが、マーケットのサイクルにピッタリ来るらしい。

人間心理として、1年間は区切りがいいのと同時に、「飽きやすい」「あきらめやすい」「手放しやすい」感じになる期間なのかも知れないなぁ(実際は、3の倍数の日数や週数、月数がそういう風になりやすいサイクルだと私は思っている)。

参考までに、グランビルの法則でも200日移動平均は重要視されていて、長期機関投資家や長期トレンドフォロワーの多くも200日移動平均をシグナルとして採用しているようだ。

そして、この200日移動平均をどう使うか?

200日移動平均の方向とシグナルの方向が合っているときだけトレードを行う「トレンドフィルタ」として採用する。

こうすることで、トレンドに逆らうシグナルを排除でき、短期シグナルのダマシに合うことを避けられる。

さて、200日移動平均を出すにあたって、200日前からの日足データが必要となる。

まずは、200日分の行を先頭行の前に挿入しよう。

58行で右クリック、「挿入」で空の行が挿入される。

これを5回ほど繰り返して、58~62行を選択して、挿入を行うと、5行まとめて挿入される。

これを4回繰り返し、58~77行を選択し、挿入を行うと、20行まとめて挿入される。

これを10回繰り返せば、200行の空行の挿入は完了。

次に、200日分の過去データを手に入れる。

例によって、パンローリングの相場データ ダウンロードページから、”株式 各銘柄日足場帳ダウンロード”をクリック。

銘柄コードを入れ、日付を2003/10/8~2003/8/1と入れ、個人情報を入れてから、「ダウンロード」ボタンをクリックし、.tsvファイルとして保存しよう。

.tsvファイルの日付と4本値をコピーして、各銘柄のB58にペースト。

ここまでを、4銘柄すべてに対して行う。

これで、200日前の過去データが追加ができたので、トレンド判定用の入力パラメータを追加。

C15に「フィルタMA」、D15に「200」を入力。

それから、トレンド判定用の列を3列追加。

J列で右クリック、「挿入」で空の列が挿入される。

J51に「トレンドフィルタ」、K51に「トレンド方向」を入力。

J258に200日移動平均の式「=AVERAGE(OFFSET(F258, -$D$15+1, 0):F258)」を入力し、K258に上昇トレンドを1、下降トレンドを-1とするための「=IF(J258>J257,1, -1)」を入力。

J258~K258をコピーして、J259~K991にペースト。

これで、トレンド判定フィルタは完成。

移動平均トレンドフィルタ

最後に、シグナルにトレンドフィルタを反映させる。

O277に「=IF(M277>N277, IF(K277=1, 1, ), IF(K277=-1, -1, ))」と入力。

O277をコピーし、O278~O991にペースト。

これで、200日移動平均が上向きのときは買シグナルだけが動作し、200日移動平均が下向きのときは売シグナルだけが動作するようになり、短期システムでも長期トレンドをフォローできるようになる。

では、その結果はどうなったか?...

その続きは、次回(^o^)

ではでは(^_^y

この記事でワクワクしたら応援クリックよろしく!

気が向いたらこちらも応援してね

mixi日記でシステムトレード以外のネタを書いているのでどうぞ

| | コメント (9)

2007/02/20

トレンドフォロー入門

トレード戦略に対し、それがあらゆる条件下でどのように機能するかについての理解度が増すほど、過去データを用いたテストの必要性は低下する
魔術師たちの心理学、P115

昼間の仕事の会社で社員ブログなるものを4日間だけ書いた(2007/02/13~2007/02/16)。

私なりに、プログラマの可能性や自由について、飲み屋にいるオヤジのような感じ(笑)で語ってみた。

やってみて分かったことは、今はサラリーマンと言えども、文章を書ける人間がもっとも多くを得るってことかな。

自分の考えを文章で人に伝えられるチカラは、一生モノのスキルだと思う。

ここに名乗りを上げている人たちも物書きを楽しんでいるんだろうね

機能する概念は、無数にある。

代表的なものだけでも、トレンドフォロー、逆張り、ファンダメンタル分析、サイクル傾向、スプレッド取引、裁定取引、波動、ニューラルネットワーク、スキャルピング、ヘッジ、統計的取引などなど。

それぞれの概要や特徴は、魔術師たちの心理学の第5章「機能する概念の選択」(P115~P178)にだいたい書いてあるけど、実際にトレードシステムへと適用する方法をこのブログでフォローしようと思っている。

とはいえ、機能する概念を、私がたくさん知っている訳でもなければ、使っている訳でもない。

だから、だいぶ偏りは出てくるかも知れないので、その点ご注意を。

まずは、トレンドフォローについて。

トレンドフォローは、その名の通り、「トレンド」を「フォロー」するようなトレードをあらわす。

もっと分かりやすく言えば、トレンドがはじまったと分かったときにトレンド方向へ仕掛け、トレンドが終わったと分かったときにポジションを手仕舞う...トレンドフォローとは、ただそれだけのこと。

でも、最も難しいのは、「何をもってトレンドの開始/終了とするのか?」ということ。

システムトレードのセミナーや勉強会のアンケートで私が最も聞かれたことが、このトレンド判定を詳しく知りたいということだった。

かなり多くの人がそれを知りたがっているけど、あまり情報がないらしい。

私のトレードシステムで使っているトレンド判定を教えることはできないが、トレンド判定のためのヒントはいくつか出せると思う。

次回、トレンド判定を1つトレードシステムに組み込んでみる。

ではでは(^_^y

この記事でワクワクしたら応援クリックよろしく!

気が向いたらこちらも応援してね

mixi日記でシステムトレード以外のネタを書いているのでどうぞ

| | コメント (6)

2007/02/17

RSQ分析

「ちょっとした移動平均線のアイデアを使って最適化して、どんな結果になるか見てみよう」など言う人がたくさんいます。彼らは最適化によって相当に使えそうな数個のモデルを見つけるかもしれません。でも、残りの大部分がかなりひどい可能性があるという事実をまったく無視しています。わたしは最適化を、あるモデルが良いかどうを判断するための方法とは考えません
マーケットの魔術師 システムトレーダー編、P30

システムトレードをやるまで、「最適化」ってピンと来ていなかった。

Excelでテーブルとか使って、最適化の方法が分かると、これはシステムトレードだけじゃなく、マーケティングや顧客分析にも使えるなぁってことが分かって、ちょっと賢くなったような気がした。

最適化だけじゃなく、標準偏差やヒストグラム、等高線、歪度、尖度...これらが分かると、もっと楽しい。

でも、高校の頃は、統計とか確率とか大っ嫌いだった。

だって、何の役にも立ちそうになかったから...

それが今になって、こんなに役に立つとは思わなんだ。

たぶん、統計や確率は、大人になって、社会経験を積んでからの方が、楽しめる学問だと思うよ。

とはいえ、自分の娘には、統計と確率、それとお金のことは、マスターするように言っておこう(^o^)

おや?休日だけど、なんだかいい数字

ハムハムセブンさんのブログでRSQ分析というのを見つけた。

これを使うと、利益曲線がどれだけ線形であるかを簡単にチェックできる(数字の意味はハムハムさんの記事で)。

S-Revengeでこれを使うなら、空いているA列を使って、A58に1、A59に2という感じでA791まで入れて、これまたどこか空いているセルに「=RSQ(A58:A791,E58:E791)」と入れれば、RSQ分析完了。

結構、高い値が出ているなぁ。

ちなみに、自分の運用しているトレードシステムで試してみたら...

98.43...思いっきりカーブフィッティング?

これまで半年近く、安定して利益を出しているから、それが逆に怖い気もするなぁ。

ま、とりあえず、可愛い相棒として、よろしく頼むよ...システム停止条件に到達するまでは(^_^)

ではでは(^_^y

この記事でワクワクしたら応援クリックよろしく!

気が向いたらこちらも応援してね

mixi日記でシステムトレード以外のネタを書いているのでどうぞ

| | コメント (4)

2007/02/16

根拠のないシグナル

まず、トレーダーや投資家によって広く受け入れられている手法から始め、次にあまり受け入れられていないものを検討しよう
魔術師たちの心理学、P287

為替オプションの実戦投入に向けて、toyolabさんのブログや、銀次郎さんのブログでお勉強中。

まだ完全にはつかめてないけど、オプションと証拠金取引の組み合わせは、なかなか研究の価値があると思う。

他にもオプションのこと書いてるブログはあるかなぁ?

今回から、これまでやってきた入門トレードシステムと、実際に運用に耐えうるトレードシステムの違いについて、触れていこうと思う。

まず、最も気になる違いは、シグナルの組み立て方。

入門トレードシステムであるS-Revengeは、シグナルとして移動平均がクロスしたポイントでの売買を行っていた。

そして、移動平均の平均日数を調整することで、パフォーマンスを改善した。

システムトレードに入門したばかりの時期は、このように一般的なテクニカル指標をベースにしてシステムを開発し始める人が多いと思う。

私も、しばらくはそうだったし。

実は、ここが最初の大きな落とし穴だったりする。

移動平均のようなテクニカル指標を使うと、以下の点で本来の値動きの情報が欠落することになる。

(1)始値、高値、安値、終値のうち、1つだけしか評価されない

(2)更に、その平均値しか評価されない

たとえば、終値だけで移動平均を作ると、どんな始値で始まっていようが、ローソクの長さ(始値、終値)やヒゲの長さ(高値、安値)がどれぐらいであろうが、陰線や陽線がどう並んでいようが、無視することになる。

日足ベースなら、日中の価格変動やボラティリティは一切見ないということだ。

長期システムならノイズとして扱うレベルなのでともかく、短期システムではなかなかのチャレンジャーだ...もちろん悪い意味で。

この時点で、値動きの情報量は、1/5以下になっている。

このことは、ただの移動平均だけでなく、加重移動平均を使おうが、指数移動平均(直近の日に重みを置くもの)を使おうが、転置移動平均(単純移動平均を数足ずらしたもの)を使おうが、代わりがない。

このように構築された短期トレードシステムは、歪んだ解釈をベースにしてしまうため、信頼性や堅牢性が確保しづらくなる。

更に、最適化を行えば、歪んだものを歪んだ最適値でフィットして、あたかもうまく機能しているかのような結果を目の前に持ってくることになる。

ま、これらの「幻想」は、実際の運用をはじめてみれば、それほどかからずに痛みに変わることが多いのだが...

情報量の欠落については、KonSinさんの記事に詳しく書かれていて参考になるのでどうぞ。

そして、これがもっとも重要なことなのだが、移動平均は、価格の動きに多少の影響を与える(多くのトレーダーが移動平均を見ているため)ものの、価格やトレンドといったものを決定「しない」。

たとえば、「価格が25日移動平均を上回ったから買い」という言葉には、価格がその後上昇し、利益が出る根拠がほとんどない。

移動平均は、直近の過去データのトレンド方向とトレンドの強さの傾向を見るには適しているが、それ自体はシグナルとして使うには、割と工夫が必要なのだ(トレンド判定やフィルタとしては非常に有効だが)。

このことは、他の多くのテクニカル指標にも言える。

では、どのようなものが機能するのか?

次回は、機能するいくつかの概念について、解説しようと思う。

ではでは(^_^y

この記事でワクワクしたら応援クリックよろしく!

気が向いたらこちらも応援してね

mixi日記でシステムトレード以外のネタを書いているのでどうぞ

| | コメント (4)

2007/02/15

システムのポジションサイジング

マイペースなスキー&ソースツアーを3月に開催予定。昼はスキー、夜はソースを楽しむ一泊二日のツアー(どんなことをやるかについてはこちら)。「ソースセルフスタディキット」を持ってこれることと、スキー(スノボも可)で初級コースをラクラク滑れることがクリアできれば、誰でも参加OK。去年、私が実行して年収3倍になったプランや戦略をツアー参加者だけにこっそり暴露予定(^_^)
お申し込みはこちらからどうぞ

ギアボックス(資金管理)というのは、実際極めてシンプルなものである
トレーディングシステム入門、P387

とある投資家の影響で、為替オプションを勉強している。

これまで、安く現物株式を手に入れるための個別株オプションの使い方(ただし、国内株式ではこの戦略がほぼ使えない...)ぐらいしか価値を見出せていなかったけど、自分のトレードシステムにオプションを組み込んだら、なかなかいい戦略が組めることが分かってきた。

ようやくボードゲームのキャッシュフロー202と同じレベルでのトレードができそうな予感。

トレードだけでなく、投資やビジネスの面でも、キャッシュフロー202と現実がリンクし始めている。

これは、なかなか嬉しいねぇ。

微妙にランキングも好調?

今回は、前回までにシグナルとストップを最適化したS-Revengeが、ポジションサイジングでどこまでパフォーマンスを伸ばせるか探ってみる。

対象となるのは、バックテストのExcel。

ポジションサイジングの基準となるのは、以前、個別銘柄に対して行った方法と同じで、システム停止条件を最大ドローダウン25%とした上で、その半分の12.5%になるまではS-Revengeの最大ドローダウンを許容する前提で、各銘柄のポジションサイズを調整していく。

各銘柄のポジションサイジングのリスク率は、同一とする。

まず、リスク率を同一にするために、S-Revengeの入力パラメータにリスク率を追加して、他の銘柄のリスク率もここを使うようにする。

S-RevengeのC11に「リスク率」、D11に「1.16%」と入れてから、全銘柄のD11に「='S-Revenge'!D11」と入れる。

次に、リスク率に対するS-Revengeの最大ドローダウンを0.1%刻みでリストアップする。

S-RevengeのT2に「=D45」、T3に「0.1%」、T4に「0.2%」、T3~T4を選択、選択範囲の右下をクリックしてT52までドラッグ(5.00%まで作られる)、U2にダミーで「1」を入れる。

T2~U52を選択して、「データ」メニューから「テーブル」を選択。

”行の代入セル”にダミーの「a1」、”列の代入セル”に「$D$11」を入力して、「OK」ボタンをクリック。

これで、リスク率に対する最大ドローダウンの分布がリストアップされる。

S-Revengeの最大ドローダウン分布

1.7%~1.8%の間に最大ドローダウンが12.5%をオーバーする値があるので、今度は0.01%刻みでリストアップするために、T3~T13を1.70%~1.80%に書き換える。

すると、リスク率が1.73%のとき、最大ドローダウンが12.5%以内に収まる最大の12.42%となる。

最後に、D11を「1.73%」に変更すれば完了。

利益曲線とシステム評価は、以下の通り。

ポジションサイジング最適化後のS-Revengeの利益曲線

ポジションサイジング最適化後のS-Revengeのシステム評価

ここまでで、この段階のS-Revengeのシステム構築は終了。

できあがったシステムの最終評価をしよう。

利益曲線は、でこぼこしているものの、基本的に右肩上がりでイイ感じ。

IRR(年利回り)が14.65%なので、海外ヘッジファンドと同じくらいの利回りは出た。

日経平均をバイ・アンド・ホールドした場合よりは、2倍ぐらいいいパフォーマンス。

とはいえ、最大ドローダウンが12.42%なので、利回りに対するリスクはちょっと高め。

それを示すように、シャープレシオが117.95%とかなりギリギリな結果になっている(シャープレシオの見方については、ブログ左上の「ネタを探す」から”シャープレシオ”で検索すること)。

プロフィットファクターを見れば、184.33%なので、そこそこの水準な気はするが、200%以下なので、魅力的なトレードシステムとは言えないレベル。

平均トレード期待値は、\16,288.43なので、1トレードあたり資金の0.2%のプラスが出ていることになる。

...んー、イマイチかなぁ...

1円あたりの期待値は、\7.55と、割とイイ感じに見える。

ということは、トレード頻度が低いんだろうな。

総トレード回数を見ると、3年間4銘柄で216回。

1銘柄あたり年間18回...月に1~2回しかトレードしていないことになる。

日足ベースの短期トレードシステムとしては、少ない方だろうね。

各銘柄で見ていくと、高速(7504)がとてもいいパフォーマンスを出しているのに対して、富士ソフト(9749)や三菱自動車工業(7211)があまりよろしくない。

これらの銘柄を外して、ポートフォリオを組み直してもいいレベルかも知れない。

さて、それほど抜群の評価ではないものの、とりあえず右肩上がりでリスクもそこそこのシステムができあがった。パチパチ!

システムトレードの入門レベルとしては、まぁこんなもんだろう。

もしよければ、ここまでのプログラミングが簡単だったか、それとも難しかったかなどをコメントしてもらえると嬉しいなぁ。コメントした方に合わせて、以降の記事のレベルを調整する予定。

次回から、いよいよシステムトレードの本番(^_^)

まずは、ここまでやってきた入門トレードシステムと、実際に運用に耐えうるトレードシステムの違いについて、触れてみようと思う。

ではでは(^_^y

この記事でワクワクしたら応援クリックよろしく!

気が向いたらこちらも応援してね

mixi日記でシステムトレード以外のネタを書いているのでどうぞ

| | コメント (8)

2007/02/14

最適化後の利益曲線

このシステムは、最大負けトレードと平均負けトレードの金額からも分かるように、適正に開発されたストップなしでは、依然として危険なものである
トレーディングシステム入門、P106

ストップの記事を書いていて、裁量トレーダー時代の苦い想い出を思い出した。

トレードで大失敗する原因のワースト1は「大き過ぎるポジションを持つこと」。

ワースト2は「ストップをかけないこと」。

私は、そのどちらもやってしまっていた(-_-u...

そうしてしまう原因は...”大勝の経験”と”期待”、そして”過去データへの無頓着”。

どれも、自分を過信することから生まれ、金銭的にも心理的にもトレーダーを破滅へと導く。

システムトレードをやっていて、最も良かったなぁと思うのは、このような「自分への甘さ」をプログラムがおおかた排除してくれて、心理的に安定したこと。

もうトレードシステムなしでトレードすることは一生ないと思う...IPO以外は(^_^)

システムトレードをネタにするブログも結構増えてきた気がするなぁ

今回は、前回、最適化分布を調べたストップの最適値を使った、各銘柄の利益曲線とS-Revengeの利益曲線、システム評価をチェックする。

まず、ストップの最適値として、以下を使った。

インパクト21(9944):11.5%
高速(7504):17.0%
富士ソフト(9749):4.5%
三菱自動車工業(7211):1.0%

そのときのバックテストとフォワードテストの利益曲線は、以下の通り。

■インパクト21(9944)

バックテスト
最適化後のインパクト21(9944)のバックテストの利益曲線

フォワードテスト
最適化後のインパクト21(9944)のフォワードテストの利益曲線

■高速(7504)

バックテスト
最適化後の高速(7504)のバックテストの利益曲線

フォワードテスト
最適化後の高速(7504)のフォワードテストの利益曲線

■富士ソフト(9749)

バックテスト
最適化後の富士ソフト(9749)のバックテストの利益曲線

フォワードテスト
最適化後の富士ソフト(9749)のフォワードテストの利益曲線

■三菱自動車工業(7211)

バックテスト
最適化後の三菱自動車工業(7211)のバックテストの利益曲線

フォワードテスト
最適化後の三菱自動車工業(7211)のフォワードテストの利益曲線

これらの結果、S-Revengeの利益曲線とシステム評価は、以下のようになった。

バックテスト
最適化後のS-Revengeのバックテストの利益曲線

最適化後のS-Revengeのバックテストのシステム評価

フォワードテスト
最適化後のS-Revengeのフォワードテストの利益曲線

最適化後のS-Revengeのフォワードテストのシステム評価

各銘柄は、割とバタバタした利益曲線だけど、合成すると、そんなに悪くない形になっているんじゃないかな?

次回は、ポジションサイジングでS-Revengeがどこまでパフォーマンスを伸ばしていけるか探ってみる。

ではでは(^_^y

この記事でワクワクしたら応援クリックよろしく!

気が向いたらこちらも応援してね

mixi日記でシステムトレード以外のネタを書いているのでどうぞ

| | コメント (1)

2007/02/13

ストップ最適化分布

ほとんどの場合、トレードを仕掛けることよりも、手仕舞いすることのほうがはるかに重要であるといえよう
トレーディングシステム入門、P185

一応、私は理系出身なのだが、論理的な文章を書いたり、システマチックに考えをまとめたりするのは苦手。

どちらかと言えば、大雑把でアバウトな性格だと思う。

でも、プログラミングやシステムトレード、投資、ビジネスのときは、そのぐらいの方がかえって事がうまく進むような気がする。

論より証拠(使い方、合ってるのかなぁ?)ってところか(^_^)

ランキングも論より証拠...なのかな?

前回、バックテストとフォワードテストのシグナル最適化分布から、短期MA/長期MAの最適値が分かったので、今回はストップの最適値を求める。

ちなみに、最適値とは言っても、たったこれだけの事例では、将来を約束することもできない(そもそも100%の約束なんてできないけどね)し、現時点では「真のドローダウン」も分かっている訳ではないので、実際にトレードするときは評価以上のドローダウンが出るかも知れないという覚悟をお忘れなく。

以下のバックテストとフォワードテストで共にそれなりの成績が出たシグナル最適値を設定して、再度ストップの最適値を求めてみよう。

インパクト21(9944):短期MA3/長期MA12
高速(7504):短期MA20/長期MA4
富士ソフト(9749):短期MA17/長期MA13
三菱自動車工業(7211):短期MA13/長期MA18

■インパクト21(9944)

バックテスト
インパクト21(9944)のバックテストのシャープレシオストップ最適化分布

フォワードテスト
インパクト21(9944)のフォワードテストのシャープレシオストップ最適化分布

16%~30%は、どちらもシャープレシオに変化がない。

9.5%~14.5%は、バックテストでいい成績が出ているので、この辺りを使うのがいいかな?

■高速(7504)

バックテスト
高速(7504)のバックテストのシャープレシオストップ最適化分布

フォワードテスト
高速(7504)のフォワードテストのシャープレシオストップ最適化分布

14.5%~19%、28%~30%でそこそこのパフォーマンスを出している。

17%付近が使えそう?

■富士ソフト(9749)

バックテスト
富士ソフト(9749)のバックテストのシャープレシオストップ最適化分布

フォワードテスト
富士ソフト(9749)のフォワードテストのシャープレシオストップ最適化分布

2.0%~5.5%、29%~30%がバックテスト/フォワードテスト共通でプラスになっている。

同じぐらいのシャープレシオなら、ドローダウンや平均トレード期間の小さい2.0%~5.5%の方が有利か?

■三菱自動車工業(7211)

バックテスト
三菱自動車工業(7211)のバックテストのシャープレシオストップ最適化分布

フォワードテスト
三菱自動車工業(7211)のフォワードテストのシャープレシオストップ最適化分布

バックテストとフォワードテストでえらくカーブが違うので、中間をとって、1.0%がいいところかな?

各銘柄とS-Revengeの利益曲線がどうなるかについては次回。

ではでは(^_^y

この記事でワクワクしたら応援クリックよろしく!

気が向いたらこちらも応援してね

mixi日記でシステムトレード以外のネタを書いているのでどうぞ

| | コメント (0)

2007/02/09

シグナル最適化分布

システムの検証や設計というものは、必然的にヒストリカルデータに基づかざるを得ないということである
トレーディングシステム入門、P89

私は、システムトレードという、いかにもロジカルっぽいことをしている割には、占いや風水を信じている。

テレビの占いとかはあまり見ないが、普段使うものの色や形には結構こだわる。

だから、服とか財布を買いにいくと、かなり時間がかかったりするんだけどね(^_^u

ブログのカラーリングも、今年の運勢に合わせて変えてたりする。

んで最近、ホロスコープというものを知ったんだけど、これがかなり面白い!

トレードやビジネスにも役立つ感じなので、目に見えないチラカとか信じる方だったら、やってみるといいかもね。

案外、ランキングも占いに左右されたりして(^_^)

前回、バックテストとフォワードテストのシグナル最適化分布を行ったので、今回はその結果について解説したいと思う。

高さを視覚的にチェックするために、3Dグラフを使用するが、短期MA/長期MAの正確な数字は、前回作ったグラフを見ながら、フォローして欲しい。

■インパクト21(9944)

バックテスト
バックテストでのインパクト21(9944)

フォワードテスト
フォワードテストでのインパクト21(9944)

短期MA4/長期MA14と短期MA18/長期MA13の周辺が、バックテストとフォワードテストで共通に大きめの利益を出している。

3Dで見ると、短期MA4、長期MA14の方が、バックテストとフォワードテストで高低差がなく安定しているように見えるので、使いやすいかも知れない。

■高速(7504)

バックテスト
バックテストでの高速(7504)

フォワードテスト
フォワードテストでの高速(7504)

短期MA6/長期MA2と短期MA18/長期MA6の周辺が、バックテストとフォワードテストで共通に利益を出している。

ただ、あまり面積は大きくないので、インパクト21(9944)と比べると過敏かも知れない。

3Dで見ると、短期MA18/長期MA6の方は、それほど利益が大きくないことが分かる。

■富士ソフト(9749)

バックテスト
バックテストでの富士ソフト(9749)

フォワードテスト
フォワードテストでの富士ソフト(9749)

短期MA17/長期MA13がかろうじてバックテストとフォワードテストで共通に利益を出しているだけで、他に利益を共通に出しているポイントがない。

3Dで見ても、山になっているところがほとんど重ならない。

ストップに期待といったところか。

■三菱自動車工業(7211)

バックテスト
バックテストでの三菱自動車工業(7211)

フォワードテスト
フォワードテストでの三菱自動車工業(7211)

短期MA14/長期MA8のわずかな部分と、短期MA13/長期MA19の割と広めのところで、バックテストとフォワードテストで共通に利益が出ている。

3Dで見ても、この2点は共通に利益が出ているが、バックテストで利益が出ていた左上の領域が、フォワードテストでは大幅にへこんでいて、堅牢性が低下しているように見える。

これもストップで改善されるところだろうか...

...こんな感じで、ストップなしのシグナル最適値のチェック完了。

ストップを止めることで、シグナルそのものの特性が見えたと思う。

後はストップでパフォーマンスや安定性を伸ばすことができるかどうか。

次回は、ストップの最適化分布をチェックする。

ではでは(^_^y

この記事でワクワクしたら応援クリックよろしく!

気が向いたらこちらも応援してね

mixi日記でシステムトレード以外のネタを書いているのでどうぞ

| | コメント (3)

2007/02/08

シグナルの堅牢性チェック再び

データの一部を処女データによるテストのためにとっておくことはいいことなのかということである。その答えは、システムと基礎となる前提条件によるが、多くの場合違いはないであろう
トレーディングシステム入門、P88

「マイペースなシステムトレーダーズ(このブログの左下)」のブログが、けっこう面白くなってきた(^_^)

システムトレーダー仲間に囲まれて、いろいろな活動や試みをやるのが前々からの夢だったので、少しずつ実現しているってところかな。

私のセミナーやDVD予約をしたことがある、もしくはmixiのコミュニティに参加している方で、ブログをお持ちであれば、ブログやホームページのアドレスをこちらで密告してちょm(_)m

ここにもおもしろいネタがたくさんあるね

前回のフォワードテストにおけるストップの最適化分布によって、ストップのパラメータで改善しようがないことが分かった。

そこで、ストップを一時的に無効にして、純粋なシグナルのみの堅牢性チェックをしてみようと思う。

これをフォワードテストとバックテストの両方で行う。

まずは、バックテストから。

バックテストExcelの各銘柄のストップ率(D5)を「100%」にすることで、ストップが無効となる。

ストップシグナル(W列)に”ストップ”が出なくなることを確認しよう。

それから、総損益によるシグナルの最適化を行い、分布をグラフにする。

そして、バックテストExcelと同じことを、フォワードテストExcelでも行う。

これらの結果は、以下の通り。

■インパクト21(9944)

バックテスト
インパクト21(9944)のバックテストの総損益シグナル最適化分布

フォワードテスト
インパクト21(9944)のフォワードテストの総損益シグナル最適化分布

■高速(7504)

バックテスト
高速(7504)のバックテストの総損益シグナル最適化分布

フォワードテスト
高速(7504)のフォワードテストの総損益シグナル最適化分布

■富士ソフト(9749)

バックテスト
富士ソフト(9749)のバックテストの総損益シグナル最適化分布

フォワードテスト
富士ソフト(9749)のフォワードテストの総損益シグナル最適化分布

■三菱自動車工業(7211)

バックテスト
三菱自動車工業(7211)のバックテストの総損益シグナル最適化分布

フォワードテスト
三菱自動車工業(7211)のフォワードテストの総損益シグナル最適化分布

結果の解説については次回。

ではでは(^_^y

この記事でワクワクしたら応援クリックよろしく!

気が向いたらこちらも応援してね

mixi日記でシステムトレード以外のネタを書いているのでどうぞ

| | コメント (0)

2007/02/07

バックテストの堅牢性チェック(再)

もしサンプルが正確でないと、シミュレーション結果も正確にはならない
魔術師たちの投資術、P336

何ヶ月もかかっちゃったけど、トレーディングシステム入門を実践で再現できるレベルまで読み込んだ。

具体的なExcelのプログラミングについて書かれてはいるものの、どのセルへの入力なのかが分かりにくかったので、キチンと理解するまで悩みまくった。

この分かりにくさは、魔術師たちの心理学を超えているかも知れない...

ただ、得られるものは、非常に大きい。

特に、データマイニングの考え方と、ストップの論理的なアプローチ、トレンドをシグナル/フィルターの両方に使うやり方は、とても参考になる。

魔術師たちの心理学を読みこなした後に、実践レベルの手引きとして読むと、とても相性がいいと思う。

次のレベルにステップアップしたい方はどうぞ。

こちらもステップアップしたいなぁ(^_^)

今回は、前回直した修正を踏まえて、バックテストの堅牢性チェックをやり直す。

...とはいっても、全部やり直す必要はなく、影響のある箇所だけ。

バックテストの堅牢性チェックのときに、最適化の基準として使っていたのが、シグナルは総損益、ストップはシャープレシオだった。

総損益は修正対象じゃないから、シャープレシオが絡むストップだけやり直せばいい。

■インパクト21(9944)

インパクト21(9944)のシャープレシオによるストップ最適化分布

■高速(7504)

高速(7504)のシャープレシオによるストップ最適化分布

※修正前と変わらなかった。

■富士ソフト(9749)

富士ソフト(9749)のシャープレシオによるストップ最適化分布

■三菱自動車工業(7211)

三菱自動車工業(7211)のシャープレシオによるストップ最適化分布

全体的に、修正前と比べて、あまり変わりがないみたい。

...という訳で、あまりにもあっさり終わってしまったから、フォワードテストのストップ最適化分布についてやっちゃった(^_^)

■インパクト21(9944)

インパクト21(9944)のシャープレシオによるストップ最適化分布(フォワードテスト)

■高速(7504)

高速(7504)のシャープレシオによるストップ最適化分布(フォワードテスト)

■富士ソフト(9749)

富士ソフト(9749)のシャープレシオによるストップ最適化分布(フォワードテスト)

■三菱自動車工業(7211)

三菱自動車工業(7211)のシャープレシオによるストップ最適化分布(フォワードテスト)

うーん、どれも見事なまでにひどいなぁ...

ストップのパラメータで改善のしようがない上、バックテストにはないレベルでの落ち込み方なので、シグナルがカーブフィッティングしていると見て間違いないだろう。

次回は、フォワードテストのシグナルについて検証してみる。

ではでは(^_^y

この記事でワクワクしたら応援クリックよろしく!

気が向いたらこちらも応援してね

mixi日記でシステムトレード以外のネタを書いているのでどうぞ

| | コメント (0)

2007/02/06

ABS関数にご注意

対象期間のチャートと処女データ期間のチャートを比較することで分かる別の興味深い事実は、12バーの手仕舞いの移動平均が両期間を通じて良好な結果を残していることである
トレーディングシステム入門、P156

昨年、システムトレード関連の本がポコポコ出始めたけど、最近は本屋にいっても新刊を見かけない。

昨年のライブドア暴落のあおりを受けて、いろいろな意味でダメになったシステムトレーダーが何人もいた影響かな?

裁量トレードの本も含めて、ここ数年、あまりいい内容とは言い難い本が乱発されていたので、他人事ながらいい教訓だなって思う。

同時に、システムトレードの真のパワーを知るには、最高の時期とも言える。

私もこのブログで株式のトレードシステムを作ってしまったので、無関係じゃなくなっちゃったしね(^o^)

マーケットが不安定な時期ほどランキングに出ているブログに依存しがちだが...他人の銘柄推奨は鵜呑みにしない方がいいだろう

今回は、前回作ったフォワードテストの結果について、いろいろ考察してみる...予定だったけど、プロフィットファクター、損益レシオ、最大ドローダウン%、シャープレシオの計算に致命的な間違いがあったので、これらを修正する。

間違いの元凶は、ExcelのABS関数。

以前、プロフィットファクターを作った際にいただいたコメントを参考に、”-1”を掛け算する代わりにABS関数を使うようにしていたけど、今回のフォワードテストのようにマイナスの値が出たとき、プラスで結果が出てしまい、おかしな結果になる。

やっぱ、新しいことをやるときは、ちゃんと検証しないとね...

...という訳で、バックテスト、フォワードテストの各4銘柄+S-Revengeの合計10箇所のプロフィットファクター、損益レシオ、最大ドローダウン%、シャープレシオの式を直す必要がある。

とりあえず、全てのセルが同じ位置にあることが幸いしていて、バックテストのExcelの全4銘柄とS-RevengeのシートをCtrlキーを押しながらクリックして全て選択状態にする。

この状態でセルを変更すると、全てのシートに変更が反映される。

プロフィットファクターは「=D26/D27*-1」、損益レシオは「=D36/D37*-1」、最大ドローダウン%は「=D44/D7*-1」、シャープレシオは「=D28/D44/D33*-1」と式を修正する。

これと同じ作業をフォワードテストのExcelでも行う。

これで修正は完了。

次回は、今回の修正を踏まえて、再度バックテストの堅牢性チェックからやり直す...はぁ(-_-u...

ではでは(^_^y

この記事でワクワクしたら応援クリックよろしく!

気が向いたらこちらも応援してね

mixi日記でシステムトレード以外のネタを書いているのでどうぞ

| | コメント (0)

2007/02/05

フォワードテスト

厳しい現実-人は望んだものを手に入れる
魔術師たちの投資術、P349

ここのところ、新しい投資/ビジネス案件で忙しかったのと、予定外の休日出勤が重なったせいか、ひさびさに家族とのんびり過ごした週末だった。

mixi日記にも書いたけど、家族との時間(独身なら恋愛の時間かな?)はとても大事。

家族(恋人)の未来のためにがんばって、結果的に離婚(失恋)したのでは、まるで意味がない。

だから、トレードに費やす時間軸も、そういったプライベートとして欲しい時間をベースに余った時間でやるように設計するといい。

たとえば、私は日中サラリーマンをやっているので、デイトレードはやらない(ただし、コンピュータが勝手にやっているが)けど、専業トレーダーになったとしても、家族との時間の方が大事だから、日中張り付くことはないし、やらなきゃいけないような状況はたぶん作らない。

どうせ独立するなら、1日1時間以内の仕事で済む仕組みを築いてから独立した方がいいと思う。

私の望むライフスタイルは、そんな感じ。

贅沢やわがままだと思われるかも知れないけど、今の時代はそれが誰にでもできるチャンスがあると思う。

ついでに1位が欲しいなぁ...なんてのは贅沢すぎるか(^_^)

今回は、処女データの取得とフォワードテストを行う。

パンローリングの相場データ ダウンロードページから、”株式 各銘柄日足場帳ダウンロード”をクリック。

日付を2006/8/1~2007/2/1と入れて、銘柄コードと個人情報を入れて、「ダウンロード」ボタンをクリックすると、約7ヶ月分のタブ文字区切りの4本値データが表示されるので、内容をコピーして、【銘柄コード】.tsvというファイルで保存する。

これを、9944(インパクト21)、7504(高速)、9749(富士ソフト)、7211(三菱自動車工業)の4銘柄分行う。

それから、これまで作ってきたS-Revengeを含むトレードシステムのExcelファイルをコピーして、フォワードテスト用のトレードシステムとする。

コピーが終わったら、フォワードテスト用Excelファイルを開き、インパクト21(9944)のシートから、日付と4本値(B58~F791)を削除。

ATR以降の列にエラーが出るが、とりあえずここでは無視。

次に、ダウンロードした9944.tsvファイルをExcelで開き(フォワードテスト用Excelのタイトルバーに.tsvファイルをドロップするのが便利)、日付と4本値(A2~E145)をコピーした後、フォワードテストに戻り、B58で右クリック、「形式を選択して貼り付け」を選択。

形式を選択して貼り付け

”値”を選択して、「OK」ボタンをクリック。

形式を選択して貼り付けその2

すると、B58~F201まで値が埋まり、システム評価もある程度出るようになる。

残りのエラーは、余計な行の削除と、日数に関する部分を修正することで対応できる。

202行~791行の灰色の部分をドラッグで選択し、右クリック、「削除」を選択。

不要な行の削除

D31(トレード終了日付)を「=B201」と修正すれば完了。

残りの3銘柄についても、同様に行う。

最後に、S-Revengeの202行~791行も削除し、D31を「=B201」と修正。

これでとりあえず、フォワードテストは完了。

次回は、今回作ったフォワードテストの結果について、いろいろ考察してみる。

ではでは(^_^y

この記事でワクワクしたら応援クリックよろしく!

気が向いたらこちらも応援してね

mixi日記でシステムトレード以外のネタを書いているのでどうぞ

| | コメント (0)

2007/02/02

各銘柄の堅牢性チェック

マトリックスが用意できると、図7.2のような面チャートを簡単に作成できる
トレーディングシステム入門、P148

昨日は、ブログを更新している最中にソファーで居眠りしてしまい、気付いたら朝だった(-_-u...

やたらと首が痛い(T_T)

前の日、徹夜だったせいかな?

まぁ、徹夜するぐらい夢中になれるものがあることは、幸せな証拠かも知れないなぁ。

ランキングで応援してもらうこともちょっと幸せ(^_^)

今回は、各銘柄の堅牢性チェックを行う。

チェックをはじめる前に、ポジションサイズが銘柄毎にバラバラなので、全銘柄のリスク率をインパクト21(9944)と同じ1.16%に統一しておこう。

さて、堅牢性のチェックの仕方だが、まず現在の過去データ(2003/8/1~2006/8/1)のシグナルのパラメータを総損益で最適化したものの分布を等高線グラフでチェックし、ストップのパラメータをシャープレシオで最適化したものの分布を折れ線グラフでチェックする。

それから、2006/8/1~現在までのデータを処女データとしてフォワードテストし、過去データと同じく、シグナルのパラメータを総損益で最適化したものの分布を等高線グラフでチェックし、ストップのパラメータをシャープレシオで最適化したものの分布を折れ線グラフでチェックする。

そして、バックテスト、フォワードテストで良いパフォーマンスが出ている共通のパラメータ設定がどのあたりに分布しているかをチェックすれば、過去で最適化されたものが未来に利用できるかという堅牢性を”ある程度”チェックできる。

”ある程度”と言ったのは、その結果が必ずしも未来を約束するものとは限らないから。

マーケットの性格や性質は、ある日突然変わることもあれば、じわじわと日々変わっていくこともある。

そういった変化によって、トレードシステムが使い物にならなくなるときもある。

1度作ったトレードシステムが、永遠に機能するというのは幻想以外の何者でもない。

...というよりは、あらゆることに、”いつまでも”と”絶対”というのは、そもそもあり得ない。

ダーウィンの進化論でも、生き残る種は、変化に適応できる種だと言っているように、あらゆるものは変化し続けている。

世の中、諸行無常なのだ...

では、具体的な堅牢性チェックに移ろう。

最初は、シグナルのパラメータと総損益の最適化の分布を等高線グラフで出す。

細かい手順は、以前行った分布の出し方を参考に。

次に、ストップのパラメータとシャープレシオの最適化の分布を折れ線グラフで出す。

細かい手順は、以前行った分布の出し方を参考に。

どちらも過程は省略して、結果をまとめると、以下のような感じ。

等高線グラフは、横軸が短期MA、縦軸が長期MA。

ちなみに、等高線グラフの作り方がマズかったみたいで、範囲が1~20のはずが、1~21になっているので、縦横共に1引いてみて欲しい。

■インパクト21(9944)

インパクト21(9944)のシグナル総損益最適化分布

短期MA17、長期MA13(右上)で最大の利益を出しているが、その周辺も利益が高めなので、割と安定している感じかな。

インパクト21(9944)のストップシャープレシオ最適化分布

シャープレシオ最大の4.5%の周辺は、少しキツめの山と谷がある。

17%~25%の辺りがそれなりに安定していて、26.5%以上はこの過去データにおけるMAE(最大逆行幅)でこちらも割と高いパフォーマンスを出している。

■高速(7504)

高速(7504)のシグナル総損益最適化分布

短期MA20、長期MA7(右下)の周辺に利益が広めに分布している。

他にも、短期MA18、長期MA15(右上)の周辺も利益が固まっている。

短期MA20以上だとどうなるかが多少期待できる。

高速(7504)のストップシャープレシオ最適化分布

あまりガタガタせず、三角形に分布している。

シャープレシオ最大の13%を超えると、なだらかに降りているので、降りている途中ぐらいだと安定しそう。

30%まで平らになっているところがないことから、MAEはもっと大きいことが予想される。

■富士ソフト(9749)

富士ソフト(9749)のシグナル総損益最適化分布

一見、広い利益面積(左上)だが、全体で見ると、損失面積が大部分を占めている。

深い損失が影響して、価格の刻みが大き過ぎるので、分かりづらい。

もう少し細かい価格の刻みでチェックした方がいいかも知れない。

富士ソフト(9749)のストップシャープレシオ最適化分布

7%が最大だが、前後の谷が険しい。

20.5%以上がMAEだが、2番目に高いシャープレシオになっている上、周辺が平らなので、こちらの方が安定しているかも。

■三菱自動車工業(7211)

三菱自動車工業(7211)のシグナル総損益最適化分布

短期MA4、長期MA11(左中)が最大の利益で周辺も利益が集まっている。

他にも、短期MA3、長期MA18(左上)や短期MA7、長期MA18(中上)、短期MA9、長期MA12(中心)、短期MA15、長期MA18(右上)にも利益が集中している。

三菱自動車工業(7211)のストップシャープレシオ最適化分布

MAEである20.5%以上がシャープレシオ最大かつ平らで、バランスがいいことが分かる。

次回は、処女データの取得とフォワードテストを行う。

ではでは(^_^y

この記事でワクワクしたら応援クリックよろしく!

気が向いたらこちらも応援してね

mixi日記でシステムトレード以外のネタを書いているのでどうぞ

| | コメント (1)

« 2007年1月 | トップページ | 2007年3月 »