「売買システム入門」トゥーシャー・シャンデ〜ストラテジ検証⑤ そのシステム破産しませんか?

売買システム入門を読み進めています。この本に挙げられている検証方法でシステムを検証していくと、一体システムトレードのどこに優位性があるのか訝しくなります。

では、この本が読む価値がないかと問われると、そうは思いません。なぜならばシステムの評価方法について、いくつかの方法を提示してくれるからです。タイトルは考え方→作成→評価となっていて、たしかに信条を説明しモデルを提示しているのですが、正直私はその辺は魅力を感じません。評価においてこの本は読む価値があると思います。実際に、この本を読み進めるだけで、私はシステムに対する評価方法をいくつか手に入れることができました。これは大きいと思います。

今回は破産確率という点でシステムを評価しましょう。破産確率はバルサラの破産確率が有名ですが、ここではシミュレーションを行って、1000回の試行で破産する確率を求め、破産確率に対するレバレッジの効果について調べていきます。

目次

破産確率を求めるには

著書にはノーザー・バルサラ氏の著書を参考にし、シミュレーションを行ったとあります。このバルサラの破産確率というのは、至るブログで紹介されていて、その上ほとんどのブログの表は間違いだなどと指摘されていたりなど、何が正しいのか原著を読むしかない状況となっています。しかし、この原著が高いんですね。みんな読まないので好き放題出来るのでしょう。地雷はスルーします。

シャンデ氏の著書では1000回の試行で破産する確率をシミュレーションによって求めたとありますので、私もそうしたいと思います。用いる変数は著書と同じように下記になります。

  • ペイオフ比率(平均利益率 / 平均損失率)
  • 勝率
  • 許容リスク(投下資金比率 * 平均損失率)

シミュレーション方法

シミュレーションの流れはこんなものです。

  1. 乱数を用いて勝敗を決定
  2. 勝った場合: 許容リスク*ペイオフ比率を取得
  3. 負けた場合: 許容リスクを失う
  4. 1000回の試行までに全資金を失った場合破産

コードはこのようになります。

    def simulate
      bunkrupt_times = 0
      n.times do
        capital = 1
        bunkrupt = false
        span.times do
          gain = (Random.rand <= @win ? @pf * @risk  : - @risk)
          capital += gain
          if capital < 0
            bunkrupt = true
            break
          end
        end
        bunkrupt_times += 1 if bunkrupt
      end
      bunkrupt_times.to_f / n * 100
    end

破産確率

これを各々のパラメータについて1000回繰り返して破産した確率を求めます。 1%、1.5%、2%の許容リスクの場合、結果はこのようになります。

  • 1%
  1.0 1.5 2.0 2.5 3.0
25 100.0 100.0 100.0 76.0 5.1
30 100.0 100.0 61.5 0.3 0.0
35 100.0 78.7 0.2 0.0 0.0
40 100.0 0.7 0.0 0.0 0.0
45 55.8 0.0 0.0 0.0 0.0
50 0.2 0.0 0.0 0.0 0.0
  • 1.5%
  1.0 1.5 2.0 2.5 3.0
25 100.0 100.0 100.0 93.3 23.7
30 100.0 100.0 84.2 4.5 0.0
35 100.0 96.5 1.7 0.0 0.0
40 100.0 8.8 0.0 0.0 0.0
45 88.3 0.0 0.0 0.0 0.0
50 3.3 0.0 0.0 0.0 0.0
  • 2%
  1.0 1.5 2.0 2.5 3.0
25 100.0 100.0 100.0 96.4 35.3
30 100.0 100.0 92.7 9.0 0.1
35 100.0 99.4 4.9 0.0 0.0
40 100.0 18.7 0.0 0.0 0.0
45 96.4 0.0 0.0 0.0 0.0
50 10.7 0.0 0.0 0.0 0.0

シャンデ氏の著書と若干のブレはありますが、いい値を吐き出しているようです。

許容リスクを上げたということは、例えばあなたが平均損失率1%のシステムを使っていたとすると、レバレッジをかけて1.5倍、2倍の資金を投入したことに対応します。こうした時、よほど優秀なシステムでなければ多くの場合破産する可能性があることがわかると思います。

なお、ここで示している破産確率は、提示した方法で計算した場合の破産確率であり、また十分に収束していないため、周りに溢れている確率表とは一致しません。

まとめ

破産確率をシミュレーションによって求めました。レバレッジをかけた場合、多くのシステムが1000回のトレードのうちに破産する可能性があることを示しました。