トレーディングシステム入門:中編

いくつかのアイデアにより作成された複数のシステム、その改良のプロセスを個別に見ていくことで、より本書の内容を理解しやすくなっています。

  • ダイナミックブレイクアウトシステム(DBS)
    ジョージ・プルートがフューチャーズ誌のために開発したもの。
    このプログラムコードが158ページに掲載されておりDBS1aとしている。

    この欠点を解消するアイデアを盛り込んだものが160ページにある。
    これをDBS1bとしている。
    若干改善はされたのだが、まだ不足であるため、別のアイデアを取り入れたものがDBS2aである。
    そしてまた別のアイデアを入れたDBS2bが登場。

    ファイル出力、Excel取り込み、指標算出により各システムを比較する表7.4を作成。
    DBS1bについて16のマーケットでのバックテストを行ったものが表7.5~7.8に掲載されている。
    この結果はあまりいいものではなかった。
    2つのバックテスト期間では最初の10年間より最近の10年間は悪い結果となっている。

    第10章長期の手仕舞いテクニックの追加。DBS1bについてスイーニーのMAE/MFEの手法を使って有効なストップを検討する。

    図10.1。横軸にトレード日数、縦軸に含み損益とした図9.4に似たグラフ。

    表10.1。MAEで決済した場合と元の利益との比較。

    表10.2。MAEfeと平均MFEと元の損益。

    表10.3。トレード日数と含み益とETDとの差。時間ベースストップの検討。
    表10.4。MFEと元の損益との差。利益目標ストップの検討。

    表10.5。トレード日数と含み益と最終損益との差。再び時間ベースストップの検討。
    その結果11日以上経過したらトレーリングストップの値を狭める、というExitの条件式を追加することにした。

    これらの表からははっきりとした値をみつけることができない。
    そのため最も合理的なポイントを選ぶ必要がある。
    しかし本では、仕掛けのレベルに近すぎないという点と結果論の推測から、そして”デモンストレーションのためにとりあえず”という説得力にかける理由で決めたポイントに各ストップを設定した。

    表10.6~10.10でストップ追加前後の各マーケットでのバックテストの比較。ストップを追加したことで標準偏差の低下・プロフィットファクターの向上=安定性の向上を示している。

    第13章長期のボラティリティ・フィルター。
    図13.1で真のレンジ乗数と参照期間を横軸と縦軸におき仕掛けの効率性を面チャートとしたグラフ。
    仕掛けの効率性とはSTDのことと思われる。

    図13.2では仕掛けの効率性の標準偏差についての面チャート。

    本文では図13.1で最適な真のレンジ乗数と参照期間の組合せを選んだ後に図13.2でそれを裏付けているとあるが、そうではなく図13.1と13.2の両方をみて最適な組合せを選ぶのが自然だろう。
    参照期間はなるべく短いのがよく、レンジ乗数はより小さいもの=トレード回数が多くなる、標準偏差は低いのがよい、効率性は高いが面チャートが広いエリアのところ、という条件で選んだのであれば理解できるが、そこまでの解説はない。

    図13.3:ADXトリガーと参照期間を横軸と縦軸におき仕掛けの効率性を面チャートとしたグラフ。

    図13.4:ADXトリガーと参照期間を横軸と縦軸におき仕掛けの効率性の標準偏差を面チャートとしたグラフ。
    図13.1と13.2同様に最適な組合せを選ぶ。

    表13.1:真のレンジ乗数と参照期間、ADXトリガーと参照期間の最適な組合せ。

    表13.2~13.5:16のマーケットでの真のレンジ乗数またはADXをフィルターとして追加したときのバックテストの結果。
    追加したことによりプロフィットファクターが低下し、この2つのフィルターが利益と堅牢性に関してDBSには適していないと結論づけている。

  • 長期ボリンジャーバンドシステム(SDB)
    171ページで登場する標準偏差ブレイクアウトとなるボリンジャーバンドシステム。
    上方バンドは高値、下方バンドは安値を使用、手仕舞いではロングのときは安値、ショートのときは高値を使用し、それぞれ指数移動平均を使用している。

    ディレクショナルスロープと同じ検討方法=面チャートの使用により、使う指数移動平均の組合せを見つける。
    178ページではなぜかかなり省略した書き方を「いくつかのストップをセクション3に、数種類のフィルターをセクション4に追加した後で」としており16のマーケットでのバックテストを行った。
    その結果が表7.9である。
    プロフィットファクターと勝率が高い結果となったことがわかる。

    第10章長期の手仕舞いテクニックの追加。
    このシステムは手仕舞いを移動平均によってのみ決定しているため、タイミングが遅れるという欠点がある。
    そのためスイーニーのMAE/MFEの手法を使って有効なストップを検討する。

    表10.11:16のマーケットのMAEレベルで手仕舞いした場合と、元の手仕舞いの損益との差。
    この表からストップの値をベストな差の値2%ではなく”ストップを置くべきでない最も明確なポイントに見える”5.5%にした。
    ”最もベストにみえる値が長期的に見てベストであるとは限らない”とも言っている。

    表10.12:MAEfeと平均MFEと理論上の損益。
    MAEfeが大きいほど利益も大きくなっているためトレーリングストップは使わないほうがよい、と言いながら”とりあえず”5.5%のレベルにトレーリングストップを設定している。

    表10.13:トレード日数と含み益とETDとの差、といいながら表にはトレード日数、最終損益、含み損益、差と書いてある。
    表9.4と同じものと考えるならば、最終損益→含み益、含み益→ETDと訂正する必要がある。

    そうすると267ページの文章も変わる。
    「40日以上継続したすべてのトレードの40日の時点での含み益の16のマーケットでの平均値は7.74%であるが、そこからETDとして7.63%の減少するのがわかる。
    40日以上経過するまで時間ベースストップとして決済できないことがわかる。

    別の見方をすると、40日の時点で利益が出ていないトレードはETDによりさらにマイナスの結果となることが予想されるため、そのようなトレードはその時点で決済することにした。」が正しくなる。

    表10.14:MFEと元の損益との差。利益目標ストップの検討。

    表10.15:トレード日数と最終損益と含み損益との差。時間ベースストップの検討。

    表10.16~10.20で、上記で決定したストップをすべて追加した場合と追加する前のバックテストの比較検討。
    追加後の結果はおおむね良好であり、このSDBシステムの安定さが確認できた形となった。
    そしてストップの追加がトレードの効率化に有効に機能することがわかった。

    第13章長期のボラティリティ・フィルター。
    真のレンジ・フィルターの追加により16のマーケットでプロフィットファクターが向上。
    表13.6と13.7でそれが示されている。
    ADXの追加によるバックテストの結果は表13.8と13.9では有効に機能していないことを示している。

  • 各戦略からみえたこと

    以上、本書の内容を戦略別に分け、各戦略の構築の流れをまとめた。

    この作業を通してまず理解できたことは、EntryとExitの構築方法は違うということだ。

    Entryの検討は、まずベースとなる”戦略”のアイデアをもっているのが前提であり、それをもとにプログラムを作る。

    そうではなくアイデアを得るためまたは過去のマーケットの傾向を発見しそれを利用して戦略を組み立てる場合は、マーケットのヒストリカルデータから統計値を出す「データマイニング」がまず最初の作業となる。

    ベースとなる”戦略”のアイデアはそれがどういったマーケットの動きをとらえてトレードする目的のものであるかをよく理解した上で、プログラムを作成する。

    これについて本書で注意すべきなのはEntryするためのシグナルのアイデアについては説明がされており理解できるが、プログラムを作るときには当然Exitも記述する必要があるはずがExitについての説明なしにそのプログラムコードが掲載されていることだ。

    もちろんロングのEntryはショートのExitとして、ショートのEntryはロングのExitとして機能するため、それだけでもプログラムは作れるが、本書で出てくる最初の段階でのプログラムコードすべてがそうなっているわけではない。

    また戦略のアイデアがどこからか”仕入れた”ものでありEntryとExitの両方の条件についてわかっている場合も問題はない。

    本書ではまずEntryについてのアイデアから作られた戦略についてEntry改良(最適化)の検討を行い、その次に、バックテストがより堅牢で結果が改善するように数種類の”ストップ”を追加していくという形でExitについて検討している。(
    短期システムについては、Entryはランダムに設定して先にExitの条件を検討し、その後Entryのアイデアをコードに追加してバックテストを行うという方法も紹介している。)

    そしてさらなる改良としてフィルターの追加を検討している。

    戦略の構築の最初の段階「戦略のアイデアをプログラムにする」では(本書は)Entryをなるべくシンプルなものにしている。
    いくつもの指標を組み合わせない。
    そして使用する指標の特徴と、指標を使う目的をはっきりと理解しておくことが大切である。

    また戦略を短期と長期の2つにわけて説明しており、5日以内程度を短期としている。
    そして長期はトレンドフォローの戦略を使っている。

    短期と長期どちらの戦略もその数値の最適化とストップの検討の方法にはあまり差がない。
    検討方法の種類はいくつかあり、本書ではひとつの検討方法についていくつかの戦略を例に挙げ、また別の検討方法に別のいくつかの戦略を挙げているが、どの検討方法がどんなタイプの戦略に使わなければならない、というわけではないようである。

    重要と感じたのは、検討段階でExcelで表とグラフから最適な数値を探すときの選び方だ。
    堅牢さを目標とするため、マルチマーケットでのバックテストの結果から判断するのだが、どのように判断し数値を選択するのか?、結果にもよるのだろうが、ここという選択の基準がはっきり書かれていないのは、紙面が足りないため省いたのかそれとも単純な判断はできないのか、説明がほしかった部分だ。

    長期短期の戦略の構築方法に基本的には大きな違いがないとわかったため、次にどのような手順で戦略を作ったのかをまとめてみることにする。

    この手順がはっきりすれば後はそれをもとに実際に戦略を構築することができる。