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

トーマス・ストリズマン著「トレーディングシステム入門」をどこまで解読し実践できるか挑戦した、具体的なレビュー。本書の理解がより深まります。

トレーディングシステム入門
(TRADING SYSTEMS THAT WORK)


「トレーディングシステム入門~仕掛ける前が勝負の分かれ目」(著者:トーマス・ストリズマン)英語「TRADING SYSTEMS THAT WORK by Thomas Stridsman」、

この本に興味を持ち購入を検討している人のためには、アマゾンのサイトにある感想欄のコメントは少なすぎて参考にはなりません。

私見としては、すでに自分のシステムを作り上げそのシステムの運用に成功しているのであれば、あえてすぐ読む必要はありません。

しかし、自分のシステムの運用成績がよくない、またはシステムではなく裁量によるトレードをしているがうまくいかないといった人で、大学で統計学を専攻していたのでないならば、読む価値のある本でしょう。

そしてこの本は私の常に抱いていた疑問【システム過剰最適化(カーブフィッティング)の懸念】について、私のシステムがカーブフィッティングをしたものであり、その最適化を行った過程は間違いであると答えています。

今まで抜粋して紹介した内容だけでも、この本がどういった部類ものであるかを察することができます。
トレーディングシステムを構築する方法の正道の1つとして、トレードの条件をできるだけシンプルなものにして過去のマーケットデータを元に統計学的なアプローチでトレーディングシステムを構築していく行程を少し詳しく紹介している本です。

しかし文章中にでてくる言葉とその表現方法の多くは、トレードと統計学の専門用語によるものというだけでなく、どこか哲学的な印象を読者に与え、さらにところどころにある原文の最適ではない日本語訳によって、一度読んだだけでは消化不良を起こす難解?な書籍となっています。

著者自身がこの本の中で言っているように、この本をどのような順序で書くのかは著者が悩んだところであり、その理由はエントリーとエグジットおよびマネーマネジメントは理想的にはお互い相補しあうものであるため、本来これらをひとつづつ単独で最適な条件を検討できるものではなく、交互に再検討を重ねるものだからだと思います。

もしこの本を1度読んで比較的短期間でその方法を実践できる人は、
トレードとEasyLanguageとExcelと統計学とそして研究というものをどのように行うのかを理解していて、TradeStationと必要となるマーケットデータとExcel(またはOpenOffice Calc)を持っている人でしょう。

また、一見詳しく方法を説明しているように感じるのですが、実際にそれを模倣してみようとするとすぐにいくつもの壁につきあたります。
その壁は、今述べた”すぐに実践できる”条件をみたさない読者自身の部分であり、そして誤訳もしくは著者自身の記述の間違い、内容として深く追求していない(または詳しく書いていない)部分です。

以上が前回書いたこのブログの記事のタイトルをトレーディングシステム構築の実践書ではなく実践論とつけた理由であり、3回読んでも実践できていない私自身の言い訳でもあります。
そしてまたこの本の名についている”入門”という文字が、実践書ではないといっているのかもしれません。

さて、ここで終わってしまえばただの感想文にすぎません。
そこで、この「トレーディングシステム入門」をどこまで解読し実践できるか挑戦してみようというのが、今回からのテーマです。
かなりの長文になります。

この本は実に480ページからなり、いくつかの種類のトレーディングシステムを平行して構築しながら解説する形をとっています。
これは読み物としてはいいかもしれませんが、手順書としてはその流れを把握することが難しく最適とはいえません。
そこでまずは概要をまとめてみます。

この本の内容を模倣するために必要なもの

  • トレードステーションのソフトウェア、もしくはEasyLanguage互換のバックテスト可能なトレーディングソフトもしくはMetaStock。
    本ではTradeStation2000iの名が出てくるが、トレードステーション セキュリティーズ(米国)で低額で利用可能なTradeStation8.3でも可能。
  • バックテストに使う過去のマーケットデータ(ヒストリカルデータ)。しかも多くの先物マーケットのデータ。
    本では最大約34種類のマーケットについてテストしている。
  • Excelもしくは同等機能をもった(互換の)表計算ソフト。
    OpenOfficeのCalcはダウンロードして無料で使用できる。
  • そしてPC(TradeStation8.3はWindowsXPが必要)
  • これら4つのうち、先物のマーケットデータについて、ポイント修正ベースつなぎ足と比率修正つなぎ足(Ratio Adjusted Data、略名RAD)の2つのタイプのデータが必要となる。
    CSI Unfair Advantage社からのデータ購入がベストであるが、トレードステーション セキュリティーズで利用可能なTradeStation 8.3では、ポイント修正ベースつなぎ足と、RADを使う目的と同じ利用が可能な比率修正つなぎ足データを得ることができる。

    本に掲載されたトレーディングシステムの種類

  • ゴールドディガーⅠ(Gold Digger 1)
    ヒストリカルデータから平均上昇・下落期間、平均上昇・下落幅などを算出する「データマイニング」によってシステムを構築。
    ただし、単にマーケットの統計上の特性を利用する単純なシステムを統合したものである。
  • ゴールドディガーⅡ(Gold Digger 2)
    ゴールドディガーⅠが日足、週足、月足の3つの条件を取り入れたが、月足をはずす事でよりカーブフィッティングしていないシステムとなった。
  • 蛇行システムⅠ
    できるだけ少ないヒストリカルデータを使い、始値、高値、安値、終値すべてを使って、その値動きと標準偏差を計算する。
    日足を使ったデイトレードのシステム。しかし日足を使ってのバックテストには疑問が残る。
    イントラデイデータ(日中足データ)を使ってテストをするべきだと思われる。
  • ブラックジャックⅠ
    200日移動平均より上であればロング、下であればショートのエントリーだけとし、さらに短期の移動平均線を使ってブレイクアウトの場合とリトレースメントの場合にわけた計4つの種類のエントリーがある。
  • ディレクショナルスロープ・システムⅠ
    長期の移動平均の傾きをトレードを仕掛けるシグナルとし、短期の移動平均の傾きをトレードを手仕舞いするシグナルとする。2つの移動平均が両方上向きのときのみロング、両方下向きのときのみショートでエントリー。
    (本書では、ロングとショートで異なる1つもしくは1組の移動平均を使う別の方法もある、と書いている。
    この場合、ロングとショートは別々のシステムとして構築する。
    2つのポジションを同時にもつのはやめたほうがよい。株式市場のような自然な右肩上がりのトレンドが存在するマーケットに適しているらしい)
  • ダイナミックブレイクアウトシステム1a(DBS1a)
    ジョージ・プルートがフューチャーズ誌のために開発したもの。
    ボラティリティの高さに応じて参照する日足の数が変更される。
    欠点としてこの日足の数の変更のされかたがうまく機能するとは限らないということと、日足の数が大きくなるとストップロスの値が現在のプライスから乖離してしまうということである。
  • ダイナミックブレイクアウトシステム1b(DBS1b)
    DBS1aをストップロスについて、「ボラティリティが高いと参照する日足の数を減らす」という変更をおこなった。
  • ダイナミックブレイクアウトシステム2a(DBS2a)
    DBS1bの結果ではあまり改善がみられなかったため、「ボラティリティの高さに応じて参照する日足の数を変更する」ことを、「ボラティリティの高さに応じて注文のプライスを直接変更する」ことにした。
  • ダイナミックブレイクアウトシステム2b(DBS2b)
    DBS2aのストップロス注文をより現在のプライスに近づけた。
  • 長期ボリンジャーバンドシステム
    標準偏差ブレイクアウトとなるボリンジャーバンドシステム。
    欠点として、標準偏差の値を使っているため、異なる時間帯や異なるマーケットとの値を比較することができないこと、ボラティリティが高く現在のプライスから標準偏差が乖離していたとしてもそれを感知しないこと、がある。
    そこでボリンジャーバンドを数種類使い、さらに移動平均の種類を変更している。
  • 以上合計9つのシステムがある。

    バックテストの結果を判定するための指標

    これらのシステムを最適化するために、最適化の検討の行程とどの指標を重要視しどう判断しているのかということがこの本の主題の1つ。

    TradeStationソフトにはバックテストの結果としてStrategy Performance Reportがあり、また自動最適化の機能がある。

    しかしこのStrategy Performance Report中のPerformance Summaryから役に立つものはプロフィットファクターと勝率の2つだけ、と著者は断言している。

    Performance Suumaryでは満足できず、そこに載っていないより効果的な指標でも判断したいため、システムのプログラムの中に直接EasyLanguageで指標の作成とファイルへの出力するコードを書きこんでいる。
    そして書き出したファイルをExcelに取り込んでそのスプレッドシート上でも指標を算出している。