プログラミング

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日記でシステムトレード以外のネタを書いているのでどうぞ

| | コメント (0)

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/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/01/31

各銘柄のストップ最適化

ある月はうまく波に乗った株のデイトレーダーが、翌月にはまったく優位性を失うということだってあり得る
魔術師たちの投資術、P313

昨日は帰りが遅かったけど、無事ビリーズ・ブートキャンプの最終プログラム終了。

とりあえず\5,000のキャッシュバック用紙を書いて送った。

用紙の中に「テレビ出演OKか?」みたいなアンケートがあったんで、とりあえずOKでチェック。

これがテレビ初デビューになったら、ちょっと面白いかも(^_^)

さーて、今日から2週目突入!

いつのまにかトップ3に入ってた(^o^)

今回は、各銘柄の堅牢性チェックを行おうと思ったけど、まずストップの最適化をした方が、チェックが2度手間にならなくて済みそうなので、ストップの最適化をやることにした。

テーブルを使ったシャープレシオでの最適化のやり方を各銘柄毎に行う(インパクト21は前回と同じ結果なので省略)。

過程は省略して、システム評価と利益曲線をまとめると、以下のような感じ。

■高速(7504)

シャープレシオでストップ最適化後の高速(7504)のシステム評価

シャープレシオでストップ最適化後の高速(7504)の利益曲線

■富士ソフト(9749)

シャープレシオでストップ最適化後の富士ソフト(9749)のシステム評価

シャープレシオでストップ最適化後の富士ソフト(9749)の利益曲線

■三菱自動車工業(7211)

シャープレシオでストップ最適化後の三菱自動車工業(7211)のシステム評価

シャープレシオでストップ最適化後の三菱自動車工業(7211)の利益曲線

これでS-Revengeのシステム評価と利益曲線を見てみる。

シャープレシオでストップ最適化後のS-Revengeのシステム評価

シャープレシオでストップ最適化後のS-Revengeの利益曲線

IRR18.42%、最大ドローダウン5.28%、シャープレシオ348.63%。

カーブフィッティングしている気もするが、まぁ今は問わないでおこう。

次回こそ、各銘柄の堅牢性チェックを行う。

ではでは(^_^y

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

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

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

| | コメント (2)

2007/01/30

各銘柄のシグナル最適化

マーケットの変化に合わせて自分も変わらなければならないのである
魔術師たちの投資術、P314

深夜帰宅と頭痛のため、ビリーズ・ブートキャンプできず(T_T)

今日も帰りが遅いが、果たして実行なるか!?

おかげさまで週間INがかなり上がってきたよ(^o^)

今回は、各銘柄のシグナルの最適化を行う。

テーブルを使った総損益での最適化のやり方を各銘柄毎に行う(総損益で評価するので、インパクト21もやり直す)。

過程は省略して、システム評価と利益曲線をまとめると、以下のような感じ。

■インパクト21(9944)

総損益で最適化後のインパクト21(9944)のシステム評価

総損益で最適化後のインパクト21(9944)の利益曲線

■高速(7504)

総損益で最適化後の高速(7504)のシステム評価

総損益で最適化後の高速(7504)の利益曲線

■富士ソフト(9749)

総損益で最適化後の富士ソフト(9749)のシステム評価

総損益で最適化後の富士ソフト(9749)の利益曲線

■三菱自動車工業(7211)

総損益で最適化後の三菱自動車工業(7211)のシステム評価

総損益で最適化後の三菱自動車工業(7211)の利益曲線

これでS-Revengeのシステム評価と利益曲線を見てみる。

総損益で最適化後のS-Revengeのシステム評価

総損益で最適化後のS-Revengeの利益曲線

IRR15.19%、最大ドローダウン5.99%、シャープレシオ253.41%か...

なかなかいい値が出るようになったんじゃない?(^_^)

ちなみに、堅牢性は一切チェックしていないので、次回は各銘柄の堅牢性をチェックする。

ではでは(^_^y

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

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

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

| | コメント (2)

2007/01/29

システムのリスク評価

リスク・リワードの関係と期待値を完全に理解できるまでは、絶対に戦略を実行に移さないということが重要になる
魔術師たちの投資術、P382

ビリーズ・ブートキャンプ5日目。

基礎編、応用編が終わり、腹筋プログラムに入った。

今までは55分ぶっ通しのハードなエクササイズだったけど、腹筋プログラムからは30分ちょいになるので、終わった後も次の日も結構ラクな感じ。

そういえば、ビリーズ・ブートキャンプがどんなものかをこれまで一言も説明していなかったけど、深夜のテレビショッピングをキャプチャしたものがYouTubeにあったので、こちらをどうぞ(会社とかで見ると「プッ!」って笑ってしまうのでご注意を)。

ビリーさんの名言(笑)を聞くために買う人も多いみたい。

私もその1人だけど(^_^)

金融・投資ランキングには、個性的な人がたくさんいて面白いなぁ

今回は、システムのリスク評価...ドローダウンとシャープレシオ、フラット期間を追加する。

ちなみに、ドローダウン、シャープレシオ、フラット期間の意味については、システムトレード用語をどうぞ。

まず、インパクト21(9944)のシートでB44~D47をコピーして、S-RevengeのB44にペースト。

このままだと、最大ドローダウンとフラット期間が集計されていない上、参照位置も間違っているため、エラーが出る。

という訳で、G53に「=MIN(G58:G791)」と入力して最大ドローダウンを集計して、H52に「=MAX(H58:H791)」と入力してフラット期間を集計する。

最大ドローダウンとフラット期間のための集計

その後、D44を「=G53」、D47を「=H52」に修正する。

これで出来上がり。

システムのドローダウン

最大ドローダウン%が、資金の7.77%と、まだまだリスク許容量に余裕がありそうな感じ。

でも、シャープレシオが100%を切っているので、リスクの割には見返りが少なすぎる。

フラット期間も151日と、ドローダウン後のダメージ回復がやたらと遅いから、心理的なプレッシャーも大きそう。

ようするに、今のS-Revengeは、「こりゃ使えんわなぁ...」という程度のもの(まぁ、出す前から何となく分かってはいたが)。

さて、ようやくS-Revengeのシステム評価が一通り揃ったので、次回からは、各銘柄のチューニングを行う。

ではでは(^_^y

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

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

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

| | コメント (1)

2007/01/26

システムの期待値

期待値と頻度を掛けた数値を算出しておけば、複数の戦略を利益率で比較できる
魔術師たちの投資術、P272

ビリーズ・ブートキャンプも3日目。

かなり身体が慣れてきて、筋肉痛があまりない。

それに、だいぶ筋肉が戻ってきたので、結構嬉しい。

でも、今日から基礎編から応用編に入るので、これまたキツい内容になるかも...

明日、起きれるかなぁ?(-_-u

ランキングを引っ越してみた

今回は、システムの期待値を追加する。

まず、前回修正したばかりの損益分布をS-Revengeにも追加する。

インパクト21(9944)のシートに行き、J2~R49をコピー、S-RevengeのJ2にペースト。

そのままだと、参照先が異なるせいで、エラーが出まくるので、修正する。

「幅毎利益回数」の参照先となる「利益取引」のセルは、S-RevengeではI列なので、K3~K48の参照列をI列に修正する。

具体的には、K3は「=COUNTIF(I$58:I$791, "<"&(J3+J4)/2)」、K4は「=COUNTIF(I$58:I$791,">="&(J3+J4)/2)-COUNTIF(I$58:I$791,">="&(J4+J5)/2)」、K5~K47はK4をコピーしてペースト、K48は「=COUNTIF(I$58:I$791,">="&(J47+J48)/2)」と修正。

S-Revengeの利益分布

同様に、「幅毎損失回数」の参照先となる「損失取引」のセルは、S-RevengeではJ列なので、P3~P48の参照列をJ列に修正する。

P3は「=COUNTIF(J$58:J$791, ">"&(O3+O4)/2)」、P4は「=COUNTIF(J$58:J$791,"<="&(O3+O4)/2)-COUNTIF(J$58:J$791,"<="&(O4+O5)/2)」、P5~P47はP4をコピーしてペースト、P48は「=COUNTIF(J$58:J$791,"<="&(O47+O48)/2)」と修正。

S-Revengeの損失分布

これが終わったら、システムの期待値を追加する。

インパクト21(9944)のシートのB39~D40をコピーして、S-RevengeのB39にペースト。

これで、期待値と1円あたりの期待値が出せる。

ちなみに、期待値は正しくは「平均トレード期待値」なので、S-Revengeと各銘柄のB39を「平均トレード期待値」に変更しておこう。

システムの期待値

平均トレード期待値は、\4,088.46なので、1トレードするごとに資金の0.05%(= \4,088.46 ÷ \8,000,000)が増えている計算になる。

計算上では、100トレードで5%のプラスなので、1年を250日としたとき、2~3日に1回のトレードチャンスがあれば、年利回り5%。

...んー、やっぱイマイチだなぁ。

1円あたりの期待値は、\3.59。

これに1年あたりの総トレード回数を掛け算すると、182回 ÷ 3年 × \3.59 = \217.79となる。

これをインパクト21(9944)単品の1円あたりの期待値と比較してみよう。

インパクト21(9944)の1年あたりの期待値は、73回 ÷ 3年 × \3.3 = \80.3。

S-Revengeの方は資金がインパクト21(9944)の4倍なので、\217.79 ÷ 4 = \54.45。

このように、期待値に総トレード数を乗じて比べると、S-Revengeよりもインパクト21(9944)の方が良いシステムということが分かる。

まぁ、S-Revengeは、まだ残り3銘柄を調整していないので、フェアな比較とは言えないところだが。

次回は、システムのドローダウンを追加する。

ではでは(^_^y

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

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

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

| | コメント (0)

2007/01/25

損益分布の修正

間違いの多くは、ストレスにさらされたときに起こる。
魔術師たちの投資術、P356

ビリーズ・ブートキャンプも2日目。

筋肉痛はひどいが、だいぶ身体が慣れてきたみたいで、動けないほどではない。

それに、エクササイズをはじめてから、なんだか気力が充実してきた気がする。

魔術師たちの心理学セミナーDVDでも言っている通り、やっぱ身体と心はつながっているんだねぇ。

...という訳で、今トレードで負けているあなた、まずはその「負けてる身体の動かし方」を直すといいと思うよ。

といっても、ビリーズ・ブートキャンプはトレードに支障が出そうなほどハードでキツいので、日ごろ運動不足になりがちなトレーダーは、もう少し軽めのエクササイズからはじめた方がいいかも知れない...

ランキングも身体の動かし方で変わるか!?

今回も以前の計算式の間違い直しで、損益分布の利益回数合計(K49)と勝ちトレード回数(D22)、損益分布の損失回数合計(P49)と負けトレード回数(D23)がそれぞれイコールになっていないので、これを修正する。

まず、以前作った損益分布の価格帯が各銘柄の損益とえらく離れているので、価格帯を修正する。

各銘柄のAG52に「=MAX(AG58:AG791)」、AI52に「=MIN(AI58:AI791)」と入れると、1トレードの最大利益も最大損失も20万前後で収まる感じなので、\5,000刻みぐらいに修正すればいいかなぁ。

J4に「5000」、J5に「10000」と入れ、J4~J5をコピーした後、J6~J48にペースト。

これで、\5,000刻みの利益用価格帯ができあがる。

同じように、O4に「-5000」、O5に「-10000」と入れ、O4~O5をコピーした後、O6~O48にペーストすれば、-\5,000刻みの損失用価格帯ができあがる。

さて、問題になっている計算式の間違いを修正しよう。

K4を見直すと、「=COUNTIF(AG$58:AG$791,">="&(J3+J4)/2)-COUNTIF(AG$58:AG$791,">"&(J4+J5)/2)」となっている。

これは、J3が\0、J4が\5,000、J5が\10,000だとすると、最初のCOUNTIFで\2,500以上の利益の数を求め、最後のCOUNTIFで\7,500を超える利益の数を求めている。

つまり、\2,500~\7,500の利益の数を求めていることになる。

次に、K5を同じように見直すと、\7,500~\12,500の利益の数を求めていることになる。

...ということは、\7,500をダブってカウントしていることになり、その価格帯の利益があるときは、損益分布の利益回数合計と勝ちトレード回数が合う訳ない!

という訳で、K4の式は、「=COUNTIF(AG$58:AG$791,">="&(J3+J4)/2)-COUNTIF(AG$58:AG$791,">="&(J4+J5)/2)」という感じに修正することになる。

K5~K47の式も同じように間違っているので、K4をコピーして、K5~K47にペースト。

これで、損益分布の利益回数合計(K49)と勝ちトレード回数(D22)が一致するようになった。

同様に損失の方も見直すと、P4は-\2,500~-\7,500、P5は-\7,500~-\12,500の損失の数を求めているので、P4の式を「=COUNTIF(AI$58:AI$791,"<="&(O3+O4)/2)-COUNTIF(AI$58:AI$791,"<="&(O4+O5)/2)」と修正し、P4をコピー、P5~P47にペーストして直す。

これで、損益分布の損失回数合計(P49)と負けトレード回数(D23)も一致するようになった。

あとは、以上の修正を残り3銘柄にも反映する。

J3~R49をコピーした後、残り3銘柄のJ3にペースト。

これで、修正は完了。

■インパクト21(9944)

インパクト21(9944)の利益分布

インパクト21(9944)の損失分布

■高速(7504)

高速(7504)の利益分布

高速(7504)の損失分布

■富士ソフト(9749)

富士ソフト(9749)の利益分布

富士ソフト(9749)の損失分布

■三菱自動車工業(7211)

三菱自動車工業(7211)の利益分布

三菱自動車工業(7211)の損失分布

ふぅ、こういう計算式のミスは、見つけるのも、直すのも大変だなぁ...

ミスを見つけてくれたみなさま、本当にありがとうm(_)m

次回は、本線に戻って、システムの期待値を追加する。

ではでは(^_^y

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

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

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

| | コメント (0)

2007/01/23

損益の間違いを直す

もし間違いがあれば、修正の手順に入る必要がある。まず、自分が間違っていたことを認める。これは自己責任と同じ意味を持つ。もし外部要因のせいにしているのであれば、間違いは直せない。それどころか、繰り返す可能性が高い。
魔術師たちの投資術、P355

このブログを読んで、トレードシステムを作り始める方がじょじょに増えてきたみたいで、とても嬉しい!(^o^)

それにともなって過去の記事のケアレスミスもたくさん発覚(^_^u...

チェックしてくれたみなさま、フォローありがとうm(_)m

質問をいただいたみなさま、昔の記事になると、チェックや修正に時間がかかるかも知れないけど、気長にお待ちを。

だいぶネタも蓄積されてきたので、今のポートフォリオシステムがひと段落したあたりで時間を作って、イチから記事を見てシステムが構築できるかどうかチェックしてみようかな。

そうそう、実際にお金を投下する際は、記事を妄信するのではなく、数式の十分な検証と理解をしておくことと、「トレードシステム通りに相場は動かない」ということを念頭に入れてトレードすることをお忘れなく。

こちらのクリックもお忘れなく(なんちって)(^_^)

今回は、ithさんからフォローのあった各銘柄の「損益」と「損益分布」の計算間違いを修正する。

まず、損益(T列)を修正。

ポジションサイズ(P列)の参照先が、当日を参照していたので、前日のポジションサイズを参照するように修正。

インパクト21(9944)のT79(損益)に「=IF(R79="", "", IF(L77=1, (R79-Q78)*P78, IF(L77=-1, (Q78-R79)*P78, "")))」と入れる。

その後、T79をコピーして、T80~T791にペースト。

次に、幅毎利益回数(K列)を修正。

最低価格と最高価格の計算が間違っていたので修正。

K3に「=COUNTIF(AG$58:AG$791, "<"&(J3+J4)/2)」と入れる。

K48に「=COUNTIF(AG$58:AG$791, ">="&(J47+J48)/2)」と入れる。

最後に、幅毎損失回数(P列)を修正。

こちらも最低価格と最高価格の計算が間違っていたので修正。

P3に「=COUNTIF(AI$58:AI$791, ">"&(O3+O4)/2)」と入れる。

P48に「=COUNTIF(AI$58:AI$791,"<="&(O47+O48))」と入れる。

これで修正は完了。

修正前と修正後の違いは、以下の通り。

■インパクト21(9944)

修正前
修正前のインパクト21(9944)のシステム評価

修正後
修正後のインパクト21(9944)のシステム評価

■高速(7504)

修正前
修正前の高速(7504)のシステム評価

修正後
修正後の高速(7504)のシステム評価

■富士ソフト(9749)

修正前
修正前の富士ソフト(9749)のシステム評価

修正後
修正後の富士ソフト(9749)のシステム評価

■三菱自動車工業(7211)

修正前
修正前の三菱自動車工業(7211)のシステム評価

修正後
修正後の三菱自動車工業(7211)のシステム評価

おや?損益分布の利益回数合計や損失回数合計が、勝ちトレード回数や負けトレード回数とイコールにならないなぁ...

という訳で、次回は、この辺りの修正をしようと思う。

ではでは(^_^y

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

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

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

| | コメント (0)

2007/01/19

システムの損益分析

この比較からは、検討している戦略にどのぐらいの実行機会があるかということの重要性が分かる。
魔術師たちの投資術、P271

前回のp.s.でも書いたけど、正月の連休中、毎日おいしいものを食べてしまったことと、通勤中の運動(10,000歩は歩いている)がなかったせいで、筋肉がゴッソリ落ちて、いらない肉がたくさんついてしまった(-_-u...

...という訳で、前々からテレビ通販で欲しかったビリーズ・ブートキャンプで筋肉を取り戻そうと思ったところ、時を同じくして私のマイミクもビリーズ・ブートキャンプをはじめていた(笑)。

こんなシンクロニシティも、インターネットあってのものだなぁ。

アクセス数は上がり続けているけどランキングはイマイチ?応援よろしく~m(_)m

今回も前回の続きでプロフィットファクターや損益レシオなどのシステムの損益分析の追加をしよう。

今回の作り込みも、基本的にはコピー&ペーストだけなので、実に簡単なのだが、前準備が必要。

各銘柄のB26~D26(総損益)をカット(切り取り)して、どこか適当な空いているところにペーストして一時的に移動した後、B27~D28(勝ちトレードの総利益と負けトレードの総損失)をカットして、B26にペーストし、適当なところに移動した総損益を再度カットして、B28にペースト。

これは、勝ちトレードの総利益、負けトレードの総損失と総損益を入れ替えるための作業。

ま、そもそも各銘柄のシステム評価項目を作ったときに、並べ方が間違っていたのを、ここで直しているだけなんだけどね(^_^)

損益関係の評価項目の並べ替え

4銘柄分の作業が終わったら、インパクト21(9944)のシートのB35~D38をコピーして、S-RevengeのB35にペースト。

これで、プロフィットファクター、平均損益、損益レシオが出せる。

プロフィットファクターの計算式損益レシオの計算式は、過去の記事を参考に。

システムの損益分析

損益レシオは216.28%と悪くない値が出ているのに、プロフィットファクターは139.60%とイマイチな感じ。

これは、平均の利益と損失のバランスはいいが、全体的な損益がたいしたことないことを意味する。

平均損益が悪くなければ、取引を続ければ続けるほど利益が伸びていく訳だから、平たく言えば取引頻度が低いってこと。

実際、総トレード回数を見ると、3年で181回となっている。

平均すると年間60回しかトレードしていないので、1年を250日としたとき4~5日に1回の割合。

短期システムとしては、取引頻度がちょっと低いので、もっと取引頻度を上げることが、システム改善の1つの案になる。

現実のトレードでは、勝率や利回り、期待値だけでシステムを正確に評価することはできない。

それらの指標が取引頻度によってどのぐらいレバレッジがかかるかということが重要なカギになるのだ。

次回は、システムの期待値を追加する。

ではでは(^_^y

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

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

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

| | コメント (0)

2007/01/18

システムのトレード期間

いずれにしても、2~3年で経済的自立を確保する方法を習得することができるだろう。
魔術師たちの投資術、P15

私の人生を劇的に変えたソースの自宅学習キット、「ソース・セルフスタディ・キット」40,950円(税込)を持っている方限定で、スキー合宿ツアーをやろうとかなぁと計画中。

このツアーは、去年の今ぐらいに、ソースを教えてくれた親友と一緒に行った、スキーとソースからこの世の法則を学び、人生を見直す一泊二日のスキー旅行と同じもの。

私の人生が劇的に変わるきっかけとなったこの旅行を、今度は私からあなたに伝えられたらいいな。

私がこの1年、どうやってソースを元に実績を出していったかについても、コッソリと暴露予定。

参加資格は、「ソース・セルフスタディ・キット」を持ってこれて、スキー(スノボも可)で初級コースがラクラク滑れる方限定。

3月初旬にツアー予定なので、今セルフスタディキットを持っていないあなたでも、今すぐ購入して始めれば、1ヶ月半の猶予があるので、たぶん間に合うはず...私も去年、そんなペースで間に合ったから(^o^)

中級コースが滑れない人は...1ヶ月半で滑れるようになってね(^_^u

まだ宿を予約していないけど、どのぐらい人数がいるか知りたいので、「行ってみたい!」というあなたは、こちらからお申し込みどうぞ~

スキー・スノボのランキングって意外と静かだなぁ

今回も、前回の続きでシステムのトレード期間の追加。

今回の作り込みは、コピー&ペーストだけなので、実に簡単。

インパクト21(9944)のシートのB30~D34をコピーして、S-RevengeのB30にペースト。

これだけで、トレード期間とIRRが出せる(参考までに、IRRの計算式についてはこちら)。

システムのトレード期間

トレード期間は、基本的に各銘柄のものと同じで変わりはないので、IRR(内部収益率)だけをチェックしよう。

IRRが4.49%、つまり年利回り4.49%ということなので、下手なファンドよりはまともかな(ドローダウンやシャープレシオを見ていないので、堅牢性については何とも言えないが)。

いずれにせよ、このレベルじゃぁシステムトレードに時間をかけるのはツライところだな。

あと3~4回ぐらいで、システム評価が終わり、各銘柄の調整が始まるので、それまでガマン、ガマン。

次回は、システムの損益分析を追加する。

ではでは(^_^y

p.s.正月の食べ過ぎと運動不足のせいで、筋肉が落ちて、いらない肉がたくさんついてしまったので、前々からテレビ通販で欲しかったビリーズ・ブートキャンプでシェイプアップすることにした(^_^)

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

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

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

| | コメント (0)

2007/01/17

システムの損益

損失が出ている取引をやめ、利益が出ているものを育てていくことを続けていれば、ポートフォリオが順調に増えていくというのは理に適っている。それなのに、なぜ多くの人はそれをしないのだろう。
魔術師たちの投資術、P253

最近、昼間の仕事の中で、ビジネスのことを教える機会が増えている。

それに、仕事の内容も好きなことしかしていないし、付き合いたい人とばかり付き合うようになっている。

一言で言えば、「とても自由だ」。

こうなってくると、サラリーマンと副業は、時間拘束があるぐらいしか違いがないなぁ。

いやはや、ソースさまさまだな。

人は、たった一冊の本で、劇的に変われるものだねぇ...って昨日と同じオチじゃん(^_^)

ブログランキングも多少私の人生を変えたっけ

今回も、前回の続きでシステム評価の追加。

損益に関するシステム評価を追加しよう。

まず、システム全体の資金を追加する。

C7に「資金」、D7に「='インパクト21(9944)'!D7+'高速(7504)'!D7+'富士ソフト(9749)'!D7+'三菱自動車工業(7211)'!D7」を入れればOK。

システムの資金

それから、システムの損益を追加する。

まず、I53に「=SUM(I58:I791)」、J53に「=SUM(J58:J791)」を入れて、「勝ちトレードの総利益」と「負けトレードの総損失」を計算しておく。

次に、B26に「勝ちトレードの総利益」、B27に「負けトレードの総損失」、B28に「総損益」、B29に「CCR」を入れ、D26に「=I53」、D27に「=J53」、D28に「=D26+D27」、D29に「=D28/D7」を入れる(CCRの計算方法についてはこちら)。

システムの損益

3年で13.5%の利益かぁ...

まぁ、外貨預金や利回りの悪い不動産よりは、全然いいぐらいってところか。

次回は、システムのトレード期間を追加する。

ではでは(^_^y

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

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

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

| | コメント (2)

2007/01/16

システムのトレード回数と勝率

不動産投資戦略のなかには1年に3~4回しかチャンスがないものもある一方、株や先物なら1年に200回のチャンスもあり得る。
魔術師たちの投資術、P270

一角さんがシステムトレードの利益率は50%が低くて毎年100%ならOKという記事を書いているのを見て、私もそのぐらいが普通の基準になっているなぁと改めて気付く。

1年半ぐらい前は、年利回り15~20%のヘッジファンドを見て、「すげー!」って感動していたけど、今となっては、システムトレードと未公開株は1,000%~10,000%、IPOは200~300%、私募債は40%~60%、自分で企画する投資プロジェクトは40%オーバー、不動産投資も30%強と、明らかに利回りのレベルが別世界に入っているなぁ(こりゃまるで神田さんのエロ本ネタと一緒だな)。

前にmixi日記でも書いたけど、人は1~2年あれば、劇的に変われるものだねぇ。

ランキングも劇的に上昇する予感?

今回は、前回の続きでシステムの利益日数と損失日数を追加する...つもりだったけど、よくよく考えたら、複数銘柄なので、利益日数と損失日数は計算できないじゃないか(^_^u...

...という訳で、今回から、システム評価を追加しよう。

最初は、システムのトレード回数と勝率の追加。

まず、利益取引の回数と損失取引の回数をカウントするために、I52に「=COUNT(I58:I791)」、J52に「=COUNT(J58:J791)」を入れる。

システムの利益取引と損失取引をカウント

それから、B22に「勝ちトレード回数」、B23に「負けトレード回数」、B24に「総トレード回数」、B25に「勝率」を入れ、D22に「=I52」、D23に「=J52」、D24に「=D22+D23」、D25に「=D22/D24」を入れる(勝率の計算方法についてはこちら)。

システムの勝率

現時点では、勝率が39.23%でも、一応利益が出ることに注目。

...ただし、800万円を3年間運用して約100万円のプラスなので、システムを作る労力の方がもったいない感じだが(-_-u...

でも、まだこのシステムは、各銘柄の調整が1/4しか終わっていないことを思い出して欲しい。

残り3銘柄の調整によって、どこまでパフォーマンスが伸びるかをお楽しみに!

次回は、システムの損益を追加する。

ではでは(^_^y

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

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

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

| | コメント (0)

2007/01/15

システムの勝敗取引

見込める利益と起こりうる損失を天秤にかけて、その比率に納得できれば実行する。
魔術師たちの投資術、P247

具体的なトレードシステムの開発方法を記事にするにあたって、どこまで公開していいものか悩んでいたんだけど、トレーディングシステム入門を読んで、「ここまでやっちゃっていいんだ!」って確信が持てた。

結構な部分まで公開することになるけど(ただし、自分の使っているトレードシステムそのものは絶対に公開しないが)、きっとオープンにすればするほど、自分の知識とノウハウが向上するに違いない。

ブログ、セミナー、勉強会、ビデオ、ebookなども含めて、ワクワクしながらマイペースにリリースしていけたらいいなぁ。

頻繁に記事を書いていたらだんだん上がってきた

今回は、前々回からの続きでシステムの利益取引と損失取引を追加する。

...と、その前に、利益取引や損失取引を計算するために全銘柄の「ストップ込損益」合計を作るのを忘れていたので、累積損益の前列に追加しておこう。

C列最上部の”C”と書かれた灰色の列表示枠で右クリックをして、「挿入」を行えばOK。新しいC列が追加される。

C51に「ストップ込損益」を入れ、C58に「='インパクト21(9944)'!AA58+'高速(7504)'!AA58+'富士ソフト(9749)'!AA58+'三菱自動車工業(7211)'!AA58」を入れ、C58をコピー、C59~C791にペースト。

すると、#VALUE!が連発するので、元のセルを修正する必要がある。

インパクト21(9944)のシートに行き、ストップ込損益であるAA58の式を「=IF(L56=L57, IF(Z58="", , Z58-$D$2), IF(Z58="", IF(X57=0, , T58-$D$2), IF(X57=0, Z58-$D$2, T58+Z58-$D$2)))」に修正。

修正前との違いは、空文字列("")を空欄に変更しただけ。

これを、高速(7504)、富士ソフト(9749)、三菱自動車工業(7211)の全てに行えば、S-Revengeのストップ込損益がきれいに表示されるようになる。

システムのストップ込損益

それから、I51に「利益取引」、J51に「損失取引」を入れる。

利益取引は、I58に「=IF(D58>0, D58, "")」を入れ、I58をコピー、I59~I791にペースト。

損失取引は、J58に「=IF(D58<0, D58, "")」を入れ、J58をコピー、J59~J791にペースト。

なお、利益取引と損失取引の計算式の詳細は、以前各銘柄で説明したところを参考にどうぞ(まぁ見るまでもなく簡単な式ではあるが)。

システムの利益取引と損失取引

次回は、システムの利益日数と損失日数を求める。

ではでは(^_^y

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

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

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

| | コメント (4)

2007/01/12

システムのドローダウン

マイペースなシステムトレーダー新年会を1/13(土)に開催予定。まっ昼間から新宿の飲み屋で「2007年のシステムトレード目標」をみんなで作って、その後はべろんべろんになって野望でも語り合っちゃおう(笑)。締切は少し伸びて前日1/12(金)の18時まで。参加費用5,000円。
→大盛況のうちに終了。お集まりいただいたみなさま、ありがとう!

120回トレードしたあとの平均利益は96Rだが、89Rのドローダウンが出る可能性もわずかながらあることに耐えられるかどうか、もしそれが無理ならば耐えられないシステムはほかにもたくさんあるだろう。まず、このことを自問しておかなければ、トレードを始めても早々とやめることになって、せっかくの安全な戦略が危険なものに変わってしまう。
魔術師たちの投資術、P335

そろそろ確定申告の準備をはじめないといけない。

利益が出たあなたも、損失が出たあなたもお忘れなく(^_^)

去年は、3/15...つまり、確定申告の最終日ギリギリに出しにいったので、とんでもなく大変だった...(余談だが、質問コーナーにいた税理士さんはかなり大変そうだった)

今年は、今月中に用意できるといいなぁ。

経理・会計・税金のランキングでも見てみようかな

今回は、前回からの続きでシステムのドローダウンと回復期間を作る。

ドローダウンを計算するための最大累積損益も計算する。

...と、その前に、ドローダウンを計算するために全銘柄の「値洗い損益」合計を作るのを忘れていたので、前回作った累積損益の前列に追加しておこう。

C列最上部の”C”と書かれた灰色の列表示枠で右クリックをして、「挿入」を行えばOK。新しいC列が追加される。

C51に「値洗い損益」を入れ、C58に「='インパクト21(9944)'!S58+'高速(7504)'!S58+'富士ソフト(9749)'!S58+'三菱自動車工業(7211)'!S58」を入れ、C58をコピー、C59~C791にペースト。

これで値洗い損益は完了。

システムの値洗い損益

その後、E51に「最大累計損益」、F51に「ドローダウン」、G51に「回復期間」を入れる。

最大累計損益は、E58に「=IF(E57>D58,E57,D58)」を入れ、E58をコピー、E59~E791にペースト(最大累計損益の計算式の詳細は以前各銘柄で説明したところを参照)。

ドローダウンは、F58に「=IF(D58-E58+C58>=0, 0, D58-E58+C58)」を入れ、F58をコピー、F59~F791にペースト(ドローダウンの計算式の詳細は以前各銘柄で説明したところを参照)。

回復期間は、G58に「=IF(F58<0, G57+1, 0)」を入れ、G58をコピー、G59~G791にペースト(回復期間の計算式の詳細は以前各銘柄で説明したところを参照)。

システムのドローダウン

できあがったドローダウンをグラフ表示すると、こんな感じになる。

システムのドローダウンカーブ

総損益が\1,000,000なのに対して、最大ドローダウンが-\500,000なので、ちょっとドローダウンが深いなぁ。

まぁ、各銘柄の調整が全くされていないから、今のところはしゃーないが。

次回は、システムの利益取引と損失取引を追加する。

ではでは(^_^y

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

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

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

| | コメント (0)

2007/01/11

システムの利益曲線

歴史を見ると株はこれまでかなり魅力的な投資先だった。
魔術師たちの投資術、P293

ブログで株式向けのトレードシステムを作っているけど、私の副業の本業(?)は、為替と商品先物。

でも、記事を書くうちに、だんだんと株式や指数先物でもいけそうな気がしてきた。

昔は、現物の3倍しかレバレッジがかけられない株式でシステムトレードをする魅力を感じなかったけど、株式のリスキーなボラティリティを利用して、うまくポジションサイジングしてあげれば、意外といい線までいけるかも知れないなぁ...

ただ問題なのは、まともなスクリーニングツールを持っていない(為替や商品先物は全銘柄見ても大して時間がかからないけど株式はそうはいかない)ってところと、ブログで作っているトレードシステムと自分用のトレードシステムをごっちゃにしてしまいそうで怖いってところなんだよね(^_^u...

でも株式ランキングで勝負はできないだろうなぁ...

今回から、いよいよ各銘柄を1つのシステムに組み上げていく。

...とはいえ、インパクト21(9944)以外の銘柄は、シグナル/ストップ/ポジションサイジングの最適化をまだしていないので、でたらめなポートフォリオではあるが。

まぁ、とりあえず何も考えず、合成してしまおう(^_^)

はじめに、合成用のシートを追加。

インパクト21(9944)のシートのタブで右クリック、「挿入(I)」を選択。

合成用シートの追加

すると、新しいシートが追加されるので、このシートのタブで右クリック、「名前の変更(R)」を選択したら、”S-Revenge”と入力。

合成用シートの名前変更

先頭の”S”は”システム”の略で、その後の”Revenge”は、昔やられた株へのリベンジということでこんな名前(^_^)

次に、システムの内容を入れていく。

今回は、システムの累積損益まで作ってみる。

B51に「日付」、C51に「累計損益」とラベルを入れる。

インパクト21(9944)と同じ日付をリストすればいいので、B58に「='インパクト21(9944)'!B58」を入力し、B58をコピー、B59~B791にペースト。

それから、C58に「='インパクト21(9944)'!AB58+'高速(7504)'!AB58+'富士ソフト(9749)'!AB58+'三菱自動車工業(7211)'!AB58」と入れ、C58をコピー、C59~C791にペースト。

4つの銘柄の累積損益(AB列)を合計したものをシステムの累積損益として計算する。

システムの累積損益

ここまで終わったら、B77~C791を選択し、「挿入(I)」メニューから「グラフ(G)」を選択した後、点なしの折れ線でグラフを作ると、こんな利益曲線が出る。

システムの利益曲線

うーん、後半のとてつもない上昇は、三菱自動車の影響をモロに受けているなぁ。

ま、何となく右肩上がりな感じなので、期待できそう。

次回は、システムのドローダウンと回復期間を作る。

ではでは(^_^y

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

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

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

| | コメント (0)

2007/01/10

目標達成のためのポジションサイジング

最適なポジションサイジングの方法は無限にあり、設定したゴールによって最適なポジションは変わってくる。
魔術師たちの投資術、P293

今、ロバート・アレンさんに弟子入りしていたアドバイザーに協力してもらいながら、アメリカの不動産投資に力を入れているんだけど、ポジションサイジングのネタをまとめるために久々に読み返した魔術師たちの投資術にも、なにげに不動産投資のことがいろいろ書いてあった(P205~P242)。

内容的には、ロバート・アレンの実践!億万長者入門のスモール版みたいな感じだけど、不動産投資に対してポジションサイジングを適用したり、ストップを設定していたりと、不動産をシステムトレードやファンドと同列のものとして扱うのに便利そう。

そのうち不動産ランキングにもお世話になるかも

今回は、「目標を達成するためのポジションサイジング」という考え方について、久々にプログラミングなしでいこうと思う。

ポジションサイジングを決定するもの...その大部分は「最適なリスク率を求めること」なんだけど、それを実現するためのアプローチ方法として、バックテストで最適値を求めるというのを以前やった。

この方法は、システム破綻条件(たとえばバックテストの最大ドローダウンの2倍まで)を適当に決め、それに基づいて最適リスク率を決定している。

では、そもそもシステム破綻条件が適切か否かは、どうやって判断するのか?

それには、「トレードで何を達成するか?」という目標が必要で、その目標を達成するためのポジションサイジングが重要となる。

魔術師たちの投資術のP288に、このことがシンプルに書かれているので、軽く触れてみようと思う。

ここでは、ポジションサイジングの4つの目標が紹介されている。

1.最高の資産額で終わる

2.30トレード後に50%の利益を上げる

3.損失を出したら恥ずかしいので負けなければよい

4.50%の利益を得るチャンスは最大にしつつ20%を失うチャンスは小さく抑えていく

1と2は、システムの破綻条件が含まれておらず、利益だけが追求されているので、最適なポジションサイジングの基準となるのは、「総損益」や「プロフィットファクター」のような、”損益”を最適化に使えばいい。

たとえば、1なら「総損益」が最大となるリスク率を求め、2ならトレード回数が「30トレード」の時点での「総損益」が+50%になるようなリスク率を求めればいい(2を求めるには今のシステムを少し改造しないといけないが)。

これが3だと、負ける確率を最小にすることが追求されているので、「勝率」が最も高くなるようにすればいい。

4なら、「最大ドローダウン」を20%以下に抑えた上で、最も利益が大きくなるリスク率を求めればいい。

このように、トレードの目標が変われば、ポジションサイジングやリスク率に対する考え方は180度変わる。

ただ、魔術師たちの投資術のP293にも書かれているように、シミュレーション(バックテストもその1パターン)はあくまで未来を約束するものではないので、少し保守的な値を使うよう頭の片隅に入れておいた方がいい。

また、ストップのときにやったような分布を使って、最適値の周辺が緩やかに変化しているのを確認することもオススメする。

欲を言えば、この本のP289~P292で紹介されている”ノウ・ユア・システム”やモンテカルロ・シミュレーションのような、時系列データだけに依存しない数万パターンのシミュレーションを行えたら理想的。

目標作りのための思考パターンについては、P289~P292の説明をじっくり読むといい。

また、ポジションサイズが適切かどうかを評価するためには、P327~P340にとても参考になる内容が書いてあるので、ぜひ読んで欲しい。

どちらも、内容を理解すると”ノウ・ユア・システム”を使いたくてたまらなくなるけどね...

Excelで似たようなシミュレータ、作れるかなぁ?

そうそう、先日、leonさんからポジションサイジングとレバレッジについての質問をいただいたけど、これに対する答えも「目標達成のためのポジションサイジング」を考えることが1つの答えになると思う。

ではでは(^_^y

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

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

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

| | コメント (0)

2007/01/09

ギャップ対応ストップ

ストップポイントを設定して、そこに達したら必ず手仕舞うことができるようになれば、それ以外の投資の側面はそれほど重要ではなくなる。そして、損切りできる規律を身につければ、一流のトレーダーや投資家が多くの時間を割く部分、つまり利益を伸ばすということに注目できるようになる。
魔術師たちの投資術、P257

ちょっと遅くなったけど、あけましておめでとう!

冬休みは、パソコンが壊れたのをいいことに、全然記事も更新せず、のほほんと過ごしてしまったので、ここでお会いするのは少しひさしぶり。

昨年は、「システムトレードのことを人に伝える」という意味では初めての年だったけど、おかげさまで予想を上回るアクセス数やセミナー受講者数に恵まれて、本当にハッピーな1年だったなぁ...

今年は、昨年以上にセミナーや勉強会などの対外的な活動を活発にしていこうかなぁと目論んでいるので、「マイペースに生きてみたい!」というあなた、よかったらご一緒しましょう(^o^)

そんな訳で今年も応援よろしく!!

新年一発目のネタは、昨年コメントをいただいていたのに、うっかり直し忘れていた「ギャップ発生時のストップ」について。

このブログで作ってきたシステムは、ストップシグナル(W列)が”ストップ”になったとき、ストップ価格(V列)をストップ落値(Y列)として使っていたけど、ストップ価格を飛び越えて寄り付いたとき、本来始値の価格でストップにならなければいけないのに、ストップ価格でストップした計算をしていて、不正確。

そこで、買いのときはストップ価格よりも始値の方が安いときは始値をストップ落値として扱い、売りのときはストップ価格よりも始値の方が高いときは始値をストップ落値として扱う処理を追加する必要がある。

早速、組み込んでみよう。

ストップ価格と始値の比較は、ストップ落値(Y列)で行う。

Y58に「=IF(OR(AND(M58=1, X58=0), AND(X57>=1, X58=0)), IF(L57=1, IF(V58>C58, C58, V58),IF(C58>V58, C58, V58)), "")」を入れる。

前半部分は以前と変わらないけど、後半が変更された部分。

シグナルが買い(L57=1)のときは、ストップ価格(V58)と始値(C58)を比較して、ストップ価格の方が大きければ始値(C58)、小さければストップ価格(V58)をストップ落値として使う。

反対に、シグナルが買いでない、つまり売りのときは、ストップ価格(V58)と始値(C58)を比較して、ストップ価格の方が小さければ始値(C58)、大きければストップ価格(V58)をストップ落値として使う。

それから、Y58をコピーして、Y59~Y791にペースト。

インパクト21(9944)だと、2004/7/7(Y285)でストップ価格より安い寄付が発生しているので、今回の修正の変化が確認できる。

インパクト21(9944)のギャップ対応ストップ後の利益曲線

ギャップが発生していた分だけ、少し利益を水増ししていたので、ちょっとだけ利益が減ってしまった。

この修正を他の3銘柄に対しても行うのをお忘れなく。

Excelトレードシステムは、このようにベースシステム部分に修正が入ると、全銘柄の修正を行わなければならないため、とても面倒なんだよね(-_-u...

プログラミング言語(ExcelでもVBA)を使えば、ベースシステム部分の共通化ができるけど、その分入門のしきいが高くなるのがジレンマだなぁ。

もう少ししたら、このブログでプログラミング言語によるトレードシステム開発ネタをやるかどうか、アンケート取ってみようかな?

次回は、いつもの続きに戻って、もう少し突っ込んだポジションサイジングの最適化について。

ではでは(^_^y

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

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

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

| | コメント (0)

2006/12/29

ポジションサイジングの最適化

ある取引について、またあるポートフォリオを構成する各取引において、何単位をリスクにさらすか決定することにより、報酬とリスクの特徴を決定することができる。
魔術師たちの心理学、P367

今日から冬休み。

1日、のんびりブログやメールの返事でも書こうと思ったら、いろいろやることがあって、すでにこんな時間になってしまった(-_-u...

まったく、楽しい時間というものは、速く過ぎるものなんだねぇ。

...え?歳っ?

そこ、そんな野暮なことは言わない(^_^)

ランキングの流れも速いのか!?

今回は、ポジションサイジングの最適化について。

ストップ幅についても考慮する予定だったけど、まずは基本ということで、シンプルなポジションサイジングの最適化から。

ボラティリティポジションサイジングでは、「ATR」と「リスク率」をいじって、どのぐらいの最大ドローダウンまで許容するかを最適にしていくことができるが、話を簡単にするために、「リスク率」だけに絞って説明する。

まずは、どのぐらいの最大ドローダウンまでを許容するか決めよう。

よくあるのは、バックテストの最大ドローダウンの2倍までいったらシステムの運用を一度停止して、システムを見直すという考え方。

このシステム停止条件が妥当かどうかは、また別の機会に詳しく突っ込むとして、今回はこれでいくとしよう。

また、実際の最大ドローダウンは、25%以内が復活できるギリギリの線。

これについては、ドローダウンからトントンに戻すまでの必要利益を参考にして欲しい。

という訳で、バックテストでの最大ドローダウンを25%の半分である12.5%まで許容することにしよう。

資金\2,000,000の12.5%は、\250,000。

後は、最大ドローダウンが\250,000辺りになるように、リスク率を適当に調整していけばいい。

すると、\250,000にギリギリ収まるリスク率は1.16%。

このときの利益曲線はこんな感じ。

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

利益曲線の形自体は変わっていないが、総損益とドローダウンが多少大きくなった(最適化以前の利益曲線はこちら)。

ポジションサイジングの最適化は、こんなもんかな。

あまりにあっさりしているのでビックリしたかも知れないが、要はどのぐらいのリスクを受け入れるかがポジションサイジングの要点。

だから、一番難しいのは、ドローダウンをどこまで受け入れるかを決定するところなんだな。

ここは、トレーダー自身のリスク許容度で変わってくる極めて心理的な部分なので、どこが正解というのがないところが、難しいところ。

いずれは、リスク許容度の心理的な面についても、詳しく触れてみたい。

次回は、もう少し突っ込んだポジションサイジングの最適化について。

ではでは(^_^y

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

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

| | コメント (2)

2006/12/26

ストップの最適化

損切りにしても利益を確定するにしても、手仕舞いは市場で収益を得るためのカギを握るところである。
魔術師たちの心理学、P301

アフターフォロー勉強会に参加された方達からたくさんリクエストがあったので、「マイペースなシステムトレーダー新年会」を1/13(土)にやろうかな(^o^)

真っ昼間から、新宿の飲み屋で「2007年のシステムトレード目標」を参加者全員で作って、べろんべろんになりながら夢とか語り合っちゃったりしたら何だか楽しそう。

今からだと、場所を押さえられるかどうか分からないけど、どのぐらいリクエストがあるか知りたいので、希望するあなたはこちらの申し込みフォームを送ってね

募集締め切りは、12/31(日)まで。参加費用は、5,000円前後かなぁ。

ちなみに、人数が多過ぎるときは、先着順になるのでお早めに。

年末はランキングが空くのでラッシュをかけてみようかな?

今回は、ストップの最適化。

ストップを最適化するときは、シャープレシオと利益曲線を使う。

もっと本格的にやるときは、過去の勝ちトレードと負けトレードから勝敗の分岐点となるストップ額やMAE倍ストップ幅、ATR倍ストップ幅の傾向をデータマイニングするんだけど、現時点では簡単なもので十分。

何せ、まだ●●ワ●●テ●●をやっていないので...

これは来年になっちゃうかな?

まぁ、それはひとまず置いといて、まずストップ最適化用のテーブルを作る。

テーブルの左上となるBG2にシャープレシオである「=D46」を入れる。

これまでテーブルで2つの値の組み合わせの最適化をしてきたが、今回はストップ率だけの最適化なので、多少テーブルの使い方が異なる。

右方向にダミーの入力候補として1を入れ、下方向にストップ率の入力候補を0.5%~30.0%まで0.5%刻みで入れる。

次に、BG2からBH62までをドラッグかSHIFTクリックで選択し、「データ(D)」メニューから「テーブル(T)」を選ぶ。

「行の代入セル(R)」にダミーのセルとしてどこか適当な空白のセルをクリックし、「列の代入セル(C)」にはストップ率である「$D$5」をクリックする。

すると、こんな感じでストップ率毎のシャープレシオが自動計算される。

ストップの最適化

ちなみに、テーブルを残したまま編集をすると、毎回テーブルの再計算が入り、結構Excelが重くなるので、「ツール(T)」メニューから「オプション(O)」を選び、「計算方法」タブの計算方法で”テーブル以外自動計算(T)”を選択しておくと編集のたびに自動計算が走らなくなって快適。

テーブルの自動計算を解除

ただし、テーブルの自動計算が行われなくなるので、意識的に再計算(F9キーで実行)を行う必要が出てくるので注意。

さて、テーブルを見ると、25.5%以上において、シャープレシオが最大の113.11%となっている。

これは、25.5%以上はストップが働いていないことを意味する。

つまり、25.5%というストップ幅は、魔術師たちの0心理学のPxxxで言うところの「MAE(最大逆行幅)」である。

この最も深いストップ幅である25.5%に設定すれば、このシステムにおいて、最もリターンとリスクが高く、最も期間が長いトレードを行うことになる。

深いストップ幅の利益曲線

あなたのリスク許容度が高い場合は、このストップ率を選択すればいい。

ただし、もう少し安定した利益を望むのであれば、ストップ幅を縮めることでドローダウンを抑えることもできる。

これには、ストップ幅分布と利益曲線のバランスを取る必要がある。

まずは、ストップ幅分布を見てみよう。

ストップ幅分布は、一次元のグラフで見る(ここでは折れ線グラフを使用)。

ストップ率の分布

これを見ると、4.5%および16.5%~25%の間でシャープレシオが高い。

これで大体の当たりを付けたら、後は利益曲線の形で選ぶ。

最も浅いストップ幅である4.5%だと、割とシャープ(平らに近い)利益曲線を描く。

浅いストップ幅の利益曲線

16.5%~25%の中間となる19.5%だと、4.5%よりはドローダウンが大きく、でこぼこしているが、ストップ幅分布の幅が広いので、堅牢なストップと見ることもできる。

中間のストップ幅の利益曲線

これらのうち、どれを選ぶかは、あなたの趣味(継続可能なトレード時間とリスク許容度)次第だ。

なお、利益の大きさは、ポジションサイジングでコントロールできるので、単一システムであれば、より安定した利益曲線を選ぶのが賢明とも言える。

反対に、複数システムの合成によりドローダウンは緩和できるので、複数システムを前提とするなら最も大きな利益のものを選ぶことが利に叶っているかも知れない。

どの戦略を選ぶにしても、あなたの「トレード可能な資金量」と「リスク許容度」がキーポイントだ。

一応、私の好みで4.5%を選んでおく。

次回は、ストップ幅を考慮に入れたポジションサイジングの最適化をしてみようと思う。

ではでは(^_^y

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

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

| | コメント (10)

2006/12/22

リスクを最小にする

システムの設計は、低リスクを目指すべきである。
魔術師たちの心理学、P69

ネット株の心理学を半年前に読んで以来、トレードはマーケティングとかなり共通点があることに気付いた。

たとえば統計や確率に基づくものであるといった表面的な部分から、深いところでは人間心理を読み解くあたりで共通の考え方やスキルが要求されるなぁと感じている。

トレーディングシステム入門を読んで、ますますその想いは強まった。

データマイニングの結果から有効なシステムを構築する手順や、望む条件にマッチするグループをターゲットにする等、マーケティングと全く変わりないテクニックがたくさん使える。

システムトレードをはじめた当初は、「ビジネスシステム」の考え方や使い方を学ぶためのいい経験になると思っていたんだけど、マーケティングのいい経験にもなることが分かって、私の中でシステムトレードとビジネスの境界がだんだんなくなりつつある。

改めて、システムトレードは本当に素晴らしい。

2年前から私のブログを押し上げ続けてくれた人気blogランキングも素晴らしい(^o^)

今回は、シャープレシオを元にした最適化を行いながら、Excelのグラフ機能オンパレードで最適化の結果を検証してみる。

シャープレシオを元に最適化を行うと、総損益が最も大きく、ドローダウンが最も小さいものを探すことができるので、リスクを最小にしながら利益を求めていくことができる。

このシャープレシオの特性については、こちらで書いているのでどうぞ

まず、出力結果であるAK2をシャープレシオである「=D46」に変更する。

それから、前回やったのと同じように、テーブルの計算を行う

そうすると、短期MA日数16日、長期MA日数14日が最大のシャープレシオ(56.47%)となり、結果的に前回の総損益と同じになった。

では、全体の分布がどのようになっているかをチェックしてみよう。

AK2~BE22を選択し、「挿入(I)」メニューで「グラフ(H)」を選択。

「グラフの種類(C)」のリストを下の方にスクロールしていき、”等高線”をクリック。

「形式(T)」が4種類あるので、左下の平面カラー等高線をクリック。

「完了(F)」ボタンをクリックすれば、シャープレシオの分布図が出る。

シャープレシオの分布図

これの見方なんだけど、横軸が短期MA日数、縦軸が長期MA日数になる。

中心から少し右上のクリーム色になっている箇所が、最大のシャープレシオを含む40%~60%の範囲で、赤紫の箇所がそれより下の20%~40%の範囲、青紫の箇所が最低の0%~20%の範囲となっている。

クリーム色の周辺がいきなり青紫だったりすると、入力が少しブレただけでシャープレシオが急変する神経質な設定ということになるが、今回は周りを赤紫に囲まれているので、それなりに堅牢な結果かも知れない。

20%刻みの範囲だと、いまいちどのぐらい神経質か分からないので、そんなときは3D等高線を出してみるとよりビジュアルに見えて分かりやすい。

それに、10%刻みになるので、より細かなチェックができる。

等高線グラフの白いところで右クリックして、「グラフの種類(Y)」をクリック、「形式(T)」を左上の3Dカラー等高線をクリックして、「OK」ボタンをクリック。

最大のシャープレシオの箇所が飛び出ているはずだ。

シャープレシオの3D分布図

見づらいときは、グラフで右クリックして、「3-D グラフ(V)」を使えば、見る角度を自由に変えることができるので、見やすい角度に調整すること。

3D設定

さて、この3Dで見ても、シャープレシオ最大の箇所を頂点とした山になっているので、それほど神経質ではないことが確認できる。

なので、まぁまぁの設定なんだと思う。

後日、このシステム設定が本当に使い物になるのかはテストされるので、そのときを楽しみに待つとしよう。

ちなみに、総損益の分布は、こんな感じになる。

総損益の分布

3Dだとこんな感じ。

総損益の3D分布

シャープレシオの分布とは結構違うけど、最大の周辺は、似たような感じになっているので、総損益だけ見てもそれなりに堅牢なシステムなんじゃないかな?

こうして、総損益とシャープレシオについて、最適化を行ってみたが、期待値、勝率、損益レシオ、プロフィットファクターなどの出力結果でも最適化を試すことができる。

「最適化されると一体何がよくなるのか?」という意味を考えた上で、いろいろ試してみて欲しい。

ちなみに、私はシャープレシオをメインに最適化を行っている。

次回は、ストップの最適化をやる予定。

ではでは(^_^y

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

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

| | コメント (1)

2006/12/21

最適化

たとえ戦略のもととなる経済の基本が分かっていなくても、マーケットのタイプによって戦略の機能の仕方が変わるということは知っておいてほしい
魔術師たちの投資術、P323

昼間の仕事が落ち着いて間もなく、夜の仕事(笑)がやたらと活発化してきた。

システムトレード関連ビジネス、アメリカの不動産投資、ライセンスビジネスファンド、リーダー育成チームビジネス、SF小説家プロデュースなどなど...

今まで昼間の仕事に没頭していて休んでいたのを一気に取り返すかのような怒涛の勢いでチャンスが舞い込んでくる。

おまけにパソコンも壊れたり、家族が風邪を引いたりで、まさに暇無し状態になってしまった。

せめてお正月は、セミナーDVDでも再作成して、のんびり過ごしたいな...

...って、それも遊びじゃないじゃん。

んー、でも、遊びと仕事の区別が最近は全くついていないから、一緒か(^_^)

ランキングも少しは慌しい感じにならないかな?

今回から何回か続けて、シグナルやストップの最適化をしてみよう。

まずは、最適化に必要となるExcelの「テーブル」の基本的な使い方から。

ある2つの入力パラメータの組み合わせから、組み合わせ数分の出力結果を一気に求めるのに、このテーブルは役立つ。

具体的には、短期と長期の移動平均日数の組み合わせから、総損益の各パターンを出すといった使い方をする。

早速、この例を試してみよう。

テーブルの左上となるAK2に総損益である「=D26」を入れる。

その右方向に長期移動平均日数の入力候補を1~20まで入れ、下方向に短期移動平均日数の入力候補を1~20まで入れる。

右方向は、AL2が「1」、AM2が「2」...という感じで、BE2の「20」まで。

下方向は、AK3が「1」、AK4が「2」...という感じで、AK22の「20」まで。

ちなみに、20までしか入れないのは、今のシステムが移動平均を20日までしか受け付けないため。

最適化実行前のテーブル

次に、AK2からBE22までをドラッグかSHIFTクリックで選択し、「データ(D)」メニューから「テーブル(T)」を選ぶ。

「行の代入セル(R)」に短期移動平均日数である「$D$3」を入力(セルをクリックしてもOK)。

「列の代入セル(C)」に長期移動平均日数である「$D$4」を入力

テーブルのパラメータ入力

それから「OK」ボタンをクリックすると、自動的にテーブルの計算が始まる。

このとき、シートをクリックすると、計算が中段されるので、しばらく放っておこう。

最適化実行後のテーブル

BE22まで計算されたら、この中から最大の総損益となる組み合わせを探す。

BE23に「=MAX(AL3:BE22)」と入れると、最大の総損益の金額が分かるので、Ctrl+Fキーを押して、その金額を検索する。

インパクト21(9944)なら、437500を入力して検索する。

このとき、「検索対象」を”値”に設定するのを忘れずに。

検索

ちなみに、Excelのバージョンによっては、検索ウインドウが異なる。

検索結果によると、最大となる総損益の組み合わせは、短期MA日数が16日、長期MA日数が14日のとき。

おや?短期MAよりも長期MAの方が日数が少ない...

これは、ゴールデンクロスが起こったときに売って、デッドクロスが起こったときに買う、いわゆる「逆張り」のような売買となる。

では、この売買がどんな利益曲線になるか確かめてみよう。

短期MA日数であるD3に「16」、長期MA日数であるD4に「14」を入れる。

このときの利益曲線はこんな感じになる。

最適化後のインパクト21(9944)

うーん、ドローダウンは深いものの、なかなかいい形の利益曲線だね。

こんな感じで、Excel標準の機能を使うだけで簡単に最適化ができる。

いやー、やっぱExcelはすごいよ(^o^)

次回は、総損益以外の出力結果での最適化について検討していく。

ではでは(^_^y

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

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

| | コメント (0)

2006/12/18

比率ストップ

比率によるストップ
仕掛けのときの価格から一定のパーセントだけ押し目をつけたところにストップを入れる場合がある。

魔術師たちの心理学、P315

ガーンッ!!

先週の終わりにデスクトップパソコンのデータが壊れた...

トレード自体は、ノートパソコンでできるからいいけど、これまで作ってきたトレードシステムや編集中のセミナーDVDデータ(もう出荷寸前だったのに...)がバックアップしきれてなくて、幾つか消えてしまった。悲しすぎる(T_T)...

RAID-1でミラーしていたので、ディスクのハード故障にはある程度強いはずなんだけど、「データそのもの」が壊れる今回のようなケースでは、まるで役立たず。

まぁ、起こってしまったことをくよくよしてもしゃーないので、週末に入れ替えをした。

データがなくなったのは悲しいが、いるものと一緒にいらないものもなくなって、終わってみればちょっとスッキリ。

こないだ部屋の掃除をした後、いい話がたくさん来たので、たぶん今回もパソコンがキレイに掃除されて、またいい話が来るかもしれないなぁ...と思うことにしよう。

ランキングも景気よくなるかも知れない(^o^)

今回は、ストップを見直していこう。

現状、金額ベースでストップを設定しているため、銘柄毎にストップがメチャクチャになっている。

その様子は、終値とストップ額をグラフにするとよく分かる。

■インパクト21(9944)

インパクト21(9944)の終値とストップ額のグラフ

■高速(7504)

高速(7504)の終値とストップ額のグラフ

■富士ソフト(9749)

富士ソフト(9749)の終値とストップ額のグラフ

■三菱自動車工業(7211)

三菱自動車工業(7211)の終値とストップ額のグラフ

うーん、9749以外は、ほとんどストップがかかってなくて、ストップの意味がまるでないなぁ...

...という訳で、銘柄の金額に左右されず、もっともお手軽な「比率ストップ」に切り替えてみる。

まず、C5を「ストップ率」に修正し、D5に「10%」を入れる。

ストップ率

次に、ストップ価格(V列)を修正する。

V58を「=IF(L57=1, U58*(1-$D$5), IF(L57=-1, U58*(1+$D$5), ""))」に修正。

この式は、買い(L57=1)のときは最大終値(U58)からD5(ストップ率)を引いた額をストップ額にし、売り(L57=-1)のときは最大終値(U58)からD5(ストップ率)を足した額をストップ額にしている。

これで、終値に対する比率でのストップを実現する。

その後、V58をコピーして、V59~V791にペースト。

これを全システムに対して行うと、利益曲線は以下のようになる。

■インパクト21(9944)

インパクト21(9944)のストップ修正後の利益曲線

■高速(7504)

高速(7504)のストップ修正後の利益曲線

■富士ソフト(9749)

富士ソフト(9749)のストップ修正後の利益曲線

■三菱自動車工業(7211)

三菱自動車工業(7211)のストップ修正後の利益曲線

7211以外は、ストップ修正前より利益が悪くなっているけど、今回のところはストップが有効に働くことを確認するだけの段階で放っておこう。

これで期待値分布以外はシステムがまともに使える状態になったので、次回はシグナルやストップの最適化をしてみよう。

ではでは(^_^y

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

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

| | コメント (0)

2006/12/13

手数料の修正

トレーディングには、絶対にコストがかかる
魔術師たちの心理学、P354

昼間の仕事がほぼ定時で帰れるペースに安定してきた。ふぅ。

昼間の仕事も楽しいけど、システムトレードも含めて、やっぱりプライベートな活動の方が楽しいなぁ(^o^)

しばらく活動が制限されていたからという影響もあるだろうけど、自分で自由に組み立てていける点において、自分の投資/トレード/ビジネスの方が何倍も手応えがあるし、イキイキできる。

これで、フルタイムの昼間の仕事がなくなって、もっとプライベートの時間に使えるようになったら...

いやー、来年がとても楽しみだ(鬼に笑われる?)。

こちらもじょじょに復活かな?

今回もシステムのおかしいところを直していく。

もしかしたら、最初にこれをやっておくべきだったのかも知れないが、今のシステムは手数料からかなり影響を受けているらしい。

試しに、各システムの手数料(D2)を\0にしてみよう。

利益曲線が驚くほど変わるはずだ。

■インパクト21(9944)

インパクト21(9944)の手数料なし利益曲線

■高速(7504)

高速(7504)の手数料なし利益曲線

■富士ソフト(9749)

富士ソフト(9749)の手数料なし利益曲線

■三菱自動車工業(7211)

三菱自動車工業(7211)の手数料なし利益曲線

...まるっきりちゃうやん(^_^u...

という訳で、手数料を見直してみようと思う。

これまでは、手数料を「1枚あたりの手数料」として設定し、枚数の分だけ倍していたが、これは実際の株の手数料体系とはだいぶ違う。

多くの株式証券会社は、1回のトレード金額(のレンジ毎)にいくら、もしくは月額いくらという手数料体系になっているが、ここでは話をシンプルにするため、1回のトレードあたり固定で\3,000とする。

あとは、手数料計算を枚数の分だけ倍にしないように修正すればいい。

各システムで手数料を計算しているのは、ストップ込損益だけなので、ここの式を修正する。

AA58を「=IF(L56=L57, IF(Z58="", "", Z58-$D$2), IF(Z58="", IF(X57=0, "", T58-$D$2), IF(X57=0, Z58-$D$2, T58+Z58-$D$2)))」とすればOK。

それから、AA58をコピーした後、AA59~AA791にペースト。

その後、D2に「3000」を入れる。

手数料がそれほど大きなインパクトになっていないことを確認できるはずだ。

次回は、金額ベースでやっているために銘柄毎にまるでフィットしていないストップを直す予定。

ではでは(^_^y

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

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

| | コメント (0)

2006/12/11

単位枚数の修正

すべての投資が似ているわけではない
魔術師たちの心理学、P372

1週間半か...ずいぶん長いこと、更新していなかったなぁ...

いつも会社の昼休みや空いた時間にこのブログを更新していたんだけど、先々週からココログの編集ページにつながらなくなってしまった(T_T)...

「家で書けばいいんじゃない?」とツッコミが入りそうだけど、残業続きで家に帰っても何もできなかったんだよね(-_-u...

それが今日になって、ようやくココログにつながるようになったので、ひさしぶりに記事いってみよ!

更新していない間も応援してくれてありがとう!

前回の右肩下がりのシステムたちを作ったのが、ずいぶん昔に感じるけど(苦笑)、今回から各銘柄のシステムをまともに使える状態にしていこう。

まずは、単位枚数が各銘柄の「単元」に合っていないので、ポジションサイズが非現実的なずいぶんと融通の利いたものになってしまっているため、これを直そう。

各銘柄の単元は、Yahoo!ファイナンスInfoseekマネー、もしくはあなたがお使いの株式口座の銘柄情報で調べることができる。

各銘柄の単元は、以下の通り。

インパクト21(9944)=100株
高速(7504)=100株
富士ソフト(9749)=100株
三菱自動車工業(7211)=1,000株

これを各銘柄の単位枚数(D13)に入力する。

すると、単元を1単位としたポジションサイズに調整され、半端な枚数での融通の利いたポジションサイジングがされなくなるはず。

当然、利益曲線も相当違う形になる。

特に、高速(7504)以外の銘柄は、単元の金額が資金に対して高いため、ポジションサイズが0枚になり売買されないケースがたくさん出てくる。

いわゆる「資金不足」ってやつだ(^_^u...

ただ、これはポジションサイジングのとても重要な役割で、最低単位枚数(つまり単元のこと)も持てないときは「売買するべきでない」ということを教えてくれる。

たとえば、ポジションサイジングをしていないと、とりあえず単元を持ったり、「資金の限りまで持てるだけ持つ」といったことをついついやってしまうが、このやり方は、売買するときの感情にとても左右されやすく、トレードの一貫性を失いやすい。

結果として、繰り返し検証することが困難となり、リスクの均等化や連敗へのリスク許容度を測り間違える一番の原因ともなる。

私は、システムトレードの中でポジションサイジングの重要度が損益決定の91%を握る理由が、この辺り...つまり「ポジションをどれぐらい持つか?」ということが「心理面」に深く繋がっているところにあると思っている。

ポジションサイジングと心理面の深い繋がりについては、場を改めてじっくり突っ込んでみたいので、また別の機会に。

なお、システムが資金不足にちゃんと対応できていないようなので、ここではとりあえず各システムの資金を200万円ぐらいまで増やすことで、売買できないケースを一時的になくしておく。

合計800万円...やれやれ、トレードとはお金のかかる道楽だな(^_^)

次回も引き続き、システムのおかしいところを直していく。

ではでは(^_^y

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

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

| | コメント (0)

2006/11/29

各銘柄の適用結果

複数システムは、同様の利点、すなわちより多くの機会をもたらす
魔術師たちの心理学、P411

前回の冒頭でも紹介したトレーディングシステム入門でテクニカルな面を強化するのと同時に、ゾーンで心理的な面の強化も行っている。

この本は、魔術師たちの心理学の最初の方で触れられている、問題のある考え方やその原因となっている過去の経験などについてのより深い洞察と改善方法が書かれている素晴らしい1冊。

ちなみに、こちらの本も”入門”と銘打ってある割には、割とレベルの高い本かも知れない。でも、トレーディングシステム入門よりは遥かに読みやすいはず。

そんなゾーンだけど、私は侍さんという凄腕トレード友達にソースをプレゼントしたお返しとしていただいた。

侍さん、ありがとうm(_)m

ソースに並び、人生を変える力強いインパクトのある、とてもいい本でした。

そうそう、ゾーンには、子育てのコツも載ってたりする。お子さんがいる方は、ぜひ読んで欲しい。

あなたからのランキングクリックもお待ちしています

今回から何回かに分けて、前回作った個別株用のトレードシステムをある程度使えるシステムへと調整していく。

まず、前回ダウンロードした4本値は、データ数が元々のシステムよりも足りないので、行を削る必要がある。

シートの792~794行を削除するため、792行最上部の”792”と書かれた灰色の行表示枠から”794”までドラッグした後、右クリックで「削除」を行えばOK。

ただし、「トレード終了」の参照先がなくなって”#REF!”と表示されるので、D31を「=B791」に変更する。

これを4銘柄全て行う。

その結果、4銘柄は、こんな結果を出すようになる。

■インパクト21(9944)

インパクト21(9944)の利益曲線

インパクト21(9944)のシステム評価

■高速(7504)

高速(7504)の利益曲線

高速(7504)のシステム評価

■富士ソフト(9749)

富士ソフト(9749)の利益曲線

富士ソフト(9749)のシステム評価

■三菱自動車工業(7211)

三菱自動車工業(7211)の利益曲線

三菱自動車工業(7211)のシステム評価

うーん、見事に右肩下がりのキレイな利益曲線だなぁ...

日経225ETFにカーブフィッティングな(過剰に最適化された)システムだったのかな?

でも、ここまでキレイに右肩下がりなら...

次回をお楽しみに!

ではでは(^_^y

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

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

| | コメント (6)

2006/11/24

個別株用にシステムを複製

読者は、市場のポートフォリオを取引する場合、より多くの取引機会を開拓する機会を持っている。そのことは、おそらく年に数回の大きなトレードを読者が取れるだろうということである。
魔術師たちの心理学、P411

トレードの自己投資ということで、トレーディングシステム入門を熟読している。

この本は、魔術師たちの心理学であまり語られていない、機能する概念の見つけ方や、的確な損切り幅の求め方、トレンド判定、フィルタの作り方、そしてポジションサイジングの1つであるオプティマルfとポートフォリオ戦略について、とても具体的に書かれている。

TradeStationやExcelのサンプルコードは、少し分かりにくいが、内容を解釈して、自分でプログラミングするだけでも十分に役に立つ。

過去のセミナーの懇親会や勉強会で最も要望される「機能する概念の見つけ方」を知りたければ、この本の第5章「データマイニング」を読むだけでも、格段にレベルアップできると思うのでオススメ。

ランキングのカテゴリを引っ越してみた

前回まででポジションサイジングについてのおおまかなところは終わったので、今回からは、日経225以外の銘柄やそれらを組み合わせたポートフォリオでのシステムトレードについて検討していく。

私は普段、為替や商品先物でポートフォリオを組んでいるけど、株でポートフォリオを組むのは初めてなので、結果がどうなるのか全然予想が着かない。

だから、うまくいくかどうかは分からないけど、まぁとりあえずやってみよう。

まずは、トレードシステムが複数必要なので、これまで作ってきたシートを複製する。

シートのタブで右クリック、「シートの移動またはコピー」を選択する。

シートのコピー

「コピーを作成する」にチェックを入れ、「OKボタンをクリック」。

シートのコピー

シートがコピーされて2つになるはずだ。

新たに作られたシートのタブを右クリック、「名前の変更」で名前を変更する。

ここで、個別株として何を選ぶかという問題が出てくるが、あまり深く考えず、私が裁量トレーダー時代に売買していた銘柄を使うことにしよう。

ちょい負けしてたり、何で買ってたのか分からなかったあの頃のリベンジを、このブログとシステムトレードを通して果たそうという訳だ(^o^)

いろいろあるが、まずはパッと思い出した4銘柄ほど。

インパクト21(9944)、高速(7504)、富士ソフト(9749)、三菱自動車工業(7211)...

ということで、2つ目のシートには、「インパクト21(9944)」と名前を付けておこう。

ここまでの要領で、シートをあと3つコピーして、高速(7504)、富士ソフト(9749)、三菱自動車工業(7211)の3つのシートを追加しよう。

次に、個別銘柄の過去データを入手しないとお話にならないので、いつもお世話になっているPan Rollingにある過去データをダウンロードして使うことにする。

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

このファイルをExcelで開くと、セル毎に日付と4本値が入るので、日付、始値、高値、安値、終値の5列をコピーして、トレードシステムの4本値部分にペーストする。

これも、4銘柄分行う。

いろいろな利益曲線が見れると思うので、見てみよう。

次回は、各個別銘柄ごとの調整を行う。

ではでは(^_^y

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

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

| | コメント (4)

2006/11/22

ポジションサイジングの評価

どれが信頼に足るシステムの検証方法で、どれが役に立たないものなのだろうか
トレーディングシステム入門、P25

最近、mixi日記でビジネスオーナーの条件マーケティングの捉え方について、ちょこちょこ書いている。

前回の冒頭でも書いたように、マーケティング/セールスに自己投資している影響だと思うけど、以前学んだときと明らかに違うのは、実践までのスピード。

前々からビジネス書を実践できることが「私の強み」だったんだけど、この数年で得た経験と実績のおかげで、心理的にも思考的にも金銭的にも実践するのがどんどんラクになっていて、スピーディに行動に移せる。

また、自分だけでなく、ビジネスチームにも伝えたり、教えたりするため、「人に分かりやすく伝えるための情報整理」というプロセスが入り、よりクリアな理解ができているんだと思う。

この現象は、システムトレードについても同様で、セミナーや勉強会で人に教えるために難解な魔術師たちの心理学を分かりやすく噛み砕いたり、ビジュアル化することで、人に伝えやすくすると同時に、私自身の理解もかなり深まっている気がする。

「人に伝える」ってのは、最も効果的な学習プロセスなのかも知れないねぇ。

ランキングから学ぶこともいろいろあるね

今回はボラティリティポジションサイジングの結果について、利益曲線と評価指標を使って考察してみる。

まずボラティリティポジションサイジングによって利益曲線がどうなったかを見てみよう。

ボラティリティポジションサイジング適用後の利益曲線

比較対象として、固定金額単位の利益曲線を出してみよう。

固定金額単位ポジションサイジング適用後の利益曲線

元となる資金とリスク(最大ドローダウン)が異なるため、金額ベースでの比較はできないが、相対的にドローダウンは増え、利益は減っている形なので、明らかに利益曲線は悪くなっている。

試しに、シャープレシオが最大となる最適な「ATR平均日数」と「リスク率」を最適化してみた(最適化の方法については、近いうちに伝える予定)。

ちなみに、ATR平均日数は1日~20日、リスク率は0.1%~8%の範囲で最適化のシミュレーションをしている。ATR平均日数は、20日よりも大きい値を試したいところだが、ATR(H列)が20日以上に対応していないため、今回は見送る(実は、ここら辺の評価のしづらさが、Excelベースのトレードシステムの弱点でもあるので、平均日数の扱いについては十分注意して欲しい)。

すると、ATR平均日数は1日、リスク率は0.1%が最もシャープレシオが高い状態になる。

ただし、リスク率が0.1%だと、利益が全然出ないので、最大ドローダウンが15%前後になる0.9%にリスク率は設定してみた。

最大ドローダウンの15%にしたのは、バックテストの最大ドローダウンの2倍を超えたとき、システムを停止するという条件にしたとき、実際の最大ドローダウンとして30%付近を限界にしたいから。

それ以上のドローダウンは、復活できないほどの致命傷になるので、とれるリスクの限界は資金の30%としている。

さて、最適化した後の利益曲線はどうなっただろう?

最適化後のボラティリティポジションサイジングの利益曲線

それなりに良くはなっているようだ。

ここで、固定金額単位ポジションサイジングも最適化後のボラティリティポジションサイジングと同程度のリスクで試してみる。

固定金額単位ポジションサイジングにおいて、リスク、つまり最大ドローダウンが15.58%となる固定金額単位は\17,320。

このときのシャープレシオは28.95%。

明らかにボラティリティポジションサイジングよりもいい値が出ている。

また、利益曲線はというと...

最適化後の固定金額単位ポジションサイジングの利益曲線

同程度のリスクなのに、利益は2倍近く大きい。

結論として、日経平均ETFでは、ボラティリティポジションサイジングがあまり相性が良くないという感じかな。

もちろん、ATR平均日数がもっと大きくなると好転する可能性はないことはないが...

まぁ実際は、ボラティリティポジションサイジングやリスク率ポジションサイジングやは、1銘柄あたりのボラティリティリスクやリスク率を均等化するためのポジションサイジングなので、単一銘柄よりも複数銘柄に対して使うことで意味の出てくるポジションサイジングモデル。

それに、利益曲線がイマイチでも、いろいろな銘柄と組み合わせたときには、全体の利益曲線をシャープな(右肩上がりのドローダウンが少ない)状態にする作用もあるので、ポートフォリオ全体では、どちらのポジションサイジングが優れているかという結論は今のところ出せない。

ということで、次回からは、ポートフォリオでのシステムトレードについて、考えていこうと思う。

ではでは(^_^y

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

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

| | コメント (2)

2006/11/20

変動ポジションサイジング対応

ポジションのボラティリティを資金に対して一定の割合で均等化することは、基本的に直後にさらされることになるポートフォリオの各構成要素の価格変動を均等化することになる
魔術師たちの心理学、P382

いつぞやのmixi日記でも書いたけど、秋の季節に入っている私は、最近、自己投資ということで、本をかなり読み込んでいる。

トレードにおける心理面とマーケティング/セールスの復習が主な範囲かな。

以前と同じ本を読んでいるはずなのに、今まで気付かなかったことにたくさん出会うようになり、なんとなく自分の成長を感じるこの頃。

ランキングも以前と少し違う見方をしている気がする

今回はボラティリティポジションサイジングの大詰め。

ポジションサイズを単位枚数に調整した上で、ポジションを持ってから手仕舞いするまではポジションサイズが変動しないような修正を行う。

まずは、単位枚数をパラメータとして用意しよう。

B13に「単位枚数」、D13に「1」を入れる。

ついでに、あまりに資金が小さくて、単位枚数に調整したら、1枚か0枚になってしまいそうなので、資金を10倍の40万円に修正しておこう。

単位枚数(と資金の修正)

次に、ポジションサイズの単位枚数への調整と、ポジションを持ってから手仕舞いするまではポジションサイズが変動しないような修正を行う。

O51を「仮ポジションサイズ」に変更して、現在のポジションサイズを仮ポジションサイズに変更した後、単位枚数への調整とポジション保有中の枚数を変動させない実際のポジションサイズを出すための列を追加するため、P51~P794を選択して右クリック、「挿入」を選択、「右方向にシフト」でOKして列を追加する。

P51に「ポジションサイズ」、P78に「=IF(M78=1, INT(O78/$D$13)*$D$13, P77)」を入れる。

この少し複雑な式は、保有期間(M78)が1日になったとき(=ポジションを新たに持ったとき)は、仮ポジションサイズ(O78)を単位枚数(D13)で割り切れる値に修正したものをポジションサイズとし、保有期間(M78)が1日でないとき(=ポジション保有を継続しているとき)は、前日のポジションサイズ(P77)をポジションサイズとして継続することを意味する。

なお、仮ポジションサイズ(O78)を単位枚数(D13)で割り切れる値に修正する計算は、まず仮ポジションサイズ(O78)を単位枚数(D13)で割り、小数点を切り捨てた後、再度単位枚数(D13)を掛けることで計算している。

P78をコピー後、P79~P794にペーストすると、仮ポジションサイズが単位枚数で割り切れる値に修正され、更にポジション保有中は枚数が変動しないようになるはず(単位枚数を4とかにして遊んでみると単位枚数で揃うことをチェックできる)。

修正後のポジションサイジング

最後に、ポジションサイズを計算に入れている、値洗い損益(S列)、損益(T列)、ストップ損益(Z列)、ストップ込損益(AA列)の4列を修正する。

基本的には、仮ポジションサイズ(O列)を参照している部分をポジションサイズ(P列)に変更するだけ。

値洗い損益(S78)を「=IF(L77=1, (E78-Q78)*P78, IF(L77=-1, (Q78-D78)*P78, ""))」、損益(T79)を「=IF(R79="", "", IF(L77=1, (R79-Q78)*P79, IF(L77=-1, (Q78-R79)*P79, "")))」、ストップ損益(Z58)を「=IF(Y58="", "", IF(L57=1, (Y58-Q58)*P58, IF(L57=-1, (Q58-Y58)*P58, "")))」、ストップ込損益(AA78)を「=IF(L56=L57, IF(Z58="", "", Z58-$D$2*P58), IF(Z58="", IF(X57=0, "", T58-$D$2*P58), IF(X57=0, Z58-$D$2*P58, T58+Z58-$D$2*P58)))」に修正。

S78をコピー後、S79~S794にペースト。

T79をコピー後、T80~T794にペースト。

Z58をコピー後、Z59~Z794にペースト。

AA58をコピー後、AA59~AA794にペースト。

とりあえずポジションサイジングの修正にまつわる修正はこれで終わり。

次回は、修正後の結果について、考察してみよう。

ではでは(^_^y

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

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

| | コメント (11)

2006/11/17

ボラティリティポジションサイジング

基準モデルは、3万2567ドルを稼いだが、0.5%のボラティリティモデルは200万ドル以上を稼いでいる。ポジションサイジングがいかに重要であるかを理解し始めているとすれば、トレードの最大の秘訣のひとつも理解し始めているのである。
魔術師たちの心理学、P393

mixi日記に書いた通り、来年は法人を作って、法人を通して不動産(とビジネス)を買い増していく予定。

いよいよ魔術師たちの投資術金持ち父さんのパワー投資術を地で行くことに...

いやー、思えば遠くまで来たもんだ。

前々回のセミナーでも話したけど、5年前によめさんが金持ち父さん貧乏父さんを買ってきてくれなかったら、ここまではきっと来れなかった...

本当によめさんには感謝だなぁ。

2年近く、私のインターネット活動を支えてくれたランキングにも感謝

今回もポジションサイジングの続きで、いよいよボラティリティポジションサイジングを組み込む。

...とその前に、前回の記事の数式が微妙に間違っていたので、今回の分をはじめる前に修正をよろしく。

さてさて、ボラティリティポジションサイジングの計算方法だが、こんな感じ。

 ボラティリティポジションサイジング=【資金】 × 【リスク率】 ÷ 【ATR】

【資金】 × 【リスク率】をリスク額とすると、こんな式になる。

 ボラティリティポジションサイジング=【リスク額】 ÷ 【ATR】

より詳しいことは、魔術師たちの心理学のボラティリティポジションサイジングについて書かれているところをどうぞ。

まず、ボラティリティポジションサイジングのリスク率の準備とリスク額の計算をする。

B11に「リスク率」、D11に「0.5」、B12に「リスク額」、D12に「=D7*D11」を入れる。

ボラティリティポジションサイジングのリスク率を青本に書いてあるように0.5%に設定し、リスク額は資産に対するリスク率で計算する。

ボラティリティポジションサイジングのリスク率とリスク額

これで、ボラティリティポジションサイジングを組み込む準備ができたので、後はポジションサイズを書き直そう。

O58~O67を削除して、O68に「=$D$12/H68」を入れる。

これは、上で書いたボラティリティポジションサイジングの式通り、リスク額(D12)をATR(H68)で割ったもの。

1.28枚と中途半端なポジションサイズだが、今はこのままで行こう。

O68をコピーしたら、O69~O794にペースト。

ATRの変動に合わせて、ポジションサイズが変動するはずだ。

ボラティリティポジションサイジング

さて、これでボラティリティポジションサイジングを組み込んだものの、ポジションが単位枚数以下(小数点の部分)になっているし、ポジションを持ってから手仕舞いするまでポジションサイズが変動しているため、実際の損益計算がおかしくなっている。

そこで次回は、単位枚数に調整した上で、ポジションを持ってから手仕舞いするまではポジションサイズが変動しないような修正を行う。

ではでは(^_^y

p.s.ストップとポジションサイジングに特化したシステムトレーディングツールをただいま開発中。

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

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

| | コメント (2)

2006/11/16

ATR(真の値幅の平均)

ボラティリティとは、任意の期間における取引対象物の日次の価格変動を指す。それは、いずれのポジションにおいても、自分に有利にも不利にもさらされる可能性のある価格変動の直接的測定値である。
魔術師たちの心理学、P382

先週末のセミナーをやっている裏で、娘がウィルス性の胃腸炎...つまり風邪を引いた。

その次の日、よめさんの調子が悪くなって、風邪が移った(-_-u

そして、夜中に私にも風邪が移った(T_T)

という訳で、数日ぶりのブログ更新。

それにしても、「ただ同じ空間に一定時間いる」だけで複製されるこの風邪のウィルスの能力は凄まじい。

システムトレードのスキルやビジネスシステムも、このぐらい簡単かつ強力に複製できたら、なんと素晴らしいことだろう。

...という訳で、システムトレードのスキルをウィルス伝染させるようなコンテンツを作ってみようかなと思った今日この頃。

ランクアップもウィルス伝染させる方法があるに違いない...

今回もポジションサイジングの続きで、ボラティリティベースのポジションサイジングモデルを作ってみる。

ボラティリティとは、価格の変動率をあらわす言葉で、このボラティリティが大きいと値動きが大きい荒れた相場(商品・銘柄)を示し、ボラティリティが小さいと値動きが小さい安定した相場を示す。

ボラティリティベースのポジションサイジングモデルとは、この価格変動率と反比例の枚数調整をするポジションサイジングモデルであり、ボラティリティが大きいときはポジションサイズが減り、ボラティリティが小さいときはポジションサイズが増える。

まぁ、細かい計算については、次回やるとして、今回は、ボラティリティベースのポジションサイジングモデルを作る前段階として、日々のボラティリティを求める。

さて、ボラティリティと言っても、ヒストリカル・ボラティリティインプライド・ボラティリティ(これはオプションじゃないから全く関係ないけど)、ATR(Average True Range:真の値幅の平均)など、様々な種類があるが、ここでは魔術師たちの心理学でもよく出てくるATRを使う。

ATRの元となるTR(True Range:真の値幅)とATRの計算式は、こんな感じ。

 TR=|【高値】 - 【安値】|、|【高値】 - 【前日終値】|、|【安値】 - 【前日終値】|の最大

 ATR=【TRのATR平均日数合計】 ÷ 【ATR平均日数合計】

TRの式から分かるように、ATRは、当日の値動きだけでなく、前日からのギャップも含めた値動きを捉えることから、真の値幅と呼ばれる。

まずは、ATRの平均日数をパラメータとして準備しよう。

B10に「ATR平均日数」、D10に「10」と入れる。

ATR平均日数

次に、TRを計算するための列を終値(F列)の右に1列追加。

G列最上部の”G”と書かれた灰色の列表示枠で右クリックをして、「挿入」を行えばOK。新しいG列が追加される。

G51に「TR」、G59に「=MAX(ABS(D59-E59),ABS(D59-F58),ABS(E59-F58))」と入れる。

確認したら、G59をコピーしてから、G60~G794にペーストしよう。

最後に、ATRを計算するための列をTR(G列)の右に1列追加。

H列最上部の”H”と書かれた灰色の列表示枠で右クリックをして、「挿入」を行えばOK。新しいH列が追加される。

H51に「ATR」、ATR平均日数分下に移動したH68に「=AVERAGE(OFFSET(G68, 1-$D$10, 0):G68)」と入れる。

確認したら、H68をコピーしてから、H69~H794にペーストしよう。

TR(真の値幅)とATR(真の値幅の平均値)

次回は、ATRを使って、ボラティリティポジションサイジングを組み込んでみる。

ではでは(^_^y

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

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

| | コメント (5)

2006/11/09

ポジションサイズを損益に反映

心理面を除けば、資金管理はシステム開発にとって最も重要な側面である。にもかかわらず、トレーディングやシステム開発について書かれたどの本も、ことごとくその主題を無視している。
魔術師たちの心理学、P361

今日も残業中...しかも徹夜モード突入!

あさってのセミナー準備をばっちり行うために、きっちり今週中に仕事を終わらせるための時間調整なんだけど、
まぁやっていることはワクワクであるプログラミングだから、徹夜でもたいしたことはないんだけどね。

そんな訳で、今回もオフィスからブログを書いて一休み中。

今回のセミナーの準備は、前回と違って、プレゼンテーションもリハーサルも計画的に前倒しでやっているのでよかったものの、ここのところの残業続きのスケジュールで前回みたいに前日徹夜してプレゼンテーションを作るなんてペースだったら、かなりヤバかったかも(-_-u...

やっぱ、プランを立てて物事にあたることは大事なことだねぇ。

ちなみに、私は夏休みの宿題を最終日にやるタイプなので、最近になってこのことに気付いた感じだけどね(^_^u

うーん、コンスタントに更新できないと、ランキングはなかなか上がらないものだ

今回もポジションサイジングの続きで、前回追加した固定金額単位モデルでの枚数を使って、枚数の影響を受ける列...主に損益系の列に枚数を掛け算する変更を行う。

まず、資金と固定金額単位が同額だと、何も変化がなくてつまらないので、資金を増やしてみる。

D7を「40000」に変更すると、固定金額単位(D9)が\20,000なので、M58~M794のポジションサイズが2枚に変わることを確認しよう。

次に、損益を枚数で掛け算するように式を変更する。

この対象となる列は、値洗い損益(P列)、損益(Q列)、ストップ損益(W列)、ストップ込損益(X列)の4列。

値洗い損益(P列)は、はじめて値洗い損益が出るP78を「=IF(J77=1, (E78-N78)*M77, IF(J77=-1, (N78-D78)*M77, ""))」という式に変更。

元の式との違いは、(安値(E78) - 建値(N78))もしくは(建値(N78) - 高値(D78))の損益計算部分に前日のポジションサイズ(M77)を掛け算したこと。

P78をコピーしたら、P79~P794にペーストして、損益が2倍になっていることを確認しよう。

損益(Q列)は、はじめて損益の出るQ96を「=IF(O79="", "", IF(J77=1, (O79-N78)*M78, IF(J77=-1, (N78-O79)*M78, "")))」という式に変更。

元の式との違いは、(落値(O96) - 建値(N95))もしくは(建値(N95) - 落値(O96))の損益計算部分に前日のポジションサイズ(M95)を掛け算したこと。

ちなみに、以前の式は買い以外は全て売りという式になっていたので、どちらでもないときは空を出すように修正した。

Q96をコピーしたら、Q79~Q794にペーストして、損益が2倍になっていることを確認しよう。

ストップ損益(W列)は、はじめて損益の出るW93を「=IF(V93="", "", IF(J92=1, (V93-N93)*M92, IF(J92=-1, (N93-V93)*M92, "")))」という式に変更。

元の式との違いは、(ストップ落値(V93) - 建値(N93))もしくは(建値(N93) - ストップ落値(V93))の損益計算部分に前日のポジションサイズ(M92)を掛け算したこと。

W93をコピーしたら、W59~W794にペーストして、損益が2倍になっていることを確認しよう。

ストップ込損益(X列)は、はじめて損益の出るX93を「=IF(J91=J92, IF(W93="", "", W93-$D$2*M92), IF(W93="", IF(U92=0, "", Q93-$D$2*M92), IF(U92=0, W93-$D$2*M92, Q93+W93-$D$2*M92)))」という式に変更。

元の式との違いは、手数料に前日のポジションサイズ(M92)を掛け算したこと。

X93をコピーしたら、X59~X794にペーストして、損益が2倍になっていることを確認しよう。

ポジションサイジング適用後の損益

(この表示は、表示しない列を全て選択して右クリック、”表示しない”の機能を使って、必要な列だけを表示している)

基本的に、固定金額単位のポジションサイジングでは、損益幅が変わるになっただけで、システムそのものの特性は変わらない。

それは、利益曲線を見てもらえれば分かるように、ポジションサイジング適用前と金額幅以外は一切変わっていない。

ポジションサイジング適用後の利益曲線

システム評価も、金額ベースのもの以外は一切変わっていない。

ポジションサイジング適用前後のシステム評価

(左がポジションサイジング適用後、右がポジションサイジング適用前)

この特徴は、固定金額単位モデルだけでなく、ポジションサイズがずっと変動しないポジションサイジングモデル...たとえば、リスク率モデルなどでも共通。

ここから分かることは、ポジションサイズが変動しないモデルでは、単純に利益とドローダウンの幅が枚数分大きくなるだけだということ。

うーん、これだけだと、全然面白くもなんともないね(^_^)

という訳で、次回はボラティリティベースのポジションサイジングモデルを検討してみる。

ではでは(^_^y

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

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

| | コメント (8)

2006/11/07

固定金額単位モデル

基本的にこのモデルは、Xドルについて1単位取引すると決めることにより、取引量を教えてくれる。
魔術師たちの心理学、Pxxx

ただいま、残業中(T_T)...

昼間の仕事は、プログラミングに没頭できて楽しいのだが、他のことをやる時間がなくなるのは、ちと痛い。

しかも、数年ぶりの残業なので、身体が若干追いついてきてないし。

今は、ちと気晴らしにブログ中ってとこ。

さぁ、そろそろ帰ろうかな...

昼間の仕事が忙しくて更新できない~(T_T)

今回から、お待ちかねのポジションサイジングシリーズ開始。

まずは、「固定金額単位」ポジションサイジングモデルから攻略していこう。

...とその前に、いつぞやの列追加・削除の影響で、無用な空白データができてしまっているので、削除しよう。

O2~O49を選択し、右クリックで「削除」を選択、削除方法を聞かれてくるので、”左方向にシフト”を選んで「OK」ボタンをクリック。

これで、無用な空白データは削除される。

無料な空白データの削除

さて、本題に戻ろう。

「固定金額単位」ポジションサイジングモデルは、「ある金額に対して何枚」という、シンプルなポジションサイジングを行う。

モデル自体についての詳しいことは、魔術師たちの心理学のP369~P374およびP389~P390をどうぞ。

まずは、「ある金額に対して何枚」をパラメータとして準備しよう。

B9に「固定金額単位」、D9に「20000」と入れる。

固定金額単位ポジションサイジング

これは、\20,000あたり1枚ということをポジションサイジングを意味する。

次に、枚数を計算するための列を追加する。

M列の「建値」が入っている部分だけを列追加したいので、M51~M794を選択した後、右クリックで「挿入」を選択、”右方向にシフト”を選んで「OK」ボタンをクリック。

これで、これまで建値だった部分に空白の列ができあがる。

枚数列の追加

M51に「ポジションサイズ」、M58に「=$D$7/$D$9」を入れる。

資金(D7)を固定金額単位(D9)で割れば、枚数が出てくる。

今のところは、資金が買えるギリギリなので、ポジションサイズも1枚としか出てこない。

後で資金をいじってみよう。

M58をコピーした後、M59~M794にペーストして、全期間で1枚と出てくるのを確認。

固定金額単位のポジションサイズ

次回は、枚数に影響を受ける全ての列の修正を行う。

ではでは(^_^y

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

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

| | コメント (2)

2006/11/01

フラット期間

マーケットで行われる毎日の取引には、たいていノイズがあると考えたほうがよいだろう
魔術師たちの心理学、P306

相場芳名録にも書いたけど、最近は月1ペースでプレゼンテーションを作っている。

今日も、11/11(土)開催のオートマチック・システムトレード・セミナーのプレゼンテーションをせっせと通勤電車の中で書いてたら、めちゃくちゃノッてきたときに突然の電池切れ。ノートパソコンの充電をうっかり忘れていたらしい。

おまけに、大幅に書き足した部分を全くセーブしてなかった(T_T)...

あの、電池切れの瞬間の「ブツッ」という音と、何もないまっ黒な画面は、ものすごく虚しいものだねぇ。

それにしても、携帯といい、ノートパソコンといい、ビデオカメラといい、充電が切れると致命的なものが、だんだん増えてきた気がする。

私が出資しているベンチャー企業で作っているような”携帯電話用太陽電池”がいち早く普及して、充電という概念をなくして欲しいなぁ。

ランキングも充電期間が終わり、じょじょに上位復活へ...

こちらも充電期間終了で上位へ?

今回は、前回作った回復期間から、フラット期間を出す。

AA52に「=MAX(AA58:AA794)」を入れた後、B47に「フラット期間」、D47に「=AA52」と入れ、フラット期間をシステム評価として表示する。

フラット期間

フラット期間は、270日!

1年以上もトントンに戻ってないのか...

これは、リスク許容度が低い人(私も含む)にとっては、精神的にキツイ中長期システムだなぁ。

もっと売買頻度が多いシステムに改善しないと、さすがにポジションサイジングでも厳しいか!?

ま、とりあえず、実際にポジションサイジングを適用してみるか...

...という訳で、次回は、いよいよお待ちかねのポジションサイジングシリーズ開始!

ではでは(^_^y

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

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

| | コメント (2)

2006/10/31

回復期間

マーケットでの日々の取引にはノイズを考えなければならない。例えば、株価が1ポイントか2ポイント動いたとしても、少数のマーケットメーカーが「値付け」しているのか、商いが交錯しているのか分からないだろう。そして、商いが交錯しているとしても、継続していくかは分からない。
魔術師たちの心理学、Pxxx

最近、システムトレード以外でも、「確率」で考えた上で、「いい面」を判断基準として決断することが多くなった。

たとえば、500人にセールスをして、23~25人からいい返事が来れば作戦成功みたいな。

でも、この考え方って、ビジネスやセールス、投資、トレードをしていない人にとっては、かなり抵抗があるみたい。

普通は、「悪い面」、つまり断られて傷つく方に気がいってしまって、2~3人に断られたら、もうやりたくないって感情に支配される。

あくまでシステムの確率なんだから、断られることもシステムのうちだと気付けば、感情的にならずに、うまくいくものなんだけどね。

システムトレードを勉強すると、そういう人でも、損を受け入れられるようになって、確率に基づいた考え方にシフトできるかなぁ?

ランキングで上位にいくのも確率の問題なんだろうね

今回と次回でフラット期間を作ったら、システム評価は、ひとまずひと段落。

他にも役立つシステム評価指標はたくさんあるけど、今のところはこれだけで十分だろう。

「ところで、フラット期間って何?」

おぉ、すっかり説明を忘れていた(^_^u...

フラット期間とは、ドローダウンが発生してから、トントンまで回復するのにかかった期間のこと。

別の見方をすれば、累計損益の最高値を更新するのにかかった期間。

フラット期間が短ければ、短いほど、手堅いシステムと言える。

それじゃぁ、フラット期間を出すために必要な「回復期間」を作ってみよう。

回復期間を計算するための列をドローダウン(Z列)の右に1列追加。

AA列最上部の”AA”と書かれた灰色の列表示枠で右クリックをして、「挿入」を行えばOK。新しいAA列が追加される。

それから、AA51に「回復期間」、初めてドローダウンが発生するAA78に「=IF(Z78<0, AA77+1, 0)」を入れる。

この式は、ドローダウン(Z78)がゼロを下回っている間は前日の回復期間(AA77)に1を足し、ドローダウン(Z78)がゼロ以上になったときに回復期間をゼロにリセットする。

確認したら、AA78をコピーしてから、AA58~AA794にペーストして、ドローダウンがゼロを下回っている間は回復期間が足され続けていることを確認しよう。

回復期間

なんだか、今まで見たこともないぐらい長いフラット期間のような気が...

次回は、それをハッキリさせるために、今回作った回復期間を使って、フラット期間を出す。

ではでは(^_^y

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

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

| | コメント (2)

2006/10/27

シャープレシオ

わたしはリターンとリスクについては、まったく現実的です
魔術師たちの心理学、P85

mixi日記ではいつも書いていることだけど、よく「がんばる」と気合いを入れていたり「がんばって」と人を応援することがあると思うけど、私はそのどちらも言わない...

...といっても、相手のことを一切考えていないって訳じゃないよ(^_^)

私の中では、がんばって結果を出すのは、二流三流のやることと定義しているから。

がんばらず、やる気を出さず、努力せず、という「エネルギーゼロ」の状態でマイペースに楽しんでいるうちに120%の結果を出すことが、私の中の一流の定義。

これは、1)ワクワクを楽しんでいたらがんばらなくても結果はついてくる、2)システムやOPM、OPTなどの自分以外の力を使えば自分はそれほどがんばる必要はない、この2点を実現できるときに一流だということだね。

暗に、私は相手に一流であることを求めていて、がんばるよりも一流であることを目指す方がストレスもなく結果が出やすいんだよって伝えている訳。

だから、このブログのコメントでも「がんばる」「がんばって」は禁句でよろしく(^_^)

やばい、50位圏内から姿を消しそうだ...

さて今回は、シャープレシオについて。

「...シャープレシオって何?」

えーと、シャープレシオは、元々ファンド同士の比較をするための指標。

大きければ大きいほど、相対的にリスクが低く、リターンが高いファンドであることをあらわす。

1(100%)以上であれば、リスクよりもリターンが上回っているから安全であることを示し、1より小さければ、リスクがリターンを上回っていて、(タイミングが悪ければ)資産が目減りすることを示す。

シャープレシオ を求める式は、こんな感じ。

 シャープレシオ = (【年毎のポートフォリオの過去の運用実績】 - 【無リスク資産の利回り】) ÷ 【リスク】

ここで言うポートフォリオは、ファンドの中身を構成するもの(たとえば、株式や、債券、商品先物、不動産など)を指す。

また「無リスク資産の利回り」は、国債などの元本が保証されているタイプの資産の利回りを指す。米国債であれば4.x%、日本国債であれば1.x%ってところかな。

シャープレシオについてもっと詳しく知りたいあなたは、用語解説シャープレシオ「ローリスク・ハイリターン」の見分け方をどうぞ。

これらをシステムトレードに当てはめると、以下のようになる。

 1.ポートフォリオはトレード対象となる銘柄とする

 2.無リスク資産は比較対象として適切でないので無視する

 3.最大ドローダウンをリスクとする

このことを踏まえて、書き直した式はこんな感じになる。

 シャープレシオ = 【年毎のバックテストでの総損益】 ÷ 【最大ドローダウン】

これを今回、作ってみよう。

B46に「シャープレシオ」、D46に「=ABS(D26/D44)/D33」を入れる。

総損益(D26)を最大ドローダウン(D44)で割り、それをトレード年数(D33)で割れば、シャープレシオの完成。

シャープレシオ

シャープレシオ28.95%から分かることは、年毎のリターンとリスクで考えたとき、このトレードはリターンよりもリスクの方が大きいということ。

最大ドローダウン%は、13.49%と割と低いが、同時に総損益も低いため、相対的にリスクを大きくとっていることになる。

これは、利益曲線を見たとき、プラスで終わっている年が少ないことからも、お分かりになると思う。

利益曲線

ただ、私の実運用しているシステムも、ポジションサイジングなしの状態では100%を下回っていて、ポジションサイジングを導入すると200%に限りなく近い値に変貌しているので、望みはまだ捨ててはいけない(お待ちかねのポジションサイジングシリーズは、来週ぐらいにスタートできるかな?)

次回は、ドローダウンを使ったもう1つの指標、フラット期間について。

ではでは(^_^y

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

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

| | コメント (10)

2006/10/26

最大ドローダウン

「ドローダウンは、最大どの程度までならいいですか」「25%」
魔術師たちの心理学、P86

ここ最近、昼間の仕事でガンガンにプログラミングを行っているせいか、家に帰ってもプログラミングをしたいという気分になかなかならない。

まぁ、それだけ充実しているってことでハッピーなんだけど、次期トレードシステム開発は、遅れに遅れまくっている(-_-u...

もっとも、セミナー開催とか勉強会開催、その他人と会うイベントを入れ過ぎってのも、開発が遅れている原因なので、自業自得ってところもあるが。

「マイペースなシステムトレード・セミナー」DVDの編集も遅くなってスミマセンm(_)m

そろそろ、人付き合いの時間を減らして、自分の時間をゆったり取るようにしようかな。

11/11(土)のオートマチック・システムトレードセミナーが終わったら、自分のための時間をたっぷり確保しよっと。

ランキングがじょじょに回復中。いつも応援ありがとね!

今回は、最大ドローダウンについて。

最大ドローダウンは、期間中で最も深いドローダウンのこと。

たとえば、システムを運用して、累計損失が最大ドローダウンの2倍に達したら、システムの運用を一度停止して、システムや相場の共通点を見直すといった使い方が割とスタンダードな使い方。

最大ドローダウンは、MDD(Max Draw Down)と呼ばれることもある。

余談だけど、私がシステムトレードについて、いろいろ調べていた頃、2ちゃんねるのどこかのシステムトレード関連板でこのMDDというキーワードが出てきて、それが分からなくて悔しい思いをしたというのが、最大ドローダウンとのはじめての遭遇だった。

それ以来、私のオタク気質に火がついてしまい、システムトレードのキーワードは、全部マスターしてやろうと活動して、今に至るってところかな。このブログの「システムトレード用語」は、まさにその成果(結構、まとまってきたなぁ...)。

それじゃぁ、最大ドローダウンを計算してみよう。

Z53に「=MIN(Z58:Z794)」を入れて、最も小さいドローダウンを出す。

これが、最大ドローダウンとなる。

B44に「最大ドローダウン」、D44に「=Z53」と入れ、システム評価としてまとめて表示しておこう。

更に、B45に「最大ドローダウン%」、D44に「=ABS(D44/D7)」と入れる。

これは、資金(D7)に対して、最大ドローダウン(D44)のパーセンテージがどのぐらいであるかを表す。

最大ドローダウン

ここが、30%を超えていて、運悪く最大ドローダウンからトレードをスタートしたりすると、トントンまで回復するのがしんどいということになる(ドローダウンからトントンまで回復するのにどのぐらいの利益が必要なのかはこちら)。

最大ドローダウン%は、15%~20%ぐらいに収まるように心がけよう。

このシステムでは、13.49%と割と低い最大ドローダウンに収まっているので、いい感じ。

次回は、最大ドローダウンを使って、シャープレシオを求めよう。

ではでは(^_^y

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

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

| | コメント (4)

2006/10/25

ドローダウン

ギャラハーは、50%のドローダウンを経験しないように多様な商品について取引する最低金額を勧める
魔術師たちの心理学、P402

先週の金曜日に途中までドローダウンについて書いていたけど、続きを書かないうちに、休日も平日もえらく忙しくなってしまった(-_-u...

mixi日記の更新も、帰りの電車の中で携帯から書いてるし。

テキストだけのmixi日記は、携帯でも更新できるんだけど、このブログは絵も入るし、Excelも必要だから、携帯だけじゃ更新できないんだよね...会社作ったら、WILLCOMのW-ZERO3でも買って、帰りの電車でもブログ更新できるようにしようかな?(^_^)

あぁー、落ちまくってる(T_T)...まぁ、しゃーないか

そんな訳で、中途半端だった「ドローダウン」を改めてはじめから。

まず、ドローダウンの考え方について。

ここでは、利益曲線の頂点である最大累計損益から、現在の累計損益ではどのぐらいヘコんだかをまず出し、更に値洗い損益のヘコみも加えたものをドローダウンとしている。

利益曲線でのドローダウン説明

ちなみに、ドローダウンは、どのぐらいヘコんだかを表す値なので、ゼロより大きな値になることはない。

それでは早速、ドローダウンを出してみよう。

ドローダウンを計算するための列を最大累計損益(Z列)の右に1列追加。

AA列最上部の”AA”と書かれた灰色の列表示枠で右クリックをして、「挿入」を行えばOK。新しいAA列が追加される。

それから、AA51に「ドローダウン」、初めて損失が発生するAA102に「=IF(Y102-Z102+O102>=0, 0, Y102-Z102+O102)」を入れる。

この式は、累計損益(Y102)から最大累計損益(Z102)と値洗い損益(O102)を引いた値がゼロ以上ならドローダウンはゼロ、マイナスならその値をドローダウンとして計算している。

確認したら、AA102をコピーしてから、AA58~AA794にペーストして、値洗い損益もしくは累計損益にマイナスが出たときにドローダウンがマイナスになることを確認しよう。

ドローダウン

おや?そういえば、最大値洗い損益(P列)は、使わなかったなぁ...

うっかり作ってしまったようだ(^_^U...

...という訳で、P列は削除してしまおう。

P列最上部の”P”と書かれた灰色の列表示枠で右クリックをして、「削除」を行えばOK。

次回は、今回作ったドローダウンを元に、最大ドローダウンをシステム評価に追加しよう。

ではでは(^_^y

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

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

| | コメント (2)

2006/10/18

最大値洗い損益

いったん取引に入ったならば値動きの問題だ
魔術師たちの心理学、P308

最近、週末はいろいろなイベントで埋まっていて、平日は昼間の仕事が佳境で、なかなかトレードシステム開発が進まない...

もっとも、昼間の仕事で、相当プログラミングをしているので、「もうプログラミングはいいや」って気分なんだけどね(^_^)

中には、昼間の仕事でプログラミングして、家に帰ったり週末もオープンソースのプログラミングをしたりする人もいる。

家族持ちには、そこまでのコミットはちとつらいかな...

現時点でさえ、週末のイベントで家を空けることが多くて、よめさんにはお小言言われてるぐらいだしね(^_^u

じょじょに回復。やっぱ継続することが大事なんだねぇ(^_^)

今回も、ドローダウンの続きで、前回出した値洗い損益を使って「最大値洗い損益」を出す。

最大値洗い損益を出すための列を値洗い損益(O列)と損益(P列)の間に1列追加。

P列最上部の”P”と書かれた灰色の列表示枠で右クリックをして、「挿入」を行えばOK。新しいP列が追加される。

P51に「最大値洗い損益」、初めて建値が発生するP78に最大値洗い損益を入れるが、前々回入れた「最大累計損益」と計算式自体は一緒なので、Z78をコピーして、P78にペースト。

式の内容も累計損益と値洗い損益の違いだけなので、省略。

確認したら、P78をコピーしてから、P59~P794にペーストして、値洗い損益が最大値洗い損益を超えるたびに最大値洗い損益が更新されることを確認しよう。

最大値洗い損益

次回は、これらを使って、いよいよドローダウンを求めてみよう。

ではでは(^_^y

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

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

| | コメント (2)

2006/10/17

値洗い損益

仕掛けのときからの価格変動について考え始めたならば、さらに興味深い考えに行き着くであろう
魔術師たちの心理学、P308

昨日は、オートマチック・システムトレード・セミナー(入門編)の内容を固めるためのミーティングをした。

内容としては、最初にオートマチック・システムトレードの考え方やメリット・デメリットを軽く話し、具体的に海外口座を開設する方法や、MetaTraderの基本的な使い方を一通り説明した後、このセミナー最大の山場、MetaTraderの出来合いのプログラムを組み合わせてトレードシステムをほぼプログラミング不要で開発するノウハウと、出来合いのプログラムをベースに簡単なプログラミングのレクチャー、そして、作ったプログラムの実際の動作を見てもらい、実際にオートマチックにトレードする様を見てもらおうと思う。

...といっても、セミナーは休日なので、平日に撮ったものを流すだけなんだけどね。まるで3分クッキング(^o^)

キャプチャを撮る日は、利益が出るといいんだけど(笑)。

もうすぐ25位以内に返り咲き?

今回は、ドローダウンの続きとして、「値洗い損益」を出そう。

値洗い損益は、いわゆる評価損益のことで、決済していないポジションの損益がいくらになっているかを表す。

ここでは、買いポジションのときはその日の安値と建値の差、売りポジションのときは建値とその日の高値の差を値洗い損益とする。

まず、値洗い損益を出すために、落値(N列)と損益(O列)の間に1列追加。

O列最上部の”O”と書かれた灰色の列表示枠で右クリックをして、「挿入」を行えばOK。新しいO列が追加される。

O51に「値洗い損益」、初めて建値が発生するO78に「=IF(J77=1, E78-M78, IF(J77=-1, M78-D78, ""))」を入れる。

この式は、シグナル(J77)が買い(=1)のときは値洗い損益に「安値(E78) - 建値(M78)」を入れ、シグナルが売り(=-1)のときは値洗い損益に「建値(M78) - 高値(D78)」を入れる。

確認したら、O78をコピーして、O59~O794にペーストする。

値洗い損益

後は、ドローダウンを計算するためのもう1つの要素、最大評価損益、通称「最大値洗い損益」を求めれば、ドローダウンが計算可能になる。

続きは次回。

ではでは(^_^y

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

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

| | コメント (2)

2006/10/16

最大累積損益

ドローダウン(drawdown) 負けトレードのため資金が減ること、あるいは建玉中に含み損が発生したこともいう
魔術師たちの心理学、P429

先週の土曜日、「マイペースなシステムトレード・セミナー」受講者のうち、希望者限定で無料(といっても会場費\500はカンパだが)アフターフォロー勉強会を開催した。

先月、すでに第1陣を実施しているので、今回で計2回の開催だが、第2陣は、運用の突っ込んだことや複数システムの評価方法や切り替え方、心理面の解決など、相当奥が深いところについて話し合った。

あれだけの内容をシェアできた参加者7名は、めちゃくちゃラッキーかも知れない...

話した内容は、近々ブログでシェアしようかな。

次の第3陣は11月を予定しているけど、今度はどんな面白いやり取りができるんだろう...ワクワク。

こちらもワクワクできるといいなぁ(^o^)

さて、今回から何回かに分けて、ドローダウンを求めるための対応をする。

ちなみに、ドローダウンとは、過去の最大利益からどれぐらい下がったかを表すもの。

ドローダウンは、システムトレードにおける「リスク」を表す。

ドローダウンが小さければ小さいほど、利益のブレが少なくなり、より安定したシステムと言える。

今回は、ドローダウンを計算する手始めとして「最大累積損益」を出そう。

最大累積損益を出すために、累計損益(X列)の右側に1列追加。

X列最上部の”X”と書かれた灰色の列表示枠で右クリックをして、「挿入」を行えばOK。新しいX列が追加される。

X51に「最大累計損益」、利益がはじめて発生するW93の隣のX93に「=IF(X92>W93, X92, W93)」を入れる。

この式では、1つ前の最大累積損益(X92)が現在の累積損益(W93)よりも大きければ、1つ前の最大累積損益を現在の最大累積損益とし、現在の累積損益の方が大きければ、現在の累積損益を現在の最大累積損益としている。

確認したら、X93をコピーしてから、X59~X794にペーストして、累積損益が最大累積損益を超えるたびに最大累積損益が更新されることを確認しよう。

最大累計損益

これで、過去の最大利益を求めることができたので、累積損益との差を出すことで、ドローダウンが計算できるようになる。ただし、これには評価損益が含まれていないので、不完全。

そこで次回は、ドローダウンを計算するための次の要素である評価損益、通称「値洗い損益」を出してみる。

ではでは(^_^y

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

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

| | コメント (2)

2006/10/13

期待値の真価

マトリックスに表れたおはじきのサイズを眺めてみよう。そこから何が読み取れるか。利益の大きい勝ち売買を増やすには、システムをどう変えれば良いのだろう。あるいは、コスト高な負け売買を減らすにはどうすべきか。
魔術師たちの心理学、P210

ここ数日のコメントにまとめて返事をしてしまった(笑)ので、「損益分布をまとめる」「相場での期待値」「オートマチック・システムトレード」「何もしない夏休み」「6大自由」
あたりにコメントした覚えがあればどうぞ~。

それではお待ちかね。

期待値の更なるツッコミについていってみよ。

まず、以前ウクレレさんから、「1ドル当たりの期待値」という表現について、単位が円じゃないというツッコミをもらったけど、実は単位は何でもOK。

期待値が5.78と出たときは、1円当たりで換算すれば5.78円だし、1,000円当たりなら5,780円、$1当たりなら$5.78、こんな感じで単位は何でも構わない。

...あれ?B40が間違って「50円あたりの期待値」になってるじゃん!

えーと、B40を「1円あたりの期待値」に直しておいてね...

1円当たりの期待値

さて、この1円あたりの期待値なんだけど、一体どのぐらいあれば、いいシステムと言えるのだろうか?

その答えは、魔術師たちの心理学のP210にある(実は、ここに1ドル当たりの期待値の求め方と評価方法、そして忘れてはならないことがとても分かりやすくまとめてある)。

ここの6.の説明によると、「~少なくとも100回の売買で1ドル当たり50セント超の期待値であれば立派である。」だそうな。

つまり、1円当たり0.5円超の期待値があれば立派らしい。

これまで作ってきた日経225システムは、利益曲線だけ見ると、ドローダウンが深くて、たいして儲かっていないように見えるけど、1円当たりの期待値は5.78円と、かなりいい期待値のシステムってことが分かる。

ただし、総トレード回数が36回と少なすぎるから、信頼性が低い。

野心のある方は、10年分ぐらいの日経225データを持ってきてバックテストしてみるのもいいかも知れない(もしやったら、1円当たりの期待値とかその他システム評価結果を教えてちょーだいな)。

また、7.に「期待値を達成するために必要な売買回数を知る。」とあるように、1円当たりの期待値を出すことは、期待するパフォーマンスを達成するために必要な売買回数を知るいい手がかりにもなる。

必要な売買回数が分かれば、心理的な負担(待てる時間や連敗への安心感)や、手数料・スリッページなどのコストも計算できるようになる。

もう1つ、仮に期待値が低くても、売買回数が増えれば、十分な成果を出すことができるという発想にもつながる。

ただ、そのためには、より長いトレード期間が必要となる(根本的にシグナルやストップを改善するということを除けば)。

それはつまり、目標達成までの時間がかかるということ。

同時に、「市場や銘柄の性格が変化しシステムが通用しなくなるかも知れない」というリスクも増える。

このいずれも、心理的な問題なので、あなたのリスク許容度次第。

期間を延ばして売買回数を稼ぐのか、それとも期待値自体を改善するのかあなた自身が選択して欲しい。

そして、忘れてはならないのが、プラスの期待値が高くても、ポジションサイジングがお粗末なら、破産することは十分にあり得るということ。

このことは、ポジションサイジングのプログラミングの際に、改めて説明したいと思う。

次回は、ドローダウンの計算でもしてみようかな。

ではでは(^_^y

p.s.カブロボは、エントリーし損ねた(T_T)...

| | コメント (4)

2006/10/12

トレードの平均期間

多くのトレーダーや投資家は、持っているポジションが早い時期に思いどおりの方向に行かないのであれば、将来もうまくいかないだろうと言っている。このためひとつのストップの手法として時間ストップがある。
魔術師たちの心理学、P318

「マイペースなシステムトレード・セミナー」のDVDが、もう少しで完成。

セミナー当日の映像に加え、その後開催したアフターフォロー勉強会(期待値と機能する概念について)のプレゼン資料と音声のおまけ付き。

実際、自分でも何回か見直してみたけど、システムトレードをやる上で必要なことがコンパクトにまとまっていて、ちょっといい感じ。

このDVDと音声を見聞きした後で、巷で難解と評されている(笑)魔術師たちの心理学を読むと、だいぶ理解しやすくなると思うよ。

予約をしたみなさま、楽しみに待っててね。

ありゃま、25位圏外になっちった(T_T)...気が向いたら応援よろしく~

前回、追加した利益日数、損失日数を元に「トレードの平均期間」を出してみよう。

Z53に「=AVERAGE(Z58:Z794)」を入れ、利益日数の平均を出し、AB53に「=AVERAGE(AB58:AB794)」を入れ、利損失日数の平均を出す。

次に、B41に「トレードの平均期間」、B42に「勝ちトレードの平均期間」、B43に「負けトレードの平均期間」を入れ、D42に「=Z53」、D43に「=AB53」を入れ、D41に「=AVERAGE(D42:D43)」を入れる。

式自体は、これで終わりだけど、小数点がえらい長くて見づらいので、書式を整えよう。

Ctrlキーを押したまま、D41~D43、Z53、AB53をクリックして選択した後、右クリック、「セルの書式設定」を選ぶ。

「表示形式」タブになっていることを確認し、「分類」リストで”数値”をクリックしたら、「小数点の桁数」を”2”に設定して、「負の数の表示形式」リストで”-1234.10”を選択したら、「OK」ボタンをクリック。これで小数点が2桁になる。

書式設定で小数点の桁数を調整

更に、値の後ろに単位として”日”を入れてみよう。

「分類」リストで”ユーザー定義”をクリックし、「種類」の中に”0.00_”と書かれているので、”0.00_ 日”と入れ、「OK」ボタンをクリック。これで、値の後ろに”日”が付くはずだ。

書式設定で単位を付ける

書式を整えた後は、こんな感じになる。

トレードの平均期間

これを見ると、負けトレードは8日(営業日で1週間半)近くで終わっていて、勝ちトレードは30日(営業日で1ヶ月半)近くかかっていることが分かる。長さ的には、マンスリートレードってところか。

ここから、時間ストップ(一定時間内に利益を出さない場合はストップするルール)を作ったりすることもできる。

たとえば、8日経った時点で損失の場合は、時間ストップにより強制的に手仕舞いをする等。

まぁ、あくまで平均なので、日数の微調整は必要だけどね。

更に、日数と利益幅の関係を分析してみて、勝ちトレードの特徴に合わせたフィルタを作ったりもできる。

このような感じで、トレード期間を意識することで、資金効率を良くしたり、勝率を上げたりすることができるので、いろいろ試してみて。

次回は、期待値へのツッコミを再開しようかな。

ではでは(^_^y

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

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

| | コメント (2)

2006/10/11

利益日数、損失日数

どれだけの時間をかけるかによって、どんなシステムにすべきかほぼ決まる。
魔術師たちの心理学、P82

お待たせ!

ひさびさのプログラミングネタをどうぞ~。

まぁ、こちらもマイペースにのんびりやるとしますか(^_^)

前回は、期待値の更なるツッコミを予定していたけど、青本からネタを出すつもりが、青本の代わりに「金持ち父さんのパワー投資術」を持ってきてしまった(笑)ので、代わりに「トレードの平均期間」について。

トレードをあまり知らない頃にありがちなのは、時間を考慮せずに、利益や損失の額だけを意識するということ。

これはIRRのときにも書いたけど、同じ利益でも、投資期間が短ければ短いほど価値がある。

だから、1トレードあたりにどのぐらいの時間がかかるのかを知ることは、そのトレードそのものの価値をチェックする上で、とても重要な要素となる。

また、心理的な面から見ても、1トレードにどのぐらいの時間がかかるかを知らないと、時間がかかり過ぎる、もしくは時間が足りないといった、根拠のない恐れを抱くことになる。

あくまで平均であるため、全てのトレードがその期間で決着が付く訳ではないのだが、大雑把なボリュームを知っておくことは、何事においても大事なことだと思う。

今回は、「トレードの平均期間」を出すために、勝ちトレードと負けトレードの保有日数を出すところまでいこう。

まず、勝ちトレードの保有日数を出す必要がなるので、利益取引(Y列)と損失取引(Z列)の間に1列追加。

Z列最上部の”Z”と書かれた灰色の列表示枠で右クリックをして、「挿入」を行えばOK。新しいZ列が追加される。

Z51に「利益日数」を入れ、利益がはじめて発生するY93の隣のZ93に「=IF(Y93<>"", $K92, "")」を入れる。

Y列に利益が発生するタイミングで、利益発生時の保有日数(実際は前日までの保有日数)が出るようになるはずだ。

確認したら、Z58をコピーしてから、Z59~Z794にペーストして、全体で利益発生時に保有日数が出ることを確認しよう。

同じ要領で負けトレードの保有日数も出す。

AB51に「損失日数」を入れ、Z59をコピーしてから、損失がはじめて発生するAA102の隣のAB102にペーストする。

AB列に損失が発生するタイミングで、損失発生時の保有日数が出るようになるはずだ。

確認したら、AB102をコピーしてから、AB59~AB794にペーストして、全体で損失発生時に保有日数が出ることを確認しよう。

利益日数、損失日数

そういえば、説明するのを忘れていたかも知れないけど、式の中で"$"を使うと、参照する行や列を固定することができる。

たとえば、今回の式で使った”$K93”というのは、コピーして別の列にペーストしたときでも、K列を参照することを意味する(93の方は、ペーストする行によって自動的にずれる)。

ここを”K$93”とすると、どの行に行っても93行目を参照することになり(Kの方は、ペーストする列によって自動的にずれる)、”$K$93”とすると、どこのセルに行ってもK93を参照することになる。

次回は、この利益日数と損失日数を使って、トレードの平均期間を出す。

ではでは(^_^y

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

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

| | コメント (2)

2006/09/26

相場での期待値

1ドル当たりで計算することが大事だ。
魔術師たちの心理学、P199

為替王さんとデッドヒート!

エンジュクランキングで1位をキープ!

ヤバイッ!!

スーパーカブロボのロボット登録の締め切り、あと3日後じゃん!

「まだ何日もあるから、大丈夫だろう...」なんてタカをくくっていたら、いろいろ忙しくなって、すっかり忘れてて、気付いたら締め切り間近(-_-u...

とりあえず、バックテスト足切りを通過できるぐらいのシステムを適当にでっち上げて、本番始まってからしっかりしたのに作り直すか(^_^u...

さて今回は、前回作った損益分布を使って、実際の相場での期待値...つまり、1ドル当たりの期待値を求めよう。

期待値を求めるにあたって、まず各価格帯毎の期待値を計算する。

K2に「利益期待値」、K4に「=H4/(H$4-H$3)*J4」を入れる。

これは、利益額(H4)を最小単位(H$4-H$3)で割ることで「最低単位の何倍なのか?」を求め、それに利益回数%(J4)をかければ、利益トレード全体における期待値が出てくる。

K4をコピーした後、K5~K48にペーストすれば、各利益額の期待値が出る。

K49に「=SUM(K3:K48)」を入れ、期待値の合計を出せば、利益額の方は完了。

損失の方も同じように、P2に「損失期待値」、P4に「=M4/(M$4-M$3)*O4」、P4をコピーした後、P5~P48にペースト、P49に「=SUM(P3:P48)」を入れればOK。

損益毎の期待値

これで、1ドル当たりの期待値を求める準備は、全て整ったので、B40に「1ドル当たりの期待値」、D40に「=K49-P49」を入れて、晴れて1ドル当たりの期待値を知ることができる。

単位当たりの期待値

次回は、期待値の読み方と更なるツッコミをする予定...でも、もしかしたら、カブロボネタになるかも(^_^)

ではでは(^_^y

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

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

| | コメント (4)

2006/09/25

損益分布をまとめる

総利益が分かっているのにどうしてわざわざ期待値を計算する必要があるのかという質問があった。答えは簡単。期待値があれば、時間やポジションサイジング、値の異なる物の売買が含まれているなどの要素に左右されずにシステムを比較できるからである。
魔術師たちの心理学、P199

最近、mixiネタを書いているせいか、何も考えず「mixiで儲ける」的なアフィリエイトのトラックバックを送る不埒な輩が多い。あまり質がいいとは言えないものが多いため、問答無用で削除&ブラックリスト行き(今後トラックバックだけでなく、コメントも永久に書けなくなる)にしているので、その手のトラックバックを送る際はご注意を。逆に、記事と関連のあるトラックバックならいつでも大歓迎。

エンジュクのランキングで1位になったよ!

さらにあの為替王さんをとうとうブレイクアウト!

昨日、自分とそっくりなmixi友達と会った。

見た目は別に似ている訳じゃないけど、人や物事への感受性、頭の使い方、学習パターン、失敗に対する捕らえ方、恋愛感(笑)などがまるで鏡を見ているかのような感覚で、とても別人とは思えない。

話していても、時間軸のちょっと違う自分と話しているような不思議な感覚。

これまでの自分を振り返る「秋」の季節の中で、この「自分自身と出会う」という体験は、言葉では言い表せない何か貴重なものを得た気がする。

mixi日記には、このネタについてもっと突っ込んだことを書いているので、興味があればどうぞ~。

ここ何日かの「自分のポジション」に気付く中でこちらのポジションもいい感じになってきている

さて、予告通り、期待値のより詳細な分析についてやっていこう。

たっちさんのコメントにもあるように、1ドル当たりの期待値について解説していく。

これを1回で全て説明することはできないので、とりあえず今回は、損益分布についてまとめる。

H2に「利益幅」、I2に「幅毎利益回数」、J2に「利益回数%」、M2に「損失幅」、N2に「幅毎損失回数」、O2に「損失回数%」を入れる。

H3に「0」、H4に「50」と入れたら、H3~H4を選択して、H4の右下にある十字をH48までドラッグする。50ずつ増える値がH5~H48に入るはず。

コピー用十字

この数字は、\50刻みの利益の分布を表す。

同じように、M3に「0」、M4に「-50」と入れたら、M3~M4を選択して、M4の右下にある十字をM48までドラッグする。今度は、-50ずつ増える値がM5~M48に入るはず。

こちらは、-\50刻みの損失の分布になる。

それから、I49に「=SUM(I3:I48)」を入れ、I49をコピーした後、J49、N49、O49にペースト。

I49には「幅毎利益回数」の合計、つまり勝ちトレード回数と同じ数字がこの後入り、J49には各分布価格の発生回数の%の合計、つまり必ず100%がこの後入る。ようするに、ここはチェック用に合計の計算をしている。

N49、O49も同様に、損失回数のチェックをここで行う。

さて、ここまで来たら、実際に損益分布を求めてみよう。

まずは、I3に「=COUNTIF(Y$58:Y$794, "<"&H4/2)」を入れる。

これは、利益取引(Y$58:Y$794)から、\0~\24の範囲の利益取引回数合計を計算している式だが、これらを全て\0のグループとしてまとめている。

なお、”countif”は、条件に合ったセルの個数を数える関数。

次に、I4に「=COUNTIF(Y$58:Y$794,">="&(H3+H4)/2)-COUNTIF(Y$58:Y$794,">"&(H4+H5)/2)」を入れる。

これは、先ほどと同様、利益取引(Y$58:Y$794)から、\25~\74の範囲の利益取引回数合計を計算して、\50のグループとしてまとめている。

更に、I4をコピーして、I5~I47にペーストすれば、\50刻みの各利益価格帯の取引回数の分布が計算できるという寸法だ。

最後に、I48だけは、次の価格帯がないため、「=COUNTIF(Y$58:Y$794, ">="&H48)」という式で\2,225(\2,200と\2,250の中間)以上は全て\2,250のグループとしてまとめている。

ここで、I49は、勝ちトレード回数(D22)と同じ数値になっているかな?

ここまでの利益分布と同じ要領で、損失分布もまとめる。

N3に「=COUNTIF(Z$58:Z$794, ">"&M4/2)」を入れれば、損失取引(Z$58:Z$794)から、\-24~\0の範囲の損失取引回数合計を計算して\0のグループとしてまとめられる。

N4に「=COUNTIF(Z$58:Z$794,"<="&(M3+M4)/2)-COUNTIF(Z$58:Z$794,"<"&(M4+M5)/2)」を入れ、N4をコピーして、N5~N47にペーストすれば、\-50刻みの各損失価格帯の取引回数の分布が計算できる。

N48に「=COUNTIF(Z$58:Z$794,"<="&M48/2)」という式で\-2,225(\-2,200と\-2,250の中間)以下は全て\-2,250のグループとしてまとめられる。

さて、N49は、負けトレード回数(D23)と同じ数値になったかな?

ここまでで、損益回数は分かったので、今度は取引全体のうち、各価格分布が何%ずつ占めているかを計算しよう。

利益取引回数%は、J3に「=I3/I$49」を入れ、J3をコピーした後、J4~J48にペーストして出す。

損失取引回数%は、O3に「=N3/N$49」を入れ、O3をコピーした後、O4~O48にペースト出す。

ここで、J49とO49は、100%になっているかな?

次回は、この損益分布を元に、実際の相場での期待値を求める。

ちなみに、魔術師たちの心理学のP193~P209には、今回および次回伝える内容についての詳しいことが書かれている。

何度も読み直して理解すれば、システムの評価を的確に下せるスキルが身につくはず。

更に、P201に書かれていることは、期待値からシステムを分析するアプローチで、実は「機能する概念」にも通じる部分なので、ぜひマスターしておいて欲しい。

一応、このブログでも、説明はするけど、過剰な期待しないように(^_^)

ではでは(^_^y

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

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

| | コメント (12)

2006/09/22

期待値

ある顧客に、本書のなかで期待値について書くつもりだと話したら、「どうしてそんなことを。それを知ることはわたしたちの優位性じゃないですか」と言われた。
魔術師たちの心理学、P179

先週ぐらいから、TODOがたまりっぱなしだったり、情報の整理ができなかったりと、いろいろな心理的ギャップから来るストレスがあったんだけど、今の「自分の季節」が”収穫の秋”であることに気付いたおかげで、だいぶすっきりした(mixiを見れなければ、こちらをどうぞ)。

どうやら、ここ3ヶ月のようなハイペースは、もう終わりらしい。そのことに気持ちが対応できていなくて、焦りからストレスが生まれていたようだ。

確かに、システムトレードもその他のことも、3ヶ月前には想像できないぐらいの快進撃だったので、今ぐらいが普段のペースなんだなぁと納得。

11月までは、ゆっくり会社でも作りながら(笑)、次期トレードシステム開発に専念したり、情報や経験の整理と自分への投資をしようと思う。

そして、ブログには、情報や経験の整理ということで、ここ1年ちょいで私が得たシステムトレードのノウハウをどんどん公開していこうと思う。同時にシステムトレードノウハウの集大成でもある、セミナーDVDの販売を完全に自動化すれば、ひと段落着くかな?

自分の現在位置がはっきりした影響か、ランキングもじょじょに上昇中

やはり、人の心理と結果は、密接にリンクしているんだろうね。

結局、システムトレードやビジネスは、自分が何者なのかを知るプロセスなのかも知れない。うーん、哲学的(^_^)

まぁ、そんな思い込み(笑)はさておき、今回は、システムトレードでかなり大事なんだけど、あまり紹介されることがない「期待値」について。

これは、プロフィットファクター損益レシオのいいとこどりをしたようなシステム評価指標。

期待値は、魔術師たちの心理学の中でも、かなり重要な位置を占める考え方なので、この機会にぜひマスターして欲しい。

といっても、計算式はとても簡単。

 【期待値】 = (【勝ちトレードの平均利益】×【勝率】 )-( 【負けトレードの平均損失】×【負率】)

早速、プログラミングしてみよう。

B39に「期待値」、D39に「=(D36*D25)+(D37*(1-D25))」を入れる。

上の式のように、勝ちトレードの平均利益(D36)と勝率(D25)をかけた値から、負けトレードの平均損失(D37)と負率...つまり、100%から勝率を引いた値(1-D25)をかけた値を引くと、期待値は計算できる。

期待値

さて、期待値が何を意味するかというと、「トレードを続けている限り、1回のトレードで見込まれる平均損益」を表している。

つまり、今回のケースで言えば、1回のトレード当たり\65.15がポケットに入るということ。

そんなトレードだったら、誰でも飛びつくはずだよね?

ただし、これには「トレードを続けている限り」という大前提があって、続けないとこういう結果にはならない。多くの人が、プラスの期待値を持ったシステムを使っていても、継続的に利益を出せないのは、ここに全ての原因があると思う。

わかりやすい例としては、利益曲線を見れば一目瞭然で、2006年12月よりも前にトレードを辞めてしまうと、ダメってこと。

ストップチューニング後の利益曲線

破産せず、生き残りさえすれば、統計的には期待した結果が手に入る...

これが、トレードを延々と続けることの価値であり、ポジションサイジングの目的である「生き残ること」に意味が出てくるところでもある。

反対に、数回のドローダウンで心理的に耐えられず相場を投げ出してしまったり、過剰なリスクのポジションサイジングにより破産してしまうと、この果実を味わうことはできない。

このことを極論すると...

期待値がプラスなら、残りは心理面が全て

リスクをどれだけ取るか、ポジションサイジングをどうするか、システムにしたがうか...これらは全て心理的要素であり、心理が結果のほとんどを支配する(おや?思いがけず冒頭のネタにリンクしたぞ)。

こないだのセミナーで、「自分の心理やライフスタイルに合ったシステムを使うこと」について散々繰り返していたのは、こういった裏付けがあるからこそ。

心理的に受け入れられるリスクレベルや時間軸を持ったシステムでなければ、システムを守り続けることはできず、結果として期待値通りの結果を得ることはできないのだ。

もし、この部分をちゃんと理解せず、「トレードに心理は関係ない」と結論付けるなら、恐らく、1回2回は大勝することはできても、相場で長生きすることはできないだろう。

たかだか1年ちょいの結果しか見ていない私ですら、強くそう思うのだから、これが何年も続くトレードだとすれば、そのほとんどが「自分自身の心との対話」だと言い切ってもいいかも知れない。

自分の心を制するものが、世界を制する...

システムトレードは、このことを最も純粋な形で体験できる媒体なのかも知れない。

ちなみに、期待値がマイナスだと、どのようなポジションサイジングを用いても、継続的な利益を出すことはできないので要注意。

次回は、期待値について、更に突っ込んだ説明をする予定。

ではでは(^_^y

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

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

| | コメント (8)

2006/09/21

損益レシオ

見込める利益と起こりうる損失を天秤にかけて、その比率に納得できれば実行する。一流の投資家は、マーケットにあるチャンスをリスク・リワード比率で言い表す。
魔術師たちの投資術、P247

なんだか、システムトレードに没入する時間がなくなっている。

運用は1日15分なので、これは順調に続けられているけど、トレードシステム開発がすっかり停止中。

割と落ち着けるまとまった時間がないと、開発する気になれないんだよねぇ。

この気の抜けようを反映するかのごとく、こちらもやや低迷中...

しまいにゃ、「mixi日記の方が面白いですよ」とツッコまれることが多くなった今日この頃(-_-u...

ブログを書くのに30分~1時間ぐらいかかる(Excelの検証があるからね)のに対して、mixi日記はたかだか5分程度。対時間利益率は、あきらかにmixi日記に軍配が上がりそうだ(^_^u...

それでも、ブログの記事を楽しみにされているあなたは、どうぞ応援よろしく~

さて、前回計算した平均利益と平均損失を使って、今回は損益レシオを計算してみよう。

損益レシオは、プロフィットファクター同様、システムが儲かるシステムかどうかを評価する指標。

こんな式で計算できる。

 【損益レシオ】 = 【勝ちトレードの平均利益】 ÷ 【負けトレードの平均損失】

数字の見方については、後で解説。

損益レシオの入力も、プロフィットファクター同様、とても簡単。

B38に「損益レシオ」、D38に「=ABS(D36/D37)」を入れるだけ。

損益レシオ

さて、プロフィットファクターと損益レシオ、どちらも儲かるシステムかどうかを評価する指標だが、一体何が違うのかということが気になっているんじゃないかな?

最大の違いは、「期間のトータル」なのか「平均」なのかということ。

プロフィットファクターは、総利益と総損失から計算しているため、期間のトータルの損益率と勝率を折り込んだ指標になっている。つまり、「最終的に儲かっているかどうか?」を知ることができる。

それに対して、損益レシオは、平均利益と平均損失から計算しているため、1トレード当たりの平均となり、勝ちトレードと負けトレードが1対1で発生する場合にプラスになるかマイナスになるかどうかを表す。つまり、勝率なしの利益と損失のバランスを知ることができる。

プロフィットファクターは、1以下だと絶対に儲からないシステム確定だけど、損益レシオは1以下でも、勝率が高ければ儲かるシステムになる。もちろん、大きいことに越したことはないんだけどね。

プロフィットファクターと損益レシオの詳しいことは、ろっく株式投資研究室に書かれていることが参考になるのでどうぞ。

具体的な使い方としては、プロフィットファクターはトレードシステム同士のパフォーマンスを比較するのに使って、損益レシオはどのぐらいの勝率があれば破産せずに済むかを調べるのに使える。

勝率と損益レシオによる破産確率表は、一角さんのブログをどうぞ。

次回は、損益レシオとプロフィットファクターのいいところを組み合わせた「期待値」について。

ではでは(^_^y

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

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

| | コメント (4) | トラックバック (0)

2006/09/19

平均利益と平均損失

負け売買と勝ち売買をそれぞれ平均すると分かりやすい。1回で大きく儲けたり、何度も小さな損をすることもあるので正確とは言えないが、およそのところが理解できる。
魔術師たちの心理学、P180

連休で更新してなかったけどたくさん応援してくれてありがとう!

いやー、先週は連休中も含めて、怒涛の忙しさだった。

「これでもかっ!」というぐらいTODOリストが一杯になってたし、平日・休日問わず、人と会わない日はまるでなかった。

あまりにハイペース過ぎたせいか、得た知識の整理も、TODOの消化スケジュールも、全然追いついてない感じだなぁ...

あんまり溜め込むと、消化不良でストレスになりそうだから、少しペースダウンしないと。

何事も、「楽しくマイペース」が基本だからね。

ではでは、いつものプログラミングネタいってみよ。

今回は、新たなシステム評価として「損益レシオ」や「期待値」を出す前段階として、平均利益と平均損失を計算しておこう。

まず、平均利益と平均損失を出すにあたって、トレード回数に関する値をシステム評価としてまとめよう。

B22に「勝ちトレード回数」、B23に「負けトレード回数」、B24に「総トレード回数」と入れた後、Y52をカットしてD22にペースト、Z52をカットしてD23にペースト(コピーではなくカットを使う点に注意)。

これで、勝ちトレード回数と負けトレード回数がシステム評価に移ったので、D24に「=D22+D23」という式を入れて、トレード回数関係の整理は完了。

ついでに、計算にトレード回数を使っている、勝率(D25)の式も「=D22/D24」に修正しておこう。

整理が終わったら、B36に「勝ちトレードの平均利益」、D36に「=D27/D22」を入れる。

勝ちトレードの総利益(D27)を勝ちトレード回数(D22)で割れば、平均利益が計算できる。

同様に、B37に「負けトレードの平均損失」、D36に「=D28/D23」を入れれば、平均損失も計算できる。

トレード回数、平均利益、平均損失

これで、「損益レシオ」と「期待値」を計算する準備はできたので、次回は「損益レシオ」を出してみよう。

ではでは(^_^y

p.s.そういえば、アフターフォロー勉強会でやった「雪合戦をモデルにした期待値の説明」は、かなり好評だったなぁ。

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

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

| | コメント (0) | トラックバック (0)

2006/09/15

プロフィットファクター

悪い結果を受け入れられなければ、投資家としては絶対に成功しない。やり手の投資家でも儲かる売買は半分もない。
魔術師たちの心理学、P39

プログラミングネタを書いたら勢いが復活!?

mixiを寄値より10万円ほど下がったところで売っぱらった。

板見てると、もう普通の株だもんね。

システムや過去データがないから継続的にトレードすることもできないし、長期ホールドするなら他でもっと魅力的な銘柄あるしね。

それに、また欲しくなったら、買い直せばいいだけ。

下手に長引かせて、ベンチャーキャピタルや大株主の売却で一気に落とされるよりは、早めに利益確定して脱出した方が心理的にも健全だ。

もう1つ、このぐらいの利益は、毎日やっているシステムトレードで言えば、3ヶ月分程度なんだよね。

朝、早起き(6時起き)する苦労と利益を天秤にかけたら、システムトレードの方がよっぽど安定しているし、割がいいや(^_^)

とはいえ、初IPO成功でちょっと気分はいいね(^_^)

さて、今回は、システム評価の続きで、プロフィットファクターいってみよ。

ようやく、システムトレードっぽいキーワードが出てきたね。

プロフィットファクターは、システムが儲かるシステムかどうかを評価する指標。

こんな式で計算できる。

 【プロフィットファクター】 = 【勝ちトレードの総利益】 ÷ 【負けトレードの総損失】

プロフィットファクターが、1(100%)だと、総利益と総損失が同額なので、プラマイゼロのシステムということになる(実際は、時間を失っているので、あきらかな機会損失なんだけどね)。

プロフィットファクターは、大きければ、大きいほどいいシステムを表す。

今回の入力はとても簡単。

B35に「プロフィットファクター」、D35に「=ABS(D27/D28)」を入れるだけ。

負けトレードの総損失が、マイナスの値なので、絶対値で補正する。

プロフィットファクター

133.61%か...思ったよりは悪くないな。

...ってことは、プロフィットファクターは当てにならないってことか!?

ドローダウンとか、まるっきり無視しているから、ある意味でそれは当たっているかも知れないなぁ。

次回も、引き続きシステム評価。

ではでは(^_^y

p.s.そういえば、セミナー後のアンケートでも、システム評価についてのリクエストが多かったなぁ(セミナーでは、あまり話せなかったけど)。ブログでシステム評価のこと書いてるから、ランキングが上がっているのかな?

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

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

| | コメント (2) | トラックバック (0)

2006/09/14

内部収益率

損もありだと思えなければ、長期的にはかなり儲かるが、売買の60%は損をするような優れた売買システムを使えない。
魔術師たちの心理学、P39

プログラミングネタがないと伸び悩むってところかな?

mixi、値段付かず!

売気配の20倍近い買気配でスタートして、終わりには2~3倍ぐらいで場が引けた、順調な滑り出し。

明日、どのあたりで止めてくるかが、気になるところ。

1日(実際は、2週間近く310万円を拘束されているのだが)で2倍って、IPO、なかなかすごいね。

さて、ひさしぶりのプログラミングネタ。

前回のCCR(キャッシュ・オン・キャッシュ・リターン)に引き続き、収益率を表すIRRについて。

IRRは、「内部収益率(Internal Rate of Return)」の略。

CCRもIRRも、「いくら投資したら何%戻ってくるか?」という評価をするための指標なんだけど、違いは”期間を意識するかしないか”という点。

CCRは、期間を意識しないので、たとえば120%のリターンがあるものは、1年後でも10年後でも120%のまま。

IRRは、期間を意識するので、同じ120%の投資でも、1年後なら120%、10年後なら120%÷10年=12%となる。

つまり、同じ利益%なら、時間がより短い方が価値があるってこと。

ようするに、「月末の100万円」よりも「今日の100万円」っていうやつだ(^_^)

ちなみに、IRRは、複利を考慮して計算する場合もあるが、話を簡単にするために、ここでは単利ベースで計算しておく。

では、IRRを計算するために、まずトレード期間を出そう。

B30に「トレード開始」、D30に「=B58」、B31に「トレード終了」、D31に「=B794」を入れる。

なお、今まではB794のような最終データは、Bxxxと書いていたが、面倒になってきたので(笑)、B794と書くことにした。”~794”のような感じ書いてあったら、最終データを使うという意識で見て欲しい。

次に、B32に「トレード日数」、D32に「=D31-D30」を入れて、トレード日数を計算する。

それから、B33に「トレード年数」、D33に「=D32/365」を入れれば、トレード年数が出てくる。

...おや?今まで日経平均4年分と書いていたけど、どうやら3年の間違いだったらしいことが、いまさら判明(^_^u...

ま、まぁ、そんなことはさておき、IRRを出してみよう。

B34に「IRR」、D34に「=D29/D33」を入れる。

CCRをトレード年数で割れば、IRRのいっちょあがり。

IRR(内部収益率)

うーん、年率3.91%って米国債買った方がマシじゃないか(-_-u...

でも、こんなろくでなしのシステムが、たくさん稼げるシステムに大化けしたら、きっと楽しいぞ(できるのか!?)。

次回は、引き続き、システム評価ネタの予定。

ではでは(^_^y

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

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

| | コメント (0) | トラックバック (0)

2006/09/08

キャッシュオンキャッシュリターン

相場では正確な勝率や負け率は分からない。いくら勝つか負けるかも厳密には分からない。しかし過去のデータでテストすれば、大体の見当がつく。
魔術師たちの心理学、P193

為替王さんが遠い存在に(T_T)...やっぱ更新休むと順位落ちるんだなぁ

最近は、よく人に会っている気がする。

ワクワクがわかる前は、人に会っても、それが将来に結びついていく感覚があまりなかったから、ぶっちゃけ人脈とか人付き合いとか面倒だなぁって思ったことが何度もある。

でも、最近は、然るべくして人と会っているような感じなので、人と会うたびにどんどん未来が明るくなっていっているような気がするから、人と会うのが楽しくて仕方ない。

昨日も、私の仕掛けている様々なプロジェクトを1年半ぐらい前から後押ししてくれている友達に会って、いろいろ話をしたんだけど、これまで一緒に参加したプロジェクトのことや「なぜそのプロジェクトに参加する気になったのか?」みたいなことをフィードバックしてもらって、それを聞くことで改めて自分の強みがハッキリしたし、そのおかげで更に今仕掛けているプロジェクトやプランへの自信が沸いた。

このような好循環をもたらしてくれる友達は、本当にかけがえのない存在だと思う。

このブログをご覧になっているあなたとも、そういう関係になれたら、嬉しいなぁ。

前回、負けっぱなしのシステム(笑)がようやくプラスの利益になったので、中断していたシステム評価に戻ろう。

以前、システム評価として総損益を求めるところまではやっていたので、今回はCCRを計算してみる。

「はい?CCRって何?」

CCRは、「キャッシュ・オン・キャッシュ・リターン(Cash on Cash Return)」の略。

小難しい用語で書いているけど、要は「いくら投資したら何%返ってくるか?」という評価をする指標のこと。

これとよく似たもので”利回り”というものがあるが、違いについては、次回書こうと思う。

まず、CCRを出すためには、いくら投資したかという情報が必要になる。

そのために、「資金」という入力パラメータを作る。

C7に「資金」を入れ、D7に適当な資金の額を入れる。

現時点では、日経平均をそのまま売買しているようなイメージなので、とりあえず、\30,000もあれば、売買できるだろうということで、資金は\30,000にした。

次に、CCRを求める。

B29に「CCR」を入れ、D29に「=D26/D7」という式を入れる。

総損益(D26)を資金(D7)で割れば、資金を元手に何%損益が返ってくるかが分かるということだ。

CCR(キャッシュ・オン・キャッシュ・リターン)

当然、資金が少なければ、CCRは向上するが、反対にリスキーにもなる。

ここら辺については、ポジションサイジングのプログラミングで、具体的に説明しようと思う。

次回は、CCRと似たIRRと利回りについて。

ではでは(^_^y

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

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

| | コメント (4)

2006/09/07

改善された利益曲線

手仕舞いは、実際2つの重要な変数をコントロールしているのである。すなわち、利益を得られるかどうか、およびどれくらいの利益を得られるかである。両者は、成功するシステムを開発するための主要なカギとなるのだ。
魔術師たちの心理学、P326

ここのところ、投資・マーケティング活動の事業化(と節税)に向けて、会社作りのための活動をしているが、アドバイザーにアポイントを取ったり、収支を整理するのと並行して、会社設立や会社税務の本をいろいろ読んでいる。

その中で、かなりヒットしたのが、「小さな会社の起こし方・儲け方」という本。

1995年の本なので、すでに10年以上経っているが、直観的にかなり来るものがあったので、ブックオフにて105円で買ってみた(^_^)

Amazonのレビューに「隠れた名著」とあったが、まさしくその通りだと思う。会社を作るにあたって、何をしたらいいのか右も左もわからない自分のような人間にとって、かなりシンプルでわかりやすいノウハウが詰まっていて、何よりこれから社長になるであろう読者を励ます著者の姿勢がとても嬉しい。

こんな元気の出てくるような本をいつか書いてみたいなぁ...

さてさて本題。

2本の移動平均によるシグナルを使うことで、うまい具合にトレンドフォローしてくれるシステムができた。

このシステムの利益曲線がどのようになったかを見てみよう。

ストップチューニング前の利益曲線

いきなり最初からドローダウン状態突入の微妙な利益曲線だなぁ(-_-u...

確かにトータルで見るとプラスなんだけど、年次で見たらマイナスの状態が長いので、心理的にはキツそうだ。

数年に1回の大トレンドでプラスのほとんどの利益を稼いでいるあたり、数十年単位で気長に続けられる人向けの極深トレンドフォローシステムといったところか。かなり心理的に成熟していなければ、お付き合いできないね。

しかも、ドローダウンが大きいので、シャープレシオも見たくないって感じ(0.1以下ってぐらいか...)。

とりあえず、ナイショのテクニックでストップ額をチューニングしてみよう(^o^)

利益が最大となるストップ額は、\520らしい。この額で設定してみると...

ストップチューニング後の利益曲線

マイナスの時期は、やはり多いけど、まぁ少しはマシになったね。

シャープレシオも、3倍ぐらい改善された模様。

まぁ、シグナルやストップの改善やポジションサイジング、別銘柄との合成システムをやっていけば、使えるようにはなりそうなので、これをベースにしてみよう。

ようやく利益がプラスになったので、次回からは、中断していたシステム評価に戻ろうと思う。

ではでは(^_^y

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

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

| | コメント (2) | トラックバック (0)

2006/09/05

シグナルの見直し

ドンチャンは移動平均を用いて、システムを構築した最初のひとりであった。彼は、5日および20日移動平均を用いた。
魔術師たちの心理学、P283

会社設立やIPO参加などで昼休みも忙しくてブログ更新してなかったら、えらい下がってしもーた(T_T)

やっぱ、プログラミングの記事は予想以上に書くのがしんどいなぁ...時間がないと、すぐに止まってしまう。時間が少ないときは、プログラミング以外の記事も書こうかな?

ちなみに、相場界芳名録mixi日記は、ブログよりも軽めの内容(っていうか本能の赴くままに書いている)なので、時間がないときでも割と更新してたりする。よければどうぞ。

さて、いきなり本題だが、前回までの苦闘(笑)でトレイリングストップとシグナルストップの相性が悪いことがわかった。

為替や商品先物だと、これがうまく機能するんだが、日経平均ではダメらしい。

...ということで、チャートをしばらく眺めたところ、「移動平均と終値のクロス」よりもゆっくり反応するシグナルにしたら、結構いい感じのトレンドフォローシステムになるんじゃないかなと思い、シグナルを見直してみた。

「移動平均と終値のクロス」よりもゆっくり反応するシグナルとして考えたのは、「短期移動平均と長期移動平均のクロス」。

えらいポピュラーなトレンドフォロー向けシグナルだけど、これならちゃぶつきで頻繁にストップしてしまうこともないと思う。

早速、試してみよう。

まず、移動平均が短期と長期の2つ必要になるので、移動平均(H列)とシグナル(I列)の間に1列追加。

I列最上部の”I”と書かれた灰色の列表示枠で右クリックをして、「挿入」を行えばOK。新しいI列が追加される。

移動平均が2つになるので、ラベルを修正しよう。

H51を「MA短期」に変更して、I51に「MA長期」を入れる。MAは、”Moving Average”の略で、ようするに移動平均のこと。

MA短期とMA長期の両方に平均日数が必要となるので、入力パラメータ欄にも手を入れる。

...とその前に、ちょいと休憩(^_^)

こないだの「マイペースなシステムトレード・セミナー」のポイントを的確にまとめたレビューをいただいた。サンクス!
ある起業家の日々~株と起業と心と

他にもセミナーレビューを書いている方がいたら、こちらのセミナー記事にコメントやトラックバックよろしく~m(_)m

...休憩終わり...

入力パラメータ欄のストップ額(C4~D4)を移動しよう。

C4~D4をカット(コピーではないので注意!)して、C5~D5にペーストする。

次に、C3に「MA短期日数」、C4に「MA長期日数」を入れてラベルを修正。

それから、D3にMA短期日数として「5」、D4にMA長期日数として「20」を入れる。

これで、長期MAの準備もできたので、計算式を入れてみる。

長期MAは、平均日数が20なので19個分上を空けたI77に「=AVERAGE(OFFSET(F77, -$D$4+1, 0):F77)」という式を入れる。

これは、終値(F77~OFFSET分)をMA長期日数(D4)で平均して移動平均を求めている。

全期間のMA長期を出すために、I77をコピーし、I77からIxxx(xxxはデータ数によって変わる)までペーストする。日経平均4年分だと、I794までペースト。スキマなく埋まるはずだ。

最後に、シグナルを短期移動平均と長期移動平均のクロスに対応すれば完了。

J77の式を「=IF(H77>I77, 1, -1)」という式に修正する。

これは、短期MA(H77)が長期MA(I77)よりも大きいときは買い(=1)、そうでないときは売り(=-1)という式。

つまり、短期MAが長期MAを上抜いたときは買いで、短期MAが長期MAを下抜いたときは売りということ。

このシグナルなら、終値と移動平均のクロスよりも、ゆっくりゆるやかにシグナルが変わるので、ストップだらけで損するということがなくなるはず。

トレイリングストップも、終値と移動平均のクロスよりもきれいにトレンドフォローしていることがわかる。

短期移動平均と長期移動平均のクロス時のトレイリングストップ

ずっとこのブログで低迷していた日経225システムも、光明が見えてきたか!?

利益曲線の動きについては次回。

ではでは(^_^y

p.s.セミナー参加してくれた方のブログを勝手に「マイペースなシステムトレーダーズ」ということで、このブログの左下の方にまとめはじめた(^_^)

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

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

| | コメント (4) | トラックバック (0)

2006/08/31

トレイリングストップの評価

トレイリングストップを引き上げ、初期リスクを減少させることで利益を得る機会も見逃している場合がある。代わりに小さな損失で終わるだけである。
魔術師たちの心理学、P329

為替王さんと抜きつ抜かれつつのデッドヒート!(^o^)

いきなり愚痴ですまない。でも、言わせてくれい。

アフィリエイトやトレードシステム販売のトラックバックが多くて、正直困る。

特に、トレードシステム販売の売り文句が、そもそもおかしい。

「システムトレードだから誰でも儲けられます」って、そんな心理面をまったく無視するような輩の作ったトレードシステムが有効な訳がない(たとえコンピュータで全自動注文にしていたとしても、だ)。それに、システムトレードの心理面を理解しているなら、トレードシステムの販売なんて愚かな行為はまずしないものだ。

つーか、トラックバックはさぁ、そもそも関連する記事や引用を口コミするためのものすごく有意義な仕組みなんだから、そこら辺ちゃんと分かった上で有効に使いなよ。「アクセス数泥棒」のようなケチな真似やめようや。信用落としてビジネスできなくなるぞ。

そんな訳で、このブログをご覧のあなたも、明らかに記事と関係ないトラックバックが残っていても、決してクリックしないよーに。

んじゃ、本編いくとしますか。

前回でトレイリングストップを組み込んだ訳だが、利益曲線がどういう結果になるか見てみよう。

まずは、トレイリングなしのストップの場合。

とある方法を使って、最高のパフォーマンスが出るストップ額\26にすると、累積損益は-\2,560.56とマイナス。

トレイリングなしのストップの利益曲線

次に、トレイリングストップの場合。

最高のパフォーマンスが出るストップ額\85にすると、累積損益は-\3,407.79とやはりマイナス。

トレイリングストップの利益曲線

トレイリングストップを使った方が悪いとは...

ダメだ、こりゃ(-_-u

ん?でも、こうしてチャートとトレイリングストップの形を見ると、シグナルストップをなくして、トレイリングストップだけでストップするようにしたら、結構利益出そうな感じだなぁ...

という訳で、次回はシグナルとストップを少し見直してみようと思う。

ではでは(^_^y

p.s.mixiの招待状、送ってますよ~。

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

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

| | コメント (6)

2006/08/30

トレイリングストップを組み込む

トレイリングストップについて重要な点は、手仕舞いのアルゴリズムが自分に有利なほうに動くように絶えず手仕舞いを調整することにある。その動きは利益を生まないかもしれないが、損失の可能性を減少してくれるはずだ。
魔術師たちの心理学、P329

うひゃー、ナント為替王さんを追い越してしまった!

ついにEURJPYが150円台に乗っかってきたね...

昨日は、150円突破した直後、ずるずると下がって、148円代まで下げた模様(リアルタイムでは見ていないのであまり実感ないが)。

おとといの朝、EURJPYを18万通貨ほど買ってみた(つーか、システムが買えといったので買った)けど、この下げでさすがにストップがかかって10万円ほど持ってかれた(T_T)

...ま、トレード続けてれば、こんなことはよくあることだな...

んで、今日は、前日の下げをまるっと忘れたかのように、軽々と150円を突破してきやがった(-_-+

...大台ストップフィルタでも作るか(^_^)

さてさて、セミナーもひと段落したので、トレイリングストップを入れてみよう。

これでよくならなかったら、適当な移動平均と適当な定額ストップではダメなので、機能する概念からアプローチし直すとしよう。

まず、トレイリングストップを作り込む前に、シグナルが逆になりっぱなしでわかりにくいので、これを直しておこう。

I77を「=IF(H77>F77, -1, 1)」に入れ替え、I77をコピーし、I77~Ixxx(xxxはデータ数によって変わる)までペーストする。日経平均4年分だと、I794までペースト。

ちなみに、この状態でのトレイリングなしのストップは、終値とストップ価格をグラフ化してあげるとこんな感じ(ストップ価格は見やすくするために\500で設定)。

トレイリングなしのストップ

次に、損益(N列)とストップ価格(O列)の間に、最大の終値を追跡する列を追加する。

O列最上部の”O”と書かれた灰色の列表示枠で右クリックをして、「挿入」を行えばOK。新しいO列が追加される。

O51に「最大終値」と入れて、O78に「=IF(I76<>I77, F77, IF(I77=1, MAX(O77, F77), IF(I77=-1, MIN(O77, F77), "")))」を入れてみる。

これは、おとといのシグナル(I76)と昨日のシグナル(I77)が異なるときは昨日の終値、そうでない場合は、昨日のシグナル(I77)が買い(1)なら昨日の最大終値もしくは昨日の終値のうち、大きい方を最大終値とし、昨日のシグナルが売り(-1)なら昨日の最大終値もしくは昨日の終値のうち、小さい方を最大終値とするという式。

つまり、シグナルが反転したときは、終値を最大終値とし、シグナルが変わっていない場合は、買いなら前回の最大終値と終値の大きい方を最大終値とし、売りなら前回の最大終値と終値の小さい方を最大終値とするということ。これにより、

これが、トレイリングストップの基礎となる。

全期間の最大価格を出すために、O78をコピーし、O58からOxxx(xxxはデータ数によって変わる)までペーストする。日経平均4年分だと、O794までペースト。スキマなく埋まるはずだ。

最後に、この最大終値からトレイリングするストップ価格を計算する。

P78に「=IF(I77=1, O78-$D$4, IF(I77=-1, O78+$D$4, ""))」を入れる。

これは、昨日のシグナル(I77)が買い(1)なら当日の最大終値(O78)からストップ額(D4)を引いた価格をストップ価格とし、昨日のシグナル(I77)が売り(-1)なら当日の最大終値(O78)にストップ額(D4)を足した価格をストップ価格とするという式。

これで、ストップが最大終値をトレイリングするようになる。

グラフ化してみると一目瞭然。価格を追従しているのがよく分かる。

トレイリングあり

さぁ、利益曲線はどうなるかな?

続きは次回。

ではでは(^_^y

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

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

| | コメント (6) | トラックバック (0)

2006/08/25

ストップの評価

よくあることだが、思いつきの数字を設定することは、ストップを入れた結果、大きな利益の可能性を逸してしまうことにつながら。
魔術師たちの心理学、P315

少し前から、念願の為替部門ランキングに進出(現在16位)。少し上には、為替王さんのような有名な方もいて、「あぁ、ついにここまで来たんだな」と感慨深い感じ(^_^)

でも、記事の更新休んでたら、ポイントずいぶん下がっちゃった(^_^u...

こんなちゃらんぽらんでマイペースな私だがよかったら応援プリーズ(^_^)

さぁ、いよいよストップも終盤戦。

既存の「損益」「累積損益」「利益取引」「損失取引」をストップ対応させて、利益曲線がどうなるかを評価してみよう。

損益は、手数料計算がストップ込損益に含まれ必要なくなるので、手数料をマイナスしているところを削る。N79が「=IF(M79="", "", IF(I77=1, M79-L78, L78-M79))」という式になる。N79をコピーした後、N79~Nxxx(xxxはデータ数によって変わる)までペーストする。日経平均4年分だと、N794までペースト。

累積損益は、ストップ込損益(T列)の累積を出すように変更する。U79が「=U78+IF(T79="", 0, T79)」という式になる。U79をコピーした後、U79~Uxxx(xxxはデータ数によって変わる)までペーストする。日経平均4年分だと、U794までペースト。

利益取引(W列)と損失取引(X列)は、ストップ込損益(T列)を元にするように変更する。W58に「=IF(T58>0, T58, "")」、X58に「=IF(T58<0, T58, "")」を入れ、W58とX58を同時に左ドラッグで選択してコピーした後、W58~Wxxx(xxxはデータ数によって変わる)まで選択してペーストする。日経平均4年分だと、W794までペースト。W列とX列が同時にコピーされるはずだ。

これで、晴れてストップ込の利益曲線が表示されるようになる。

ストップ込利益曲線

さて、ストップ額(D4)が\100のままだと、トータルがマイナスなのでイマイチ。

ここで、とあるExcelのテクニックを使って、最適なストップ額をシミュレーションしてみると...

最適のストップ額は、\400でほぼ最適になるらしい。

「最適なストップ額ってどうやってシミュレーションするの?」

それは...今はナイショ(^_^)

もうちょい後の回で、このテクニックを伝授するので、それまで首を長くして待っててね。

...んー、ストップ額を最適にしても、マイナスのままだなぁ(-_-u...

ストップ額最適化後利益曲線

一応、ストップなしのときよりは3割ほどマイナスは減っているが、どちらにせよ、これじゃ使い物にならんなぁ。

さすが日経平均、一筋縄じゃいかないようだ。

やはり、適当な移動平均と適当な定額ストップではダメなようなので、次回、トレイリングストップへの変更をやってみて、ダメだったときは、機能する概念からアプローチし直すとしよう。

ではでは(^_^y

p.s.Amazonショップを作ってみた。これ、なかなかいいね。

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


| | コメント (6) | トラックバック (0)

2006/08/24

ストップの面倒なところ

わたしの意見では、トレーディングシステムを持っていると言える人とは、マーケット参入時にいつ撤退するのか知っている人である。
魔術師たちの心理学、P302

先週から、FXA証券のシステムがやたらと遅かったり、止まったり、繋がらなかったりで、マジで参った。

一番困ったのは、注文を出しても、数分間、執行されない...

んで、執行完了したら、とんでもない高値(安値)掴みしてて、いきなりえらいマイナスやんけ(-_-+

しかも、注文が出てないと思って、何度かやり直していたせいで、システムが指示した倍(54万通貨)もAUDJPYを買ってるし(-o-+

ポジションサイジングの意味ないじゃんかよぉ!

とりあえず、プラマイゼロの時点で27万通貨は決済できて、システムの指示通りの運用に戻れたので、事なきを得たけど...この落とし前、どうつけてくれんのよ、FXAさんよぉ(ガラ悪っ!)。

FXAって、ツールやテクニカル指標はかなりイケてるのに、こういうダウン時には何も告知しないから不親切でイヤだな。システム情報はいつ見ても無邪気に「システム正常稼動中」ってキレイな緑色してるだけだし(どこが正常やねんってディスプレイにきついツッコミ入れそうになるなぁ)。

ちなみに昨日、とある未公開株案件でFXAのとなりのオフィスにいったので、廊下を歩いていたFXAスタッフを捕まえてうかがったところ、クライアントのバージョンアップに失敗していたとの模様。「うーん、でも、あの挙動は、サーバー側にも問題ある気がするんだけどなぁ」とツッコミを入れたら、開発トップの方を紹介されて、最終的には「うちで働いてもらえませんか?」という謎の結論に(^_^)

今も証券会社向けツールの開発に携わっているけど、FXAも面白そうだなぁ。今度、探りを入れにいってみよっと。

今回の1件があった後、マネーパートナーズCMS FOREXにアカウントを作ってみた(他にも外為どっとコムやトレーダーズ、ひまわりなどいろいろアカウント持っているけどどこも手数料高いんで)。

他にも、為替ブローカーで耐久性のいいところあったら、ぜひご連絡をm(_)m

ま、FOMC発表前のようなシステムが不安定になる時期には、注文を出しちゃイカンという、これも大事な教訓なのかもね。

さて今回は、ストップの続き。割と面倒なところなのでじっくり注意して見てね。

Q列の「ストップ保有期間」は、Q51に「ストップ保有期間」を入れ、最初にストップがかかるQ79に「=IF(P79="ストップ", 0, IF(J79=1, 1, IF(Q78=0, 0, J79)))」という式を入れる。

これは、ストップシグナル(P79)が”ストップ”のときは0(=ポジション無し)を表示し、そうでなければ、シグナル保有期間(J79)が1のときは1になり、1でないときは前日のストップ保有期間(P78)をチェックし、0なら0、そうでなければシグナル保有期間(J79)をコピーする。

これも簡単に言えば、ストップシグナルが出ているときは即ポジション無しにし、ストップシグナルが出ていないときは、ポジション継続中のどこかでストップが出たときは以降をポジション無しに、いずれでもなければポジションをそのままキープするということ。

シグナルのみのときは、シグナル保有期間の間、ずっとポジションを持ったままなので、この列や式は必要ないが、ストップを入れることで、シグナルが反転するよりも前にポジションが途中でなくなることになる。これを記録しておかないと、1度ストップシグナルが出た後、再度ストップシグナルが出た場合やシグナルによる決済が出た場合、すでにポジション無しになっていることが判別できなくなり、正しく損益計算ができなくなるので、この列はかなり重要。

全期間のストップ保有期間を出すために、Q78をコピーし、Q58からQxxx(xxxはデータ数によって変わる)までペーストする。日経平均4年分だと、Q794までペースト。ポジション有無ががスキマなく埋まるはずだ。

R列の「ストップ落値」は、R51に「ストップ落値」を入れ、最初にストップがかかるR79に「=IF(OR(AND(J79=1, Q79=0), AND(Q78>=1, Q79=0)), O79, "")」という式を入れる。

これは、シグナル保有期間(J79)が1かつストップ保有期間(Q79)が0、もしくは、前日のストップ保有期間(Q78)が1以上かつ当日のストップ保有期間(Q79)が0の場合は、ストップ価格(O79)を出し、そうでないときは何もしない。

1つ目の条件は、シグナルがドテンしたその日のうちにストップがかかったことを示す。2つ目の条件は、シグナルがドテンしたとき以外のストップがかかったことを示す。

全期間のストップ落値を出すために、R85をコピーし、R58からRxxx(xxxはデータ数によって変わる)までペーストする。日経平均4年分だと、R794までペースト。ストップのかかるタイミングのみ埋まるはずだ。

ストップ保有期間、ストップ落値

S列の「ストップ損益」は、S51に「ストップ損益」を入れ、最初にストップがかかるS79に「=IF(R79="", "", IF(I78=1, R79-L79, IF(I78=-1, L79-R79, "")))」という式を入れる。

これは、ストップ落値(R79)が空の場合は何もせず、空でないときは前日シグナルが買い(=1)のときはストップ落値(R79)から建値(L79)を引いた額、前日シグナルが売り(=-1)のときは建値(L79)からストップ落値(R79)を引いた額をストップ損益としている。

全期間のストップ損益を出すために、S85をコピーし、S58からSxxx(xxxはデータ数によって変わる)までペーストする。日経平均4年分だと、S794までペースト。ストップのかかるタイミングでストップ額に設定した-\100で埋まるはずだ。

T列の「ストップ込損益」は、T51に「ストップ損益」を入れ、最初にストップ損益が出るT79に「=IF(I77=I78, IF(S79="", "", S79-$D$2), IF(S79="", IF(Q78=0, "", N79-$D$2), IF(Q78=0, S79-$D$2, N79+S79-$D$2)))」という式を入れる。

これは、式の条件がややこしいので、ツリー構造でパターンを説明する。

ストップ込損益
 ├おとといのシグナル(I77)と昨日のシグナル(I78)が同じ
 │ ├ストップ損益(S79)が空のときは何もしない
 │ └そうでないときはストップ損益(S79)-手数料(D2)を表示
 └おとといのシグナル(I77)と昨日のシグナル(I78)が異なる
   ├ストップ損益(S79)が空のとき
   │ ├前日のストップ保有期間が0のときは何もしない
   │ └そうでないときはシグナル損益(N79)-手数料(D2)を表示
   └ストップ損益(S79)が空でないとき
     ├前日のストップ保有期間が0のときはストップ損益(S79)-手数料(D2)を表示
     └そうでないときはシグナル損益(N79)+ストップ損益(S79)-手数料(D2)×2を表示

これは、シンプルに書き直すと、こういう構造になる。

ストップ込損益
 ├シグナルはポジション継続中
 │ ├当日ストップがかかっていればストップ損益のみ
 └シグナルはドテン
   ├当日はストップがかかっていないとき
   │ └過去すでにストップ済みでなければシグナル損益のみ
   └当日はストップがかかっているとき
     ├過去すでにストップ済みでなければストップ損益のみ
     └そうでないときはシグナルとストップの両方の損益を合計

実際、私もストップで散々バグを出した後、結果的にこのシンプルな構造を設計することで無事ストップを組み込めたので、複雑な処理の部分は、プログラミングを行う前に論理的な情報整理をすることがすごく大事だと思う。

全期間のストップ込損益を出すために、T79をコピーし、T58からTxxx(xxxはデータ数によって変わる)までペーストする。日経平均4年分だと、T794までペースト。ストップもしくはシグナルのかかるタイミングで上記パターンの損益額が埋まるはずだ。

ストップ損益、ストップ込損益

さて、ここまでで、ストップに必要な情報はそろったので、続きは次回。

次回は、既存の「損益」「累積損益」をストップ対応させて、利益曲線がどうなるかを評価してみる予定。

ではでは(^_^y

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

| | コメント (4) | トラックバック (0)

2006/08/21

シンプルなストップ

売買概念にとって大切なのは、予想どおりにいかないとき、そうと分かることだ。
魔術師たちの心理学、P106

先週の水曜日から、更新がパタっと止まってしまい、申し訳ない。

不覚にも、大風邪を引いてしまった...

mixi日記にも書いたが、昼間の仕事もブログもセミナーの準備もその他もろもろ気になったが、思いきってしっかり休むことにした。

体調と心はリンクしているので、調子が悪いと、システムを守るのも億劫になり、トレードの成績も悪くなりがち。

あなたも体調管理には十分ご注意を。

さて、長らくお待たせの本題。

前回の予告通り、システム評価をやりやすくするために、総損益をプラスにするためのストップを入れてみる。1回では終わらないので、3回ぐらいに分けて作り込んでいく。

とりあえず、話をシンプルにするために、定額ストップでやってみよう。ちなみに、トレイリングストップではなく、ただのロスカットを行うストップなのでお間違えなく。

最初に、ストップ額のパラメータ欄を作る。

C4に「ストップ額」と入れて、D4に適当なストップ額として適当に\100とか入れておく。

ストップ額

次に、ストップ計算のために必要となる「シグナル保有期間」列を追加する。

シグナル(I列)の右側に新たな列を1列挿入する。J列最上部の”J”と書かれた灰色の列表示枠で右クリックをして、「挿入」を行えばOK。新しいJ列が追加されるはずだ。

列の追加後、J51に「シグナル保有期間」を入れ、シグナルが出て、最初に売買するJ78に「=IF(I77=0, 0, IF(I76=I77, J77+1, 1))」という式を入れる。

これは、昨日のシグナル(I77)が0なら保有日数は0(=ポジション無し)にリセット、そうでなければ、おとといのシグナル(I76)と昨日のシグナル(I77)が同じときは前日の保有日数(J77)にプラス1、おとといと昨日でシグナルが変わっていれば1にリセットという動作をする。

これにより、シグナルが変わらない間、つまりポジション継続時は、保有日数がプラス1され続け、シグナルがドテンしたときは1にリセットされる。ちなみに、シグナル無しになった時点で0にリセットされるが、これは今のところ使い道がないが、ドテン以外のシグナルを使うときは必要なのでフライングで入れておいた。

全期間のシグナル保有期間を出すために、J78をコピーし、J58からJxxx(xxxはデータ数によって変わる)までペーストする。日経平均4年分だと、J794までペースト。スキマなく埋まるはずだ。

シグナル保有期間

その次は、「ストップ価格」「ストップシグナル」「ストップ保有期間」「ストップ落値」「ストップ損益」「ストップ込損益」の6列を追加する。

損益(N列)と累積損益(O列)の間に6つの新たな列を挿入する。N列最上部の”N”と書かれた灰色の列表示枠で右クリックをして、「挿入」を6回行えばOK。新しいO列~T列が追加されるはずだ。

O列の「ストップ価格」は、O51に「ストップ価格」を入れ、建値が有効となるO78に「=IF(I77=1, L78-$D$4, IF(I77=-1, L78+$D$4, ""))」という式を入れる。

これは、昨日のシグナル(I77)が1(=買い)のときは、建値(L78)からストップ額(D4)を引いた価格をストップ価格とし、昨日のシグナル(I77)が-1(=売り)のときは、建値(L78)にストップ額(D4)を足した価格をストップ価格とし、シグナルが1でも-1でもないときは何もしない。

全期間のストップ価格を出すために、O78をコピーし、O58からOxxx(xxxはデータ数によって変わる)までペーストする。日経平均4年分だと、O794までペースト。建値が有効となっていればスキマなく埋まるはずだ。

なお、このストップ価格(O列の値)が、実際にストップ注文を入れる際のストップ価格となる。

P列の「ストップシグナル」は、P51に「ストップシグナル」を入れ、最初にストップがかかるP79に「=IF(OR(AND(I78=1, E79<=O79), AND(I78=-1, D79>=O79)), "ストップ", "")」という式を入れる。

これは、昨日のシグナル(I78)が1(=買い)でかつ安値(E79)がストップ価格(O79)以下だったとき、もしくは、昨日のシグナル(I78)が-1(=売り)でかつ高値(D79)がストップ価格(O79)以上だったときは、”ストップ”を出し、そうでない場合は何もしない。

簡単に言えば、その日のシグナル方向とは逆方向の値動きがストップ価格を突破したら”ストップ”を出すということ。

全期間のストップシグナルを出すために、P85をコピーし、P58からPxxx(xxxはデータ数によって変わる)までペーストする。日経平均4年分だと、P794までペースト。ストップのかかるタイミングのみ埋まるはずだ。

ストップ価格とストップシグナル

とりあえず、今回はここまで。

次回は、「ストップ保有期間」「ストップ落値」「ストップ損益」「ストップ込損益」を作る予定。

ではでは(^_^y

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

| | コメント (2) | トラックバック (0)

2006/08/15

総利益と総損失から総損益

売買の第1のルールは損失を少なく、利益は大きく膨らませることだ。この単純なルールを守る人が相場で巨万の富を築く。だが、大半の投資家は思い込みのためにそのどちらもできない。
魔術師たちの心理学、P72

前回の記事にえらい間違いがあったので、そこに対する自己ツッコミから(-_-u...

どうやら、グラフの表示範囲が、全期間(4年)ではなく、最初の半年だけになっていたせいで、トータルの収支がプラスだと思い込んでいたが、今回のネタを検証しているときに間違いに気付いた。

実際は、売買シグナルと反対の売買をすると、こんな利益曲線のグラフになり、トータルはマイナスのままだった(-_-u...

全期間の逆転システム利益曲線

すっかり休みボケしてもーたようだ。

まぁ今回は、マイナスのままでも特に支障がないので、このまま行ってしまおう(^_^)

ネタは、「総損益」「勝ちトレードの総利益」「負けトレードの総損失」の表示。

C26に「総損益」、C27に「勝ちトレードの総利益」、C28に「負けトレードの総損失」を入れよう。

システム評価項目のラベル

B25~28列とC25~28列をセル結合して、見た目をよくしてみた。

次に、勝ちトレードの総利益と、負けトレードの総損失を計算する。

勝ちトレードの総利益は、P58からPxxx(xxxはデータ数によって変わる、日経平均4年分だとP794まで)までの利益額を合計すればいい。P53に「=SUM(P58:P794)」という式を入れてみよう。

負けトレードの総損失は、勝ちトレードの総利益と同じく、Q58からQxxx(xxxはデータ数によって変わる、日経平均4年分だとQ794まで)までの損失額を合計すればいいので、P58をコピーして、Q58に貼り付ける。Excelは、数式をコピーして、別のセルに貼り付けると、上下左右のずれを自動的に認識して、式を自動調整してくれるので、同じ式で対象セルだけが違う場合は、このようにして手間を省くことができる。よく出てくるテクニックなので、覚えておこう。

勝ちトレードの総利益と負けトレードの総損失

後は、システム評価欄に、これらの計算結果をコピーするだけなので、D27に「=P53」、D28に「=Q53」を入れる。

最後に、総損益を計算する。

総損益は、勝ちトレードの総利益(D27)と負けトレードの総損失(D28)を足したものになるので、D25に「=D27+D28」という式を入れる。

この状態だと、整数表示されて小数点以下がわからないので、小数表示に修正する(ついでに\も表示する)。

D26~D28をドラッグで選択した後、D26~D28のどこかを右クリックし、「セルの書式設定」メニューを選択。

「分類」の”通貨”を選択した後、「小数点以下の桁数」を2に設定し、「記号」から”\”を選ぶ。

これで、きれいに表示される。

「総損益」「勝ちトレードの総利益」「負けトレードの総損失」

総損益(D25)の値が、累積損益の最後の値(N列の最後の値、日経平均4年分だとN794)と一致していることを確認しよう。

総損益と累積損益の突合せ

まぁ、見事にトータルマイナスのやる気が出ないシステムだな(-_-u...

そんな訳で、次回は、とりあえずシステム評価をやりやすくするために、総損益をプラスにするためのストップを急遽入れてみようと思う。

ではでは(^_^y

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

| | コメント (10) | トラックバック (0)

2006/08/14

勝率を求める

相場では正確な勝率や負け率は分からない。いくら勝つか負けるかも厳密には分からない。しかし過去のデータでテストすれば、大体の見当がつく。
魔術師たちの心理学、P193

夏休みやら休日やらを挟んで、気付けばほぼ1週間ぶりのExcelシステム開発。

えらく、焦らしてしまったなぁ...

という訳で、今回は早速、プログラミング入りましょ。

今回から、何回か続きで、セミナーやビデオのコメントにも多くリクエストのあった「システム評価」について書こうと思う。

システム評価は、”勝率”や”ドローダウン”、”損益レシオ”、”プロフィットファクター”といった、いかにもシステムトレードっぽいキーワードがたくさん出てくる。

これらキーワードを一通り知っているだけでも、システムトレーダーっぽくなれること請け合い(^_^)
# いや、ちゃんとシステムトレーダーになってね。

システム評価のトップバッターは「勝率」。

これは、トレード関連の雑誌や、ebookなどでも「勝率90%の~」とか書かれていることが多いので、最も目にするシステム評価項目だと思う。これを計算してみよう。

まず、トータルの収支がマイナスだと、話がややこしくなりそうなので、機能する概念の魔術でやった売買サインと逆の売買をするシグナルに書き換えておこう。

売買シグナル(I77)の式を「=IF(H77<F77, -1, 1)」に変更(1と-1をひっくり返しただけ)して、I77をコピーした後、Ixx(xxはデータ数によって変わる)までペーストする(日経平均4年分だと、I794までペースト)。

ありがとパパ

さて、勝率を求めるにあたって必要なことは、「勝った回数」と「負けた回数」を出すこと。

単純にそれだけなら、損益(M列)でプラスの数とマイナスの数をカウントすれば求められる。

だが、システム評価としては、勝率に続き、平均利益や平均損失といったものを求める必要があるため、まず損益を利益と損失に分解しておこう。

P51に「利益取引」を入れ、利益がはじめて発生しているP102に「=IF(M102>0, M102, "")」という計算式を入れる。この計算式では、損益(M102)が0を超えるときは損益(M102)を表示し、そうでない場合は何も表示しない。

いつも通り、全期間の利益取引を出すために、P102をコピーし、P58からPxxx(xxxはデータ数によって変わる)までペーストする。日経平均4年分だと、P794までペースト。損益がプラスのものだけがリストアップされるはずだ。

次に、Q51に「損失取引」を入れ、損失がはじめて発生しているQ94に「=IF(M94<0, M94, "")」という計算式を入れる。この計算式では、損益(M94)が0を下回るときは損益(M94)を表示し、そうでない場合は何も表示しない。

これも、全期間の利益取引を出すために、Q94をコピーし、Q58からQxxx(xxxはデータ数によって変わる)までペーストする。日経平均4年分だと、Q794までペースト。損益がマイナスのものだけがリストアップされるはずだ。

利益取引と損失取引

「勝った回数」は、P58からPxxx(xxxはデータ数によって変わる、日経平均4年分だとP794まで)までの利益回数をカウントすればいい。P52に「=COUNT(P58:P794)」という式を入れてみよう。

また、「負けた回数」も同様に、Q58からQxxx(xxxはデータ数によって変わる、日経平均4年分だとQ794まで)までの損失回数をカウントすればいい。Q52に「=COUNT(Q58:Q794)」という式を入れてみよう。

取引回数のカウント

後は、勝率計算のみ。勝率は、以下のような計算式で求められる。

勝率 = 利益回数 ÷ (利益回数 + 損失回数)

C25に「勝率」を入れ、D25に「=$P$52/($P$52+$Q$52)」という計算式を入れる。

この状態だと、勝率が少数表示されて見にくいので、%表示に修正する。

D25を右クリックし、「セルの書式設定」メニューを選択。

「分類」の”パーセンテージ”を選択した後、「小数点以下の桁数」を2に設定する。

これで、きれいに勝率が表示される。

勝率

次回からは、システム評価のハードなワインディングロードが続くので、しっかりシートベルト締めるのをお忘れなく!

ではでは(^_^y

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

| | コメント (10) | トラックバック (0)

2006/08/08

シグナルのチューニング

自由度をパラメータとして、ある値を出すのにいろいろなシステムが生まれる。例えば、10日間と24日間の移動平均では異なる結果が出る。移動平均の日数がひとつの自由度なのである。
魔術師たちの心理学、P67

昨日、5年前に勤めていた会社(巷では4大巨悪と呼ばれているそうだが...)の元先輩と飲み屋に行った。

ちなみに、私自身は一滴も飲まない(飲めないじゃなくて飲まない)けど、なぜか飲み屋に行くことはちょくちょくある。あの場の雰囲気が好きなんだよね。酒なくてもコーラで酔っ払えるし(^_^)

「人の器やコンテキストがどうたらこうたら...」とか「ワクワクがあるのとないのじゃ大違いでどうたらこうたら...」とか「年3,000%のシステムでどうたらこうたら」と、金持ち父さん&ソース&トレードヲタな話に花盛りって感じ。店の人は、相当怪しい商売か宗教の話をしている連中だと思ったに違いない。

その先輩とは、昔からビジネスや投資の話をしていた訳じゃない(というか当時は自分自身そういうことにあまり興味がなかったんで)し、システム開発の管理の考え方なんかもかなり方向性が違っていた(そういえば、一度、喧嘩したこともあったなぁ...)んだけど、しばらく音信不通になった後、5年ぶりに不思議な縁でお付き合いが再開して、今はビジネスや投資の話で共感している。

人の縁ってのは、どこで何があるのか、わからないもんだねぇ。

さて、遅刻せずに損益、累積損益、利益曲線を出すところまではクリアできているかな?

今回は、シグナルをチューニングするために、移動平均の平均日数を変える対応をする。

このテクニックは、シグナルだけでなく、セットアップやストップ、ポジションサイジングでもよく使うテクニックなので、しっかりマスターしておくといいよ。

まず、パラメータとして、移動平均日数を追加する。

C3に「移動平均日数」、D3に「20」を入力する。これは、20日平均ということなので、今の平均日数と同じになる。

移動平均日数

次に、移動平均の計算式をこの移動平均日数から算出するように改造する。

ここで使うのが、YASさんのコメントでネタバレのOFFSET関数(笑)。

OFFSET関数は、あるセルから別のセルを相対位置で参照するための関数...

...って説明したところで、訳わからんので、論より証拠だ。

シート内のどこか空いているセルに、「=OFFSET(F77, -$D$3+1, 0)」と入力してみよう。

終値の一番上の値が出るはずだ。

次に、平均日数(D3)を19に変えてみよう。

終値の上から2番目の値が出るはずだ。

つまり、この式は、OFFSETの最初で指定したF77セルから、縦軸マイナス方向にD3セルの値の大きさだけずらしたセルの値を参照していることになる。

これを応用すると、移動平均の範囲を指定することができるという寸法だ。

では、OFFSETの実験をしたセルを空にして、H77に「=AVERAGE(OFFSET(F77, -$D$3+1, 0):F77)」という式を入れてみよう(太字が以前からの変更点)。

式を直す前と直した後で値が同じならOK。

見逃した人は、H78の値を覚えた後、修正したH77をコピーして、H78に貼り付けてみて、同じ値になっているかどうかチェックしよう。

また、例によって、全期間の移動平均を出すために、H77をコピーし、H78からHxxx(xxxはデータ数によって変わる)までペーストする。日経平均4年分だと、H794までペースト。

特に値は変わらないはずなので、画面キャプチャは省略。

さて、これで移動平均日数(D4)を変えられるようになったので、実際に変えて、利益曲線がどう変化するか試してみよう。

ただし、20以上の平均日数は、今のところ対応していないので、2~20の間で試してね。

...

うーん、チューニングしても、日経225は移動平均じゃダメか(^_^)

とりあえず、ストップを試してみるかな...

それでダメなら、シグナルを別のものにしてみよう。

実は、プログラミングに入る前に、言っておくべきことを言い忘れていたので、次回は、プログラミングよりも大事な「トレードで機能する考え方」について、お伝えする予定。

いったんプログラミングは中休み。

ではでは(^_^y

p.s.今朝、起きたらなんか「滝っぽい音」がしたので何かと思ったら、どうやら台風だった(^_^)
こんな日は外に出るのがイヤな人たちが株とかバンバン買って、株価も上がるに違いない(おいおい)。
...ってホントに上がってるよ(-_-u

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

| | コメント (8)

2006/08/07

損益、累積損益、利益曲線

仕掛けということはマーケットで利益を得るゲームの小さな部分を占めるにすぎない。
魔術師たちの心理学、P259

このブログで紹介している本のAmazonアフィリエイト売上をチェックしたところ、このブログ自身がシステムトレードネタで復活した6/6からわずか2ヶ月の間に、私の大好きな魔術師たちの心理学がナント22冊も売れていることが判明。こりゃ、びっくり。

アフィリエイト以外で手に入れているであろう方も含めれば、もっと多くの方がこのブログを見て、魔術師たちの心理学を読んだに違いない。

一歩間違えると、ヴァン・タープ教の教祖か伝導師になったようなもんだが(笑)、自分の大好きな本を読んでくれる仲間ができるのは、とても嬉しいなぁ。

改めて、ブログの口コミ効果に驚かされた。

今度、「魔術師たちの心理学読書会」でも企画してみようかな(^_^)

さて、建値と落値の計算は終わったかな?

今回は、損益と累積損益と利益曲線を出そう。

まず、パラメータとして、売買手数料を追加する。

C2に「手数料」、D2に「\100」を入力する。

手数料

手数料\100というのは、(Iシェアーズ日経225のような)日経225連動のETFを現物で10単元買う場合に、片道手数料\500、往復で\1,000かかることを想定していて、1単元換算した往復手数料が\100ということ。

手数料を追加したら、次は損益。

M51に「損益」を入れて、決済がはじめて発生しているM94に「=IF(L94="", "", IF(I92=1, L94-K93, K93-L94)-$D$2)」という計算式を入れる。

この計算式では、落値(L94)が空のときは何もせず、落値(L94)が入っているときは損益を計算している。

損益計算は、おとといのシグナル(I92)が1(買い)のときは当日の落値(L94)から前日の建値(K93)を減じた価格、もしくは、おとといのシグナル(I92)が-1(売り)のときは前日の建値(K93)から当日の落値(L94)を減じた価格から、手数料($D$2)を現じた価格となる。

いつも通り、全期間の損益を出すために、M94をコピーし、決済が有効になるM79からMxxx(xxxはデータ数によって変わる)までペーストする。決済がされていないセルが空欄で歯抜けになるはずだ(何やらマイナスばかりで不吉だが...)。

日経平均4年分だと、M794までペースト。

損益

損益が出たら、お次は累積損益を出す。

N51に「累積損益」を入れて、損益がはじめて発生しているN94に「=N93+IF(M94="", 0, M94)」という計算式を入れる。

この計算式では、前日までの累計損益(N93)に当日の損益(M94)が入っていたら加えて、当日までの累積損益としている。

いつも通り、全期間の損益を出すために、N94をコピーし、損益が有効になるN79からNxxx(xxxはデータ数によって変わる)までペーストする。この列は、歯抜けにならず、全部埋まるはずだ。

日経平均4年分だと、N794までペースト。

累計損益

えらいマイナスだらけなのでゲンナリしそうだが(笑)、とりあえず最後に利益曲線を出してみる。

グラフの出し方は、説明いらないよね?

利益曲線

うへー、こんなシステム使いたくねぇよ(-_-)

さて、ここまででシグナルによる利益曲線が出て、シグナルのみであればシステムトレード可能な状態になった訳だが、いかんせんトータルマイナスなので、これじゃやる気がしない。

この状態からでも、ストップとポジションサイジングでプラスに持っていくことはできるかも知れないが、シグナルも多少は調整しておこうと思う。

という訳で、次回はシグナルをチューニングするために、移動平均の平均日数を変えられるように対応する予定。

このテクニックは、シグナルだけでなく、ストップやポジションサイジングの際も利用されるので、次回は遅刻をしないように!

ではでは(^_^y

p.s.あれ?知らないうちに、このブログのGoogle PageRankが3から5にジャンプアップしているぞ(3の期間がずいぶん長かったのに4はあっさり飛ばしたなぁ)...なんだか嬉しいな(^_^)

p.s.2.あれ?自宅で見ると、PageRank3のままだ...どうなってるんだ、こりゃ!?

p.s.3.今朝、会社で見たら、PageRank3だった...Google Dance(って今あるのかな?)に踊らされた!?(T_T)

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

| | コメント (12) | トラックバック (0)

2006/08/04

建値と落値を出す

1.選別
2.買うタイミング
3.売るタイミング
シンプルでわかりやすいフィルターを使って、市場の砂利をふるいにかけ、1つ、2つの金塊を探し当てるのです。

ロバート・アレンの実践!億万長者入門、P76

みなさまの応援のおかげで、おととい、ランキングのプログラム部門で1位獲得!ありがとう!

更に上を目指すべく、昨日から先物部門ランキングに引っ越し(今日の順位を見てみて)していて、すでにプログラム部門にはいないため、記念撮影しておいた(^_^)

記念撮影

さりげに金融・投資部門でも100位以内に入ったようだ。

うーん、快調、快調。

...あ...商品先物に特化した記事、書いてないや(^_^u...(ゴメンナサイ)

私のシステムトレード運用では、商品先物が入っているので、近いうちに商品先物の記事も書くので、今はご勘弁を~。

それはさておき、売買シグナルの表示はできたかな?

まぁ、まだ軽いプログラミングなので、ちょっとぐらいは遅れても数分で取り戻せると思う。次回以降ぐらいからは、だんだんしんどくなるだろうけど...乗り遅れている人は、ダッシュx2!

基本的なシグナル作成の流れは、1)指標を計算、2)指標に基づいて売買シグナルを表示、の2点だけなので、この流れを押さえておいてね。このシリーズで、別の種類のシグナルを作るかも知れないので。

それと、前回も言ったように、指標やシグナルにこだわるよりも、ストップやポジションサイジングにこだわることを忘れずに。シグナルをいじるのは、ストップとポジションサイジングで「もうこれ以上はよくならない」と感じた後でも全然遅くはない。

今回は、売買シグナルにしたがって売買を行ったときの価格(建値という)とポジションを手放したときの価格(落値という)を出そう。

...と簡単に言ったものの、売買や決済の注文を「どのタイミングで」「どの価格を」使うのか決めないと、建値も落値も出すことはできない。

なので、まず、タイミングと価格のルールを決めよう。

ここでは、「売買シグナルが出た翌日の寄付(つまり始値)で注文を出す」というルールにする。

よく終値で計算する指標や注文を出すようなシステムがあるが、終値で注文を出すことは当日の日足ではできないし、翌日の終値のタイミングでは完全に出遅れだ。更に、サラリーマンのような時間が拘束される立場の人(ようするに私もだが...)は、場の終わりを見て注文を出すなんてのは、仕事の都合上、いろいろと面倒だ。

だから、場が引けた後から翌日の場が始まる前までに注文を出すのが、日足ベースのトレードシステムでの現実的かつ実用的な運用となる。これなら昼間の仕事に支障がない。

使える時間や心理状態を考えず、現実的に使えないシステムを作っちゃぁいけねぇよ。
 ↑これ、システムトレードを続ける上でめっちゃ大事なこと!

では、ルールも決まったことなんで、早速Excelに組み込んでいこう。

お決まり通り、K51に「建値」、L51に「落値」と入れた後、まず建値の計算式を入れる。

シグナルが出た次の日の寄付でエントリーするので、K78に「=IF(I77<>I76, C78, K77)」という式を入れる。

これは、前々日のシグナル(I76)と前日のシグナル(I77)が変わったときはその日の始値(C78)を出し、そうでないときは前日の建値(K77)を出すという動きになる。

つまり、シグナルが変わったときはドテン売買したときの建値、シグナルが同じときは前回のポジションの建値を持ち続けるというニュアンス。

いつも通り、全期間の建値を出すために、K78をコピーし、Kxx(xxはデータ数によって変わる)までペーストする。

日経平均4年分だと、K794までペースト。

建値

そうそう、言い忘れてたけど、52~57行目がカラフルになっていたり、GやJの横幅が小さくなっていたりと、さりげない変更をしているが、これは見易さのため。ついでにやっておこう。

あと、データの最終行より少し下の行(日経平均4年分だと796行目)の全てのセルに適当な文字列(####)を入れておくと、「全データ分ペースト」みたいなアクションをするときに、Shiftキー+Ctrlキー+上下カーソルキーで####が書かれたセルまで一気に移動するので、編集をかなり高速化できるというちょいテクがあるので、覚えておくといいよ。

次に、落値を入れよう。

シグナルが変わった次の日の寄付で決済するので、まずはわかりやすく見るために、前々日と前日のシグナルが変わっているL94に「=IF(I92<>I93, C94, "")」という式を入れる。

これは、前々日のシグナル(I92)と前日のシグナル(I93)が変わったときはその日の始値(C94)を出し、そうでないときは何も出さない("")という動きになる。

つまり、シグナルが変わったときは決済し、シグナルが同じときは何もしないということ。建値と違い、決済しないときは何も表示しないのがポイント。

これもいつも通り、全期間の建値を出すために、L94をコピーし、決済が有効になるL79からLxx(xxはデータ数によって変わる)までペーストする。途中が空欄のセルで歯抜けになるはずだ。

日経平均4年分だと、L794までペースト。

落値

見やすくするために、キャプチャ画面は「ウインドウ枠」をいじった(今後は、見易さのためにこうすることが多くなるので、灰色のセル番号をチェ