どんな記事
いつかPythonで実現したいと考えていたバックテスト。一つの手法を複数の銘柄で分散投資するとどうなるのか。筆者 のテスト記録も兼ねています。
- 2006年当時有効だった手法は健在か
- 書籍に掲載されている手法を突き止める
- 相関を元にしたポジションの制限は有効か
- 増し玉は有効か
このあたりをテーマにテストしています。
題材は書籍「タートル流 投資の魔術」
元となる手法は、書籍「伝説のトレーダー集団 タートルズ流投資の魔術」に掲載されていたものです。
この章で述べるテストは、市場の一般的ボートフォリオと一般的資金管理アルゴリズムを用い、システムのルールが変わることに よる影響がテスト結果の差異にあらわれることを検証している。以下はそのテストに使われた変数だ。
● 市場
(中略)
● 資金管理
ここで使う資金管理アルゴリズムはタートルたちが使用したのと同じだが、攻撃性を半分にした数値を用いてある。1-ATRを取引資本の1パーセントとするかわりに0.5パーセントとしたので、テスト向けの枚数を出すために、資金の0.5パーセントを、特定の取引に注文が出される時点でドル換算した市場のATRで割った。
情報が不十分でわからない点が多いですが、以下のような夢のある検証結果が掲載されています。
1 | ATR CBO | 2 | ボリンジャーCBO | 3 | ドンチアン・トレンド |
4 | 時限付ドンチアン | 5 | ダブル移動平均 | 6 | トリプル移動平均 |
CAGR MARレシオ シャープレシオ 取引数 勝率 最大DD DD期間 1 45.9% 1.15 1.27 216 43.1 40.0% 8.3ヶ月 2 49.2% 1.44 1.47 136 53.7 34.1% 7.8ヶ月 3 27.4% 0.75 0.94 1901 38.7 38.7% 27.6ヶ月 4 57.1% 1.31 1.34 773 59.1 43.6% 12.1ヶ月 5 49.1% 1.04 1.34 222 36.9 47.2% 8.3ヶ月 6 41.2% 0.97 1.21 186 41.9 42.3% 8.5ヶ月
今回は、以前行ったバックテストを発展させます。以前は、
- 異なる銘柄
- 異なる期間
- 単一銘柄ごと
の、バックテストでしたが、
- 同じ銘柄
- 同じ期間~現在まで
- 全銘柄での分散投資
で、行います。
このバックテストで確かめること
このバックテストでは、以下を確かめていきます。
- 2006年当時有効だった手法は健在か
- 書籍に掲載されている手法を突き止める
- 相関を元にしたポジションの制限は有効か
- 増し玉は有効か
2006年当時有効だった手法は健在か
書籍の発売当時、それまでの10年間(1996年1月~2006年11月の検証)で有効とされていた6つの手法です。これらが現在でも健在なのかを確かめます。
書籍に掲載されている手法を突き止める
書籍には、このテストについてあまり細かく掲載されていません。同じと思われるバックテストを行い、テスト結果の再現を目指します。
取引量の制限は有効か
タートルズの手法に〝取引量の制限〟があります。単一銘柄は4%のリスク、全体で24%、買いおよび売りは12%ずつ、強い相関のものは6%、中程度の相関は10%といった具合です。強い相関の銘柄全体で6%のリスクをとっているときに、同じく強い相関の銘柄でシグナルが点灯してもエントリーしないということです。
このロジックが有効かを確認します。
ピラミッティングは有効か
同じくタートルズの手法に〝ピラミッティング〟があります。増し玉のことです。6つの手法について、ピラミッティングの有無で検証し、成績の変化を確かめます。
テスト方法
Pythonで自作したプログラムで検証しています。
銘柄と価格データ
書籍に掲載されていた銘柄でテストします。価格データはStooqというサイトから借りました。銘柄名の右に掲載しているのがStooqの銘柄コードです。
為替 | 穀物 | |||
日本円 | j6.f | とうもろこし | zc.f | |
ユーロ | e6.f | 大豆 | zs.f | |
英ポンド | b6.f | 小麦 | zw.f | |
スイスフラン | s6.f | 砂糖 | sb.f | |
カナダドル | d6.f | 綿 | ct.f | |
豪ドル | a6.f | ココア | cc.f | |
メキシコペソ | m6.f | コーヒー | kc.f | |
貴金属 | 畜産 | |||
金 | gc.f | 飼養牛 | gf.f | |
銀 | si.f | 牛 | le.f | |
銅 | hg.f | 豚 | lh.f | |
燃料 | 金利 | |||
WTI原油 | cl.f | ユーロドル金利先物 | ge.f | |
灯油 ULSD | ho.f | 財務省中期債権 | zf.f | |
無鉛ガソリン | rb.f | 同長期債権 | zn.f | |
天然ガス | ng.f |
手法
6つのロジックの詳細は、以前の記事でご確認ください。以下に、それぞれの記事へのリンクを掲載しておきます。
注意点
自分の自動売買を作成するためのテストなので、かなり万全を期していますが、いくつかの注意点があります。以下の点から、検証結果の検討には細心の注意を払う必要があります。
- 先物取引のつなぎ足であること
- 手数料が考慮されていないこと
先物取引のつなぎ足である
Stooqの.f
がつくコードは、期近のつなぎ足です。以下の図を見るのが分かりやすいと思います。価格をつなぐタイミングで価格差が生じていることが見てとれると思いますが、今回のテストでは、この点が考慮されていません。
手 数料が考慮されていない
また、今回のテストでは、手数料を一切考慮していません。長期のロジックにおいて手数料の影響はあまり大きくありませんが、注意は必要です。
ロジック毎に4通りのテスト
それぞれのロジック毎に、以下の項目の組み合わせで4通りのテストを行いました。これをもって、「のバックテストで確かめること」について確認していきます。
項目 | 意味 |
---|---|
増し玉なし | 初回エントリーのみで、増し玉をしない |
増し玉あり | 1-ATR上昇する毎に、3回まで増し玉する |
制限なし | すべてのシグナルでエントリーする |
制限あり | 相関等でエントリーの制限を行う |
全体のテスト結果
いずれも100万円の元金でテストしています。黄色の網掛けのものが良い成績のものです。破産したものも多いですが、最大14倍の利益が出ています。
増し玉 | 制限 | 取引数 | 勝率 | RR比 | 累計損益 | |
---|---|---|---|---|---|---|
ATR_CBO | なし | なし | 1127 | 26.97% | 2.61 | -585,939 |
なし | あり | 877 | 24.29% | 3.15 | 164,581 | |
あり | なし | 1290 | 40.47% | 1.34 | -1,002,102 | |
あり | あり | 1032 | 24.52% | 0.99 | -992,810 | |
BB_CBO | なし | なし | 386 | 38.08% | 2.07 | 14,158,028 |
なし | あり | 341 | 35.78% | 2.09 | 3,337,570 | |
あり | なし | 44 | 20.45% | 0.46 | -1,108,640 | |
あり | あり | 496 | 35.28% | 1.62 | -756,803 | |
DCBO | なし | なし | 4208 | 34.15% | 2.03 | 3,532,109 |
なし | あり | 3223 | 34.28% | 2.06 | 2,414,742 | |
あり | なし | 10552 | 35.89% | 1.86 | 5,497,060 | |
あり | あり | 4978 | 34.33% | 2 | 1,609,066 | |
Timed_DCBO | なし | なし | 1848 | 49.13% | 1.01 | -688,259 |
なし | あり | 1439 | 47.05% | 1.03 | -915,276 | |
あり | なし | 1146 | 54.01% | 0.82 | -6,801,541 | |
あり | あり | 1959 | 49.06% | 0.91 | -940,755 | |
DoubleEMA | なし | なし | 632 | 33.86% | 1.96 | 125,315 |
なし | あり | 24 | 45.83% | 0.79 | -1,009,666 | |
あり | なし | 592 | 43.92% | 1.24 | -1,549,954 | |
あり | あり | 25 | 48.00% | 0.82 | -1,001,375 | |
TripleEMA | なし | なし | 270 | 38.52% | 1.48 | -1,019,006 |
なし | あり | 406 | 31.77% | 2.09 | -282,606 | |
あり | なし | 824 | 50.36% | 0.98 | -3,090,293 | |
あり | あり | 515 | 33.20% | 1.96 | -736,636 |
書籍と同じ項目で集計
書籍のような良い成績には、まったくなりませんでした。残念。
- つなぎ足だからか
- 市場環境の変化があったのか
- 他の問題があるのか
原因は定かではありませんが、すべての項目において劣後しています。
良いロジックでも最大で年利が11%なので、米国株のインデックス投資より少し良い程度の成績です。正直、あまり妙味はありません。
再現できたのかについては、後述したいと思います。
増し玉 | 制限 | CAGR | MARレシオ | 取引数 | 勝率 | RR比 | 最大DD | 最大DD期間 | |
---|---|---|---|---|---|---|---|---|---|
ATR_CBO | なし | なし | -3.47% | -0.037 | 1127 | 26.97% | 2.612 | 93.96% | 156ヶ月 |
なし | あり | 0.61% | 0.008 | 877 | 24.29% | 3.146 | 81.01% | 156ヶ月 | |
あり | なし | --- | --- | 1290 | 40.47% | 1.338 | 100.92% | 31ヶ月 | |
あり | あり | -17.91% | -0.18 | 1032 | 24.52% | 0.986 | 99.79% | 300ヶ月 | |
BB_CBO | なし | なし | 11.49% | 0.161 | 386 | 38.08% | 2.071 | 71.21% | 93ヶ月 |
なし | あり | 6.04% | 0.092 | 341 | 35.78% | 2.088 | 65.75% | 92ヶ月 | |
あり | なし | -110.86% | -0.953 | 44 | 20.45% | 0.463 | 116.31% | 2ヶ月 | |
あり | あり | -5.72% | -0.064 | 496 | 35.28% | 1.619 | 89.97% | 144ヶ月 | |
DCBO | なし | なし | 6.23% | 0.089 | 4208 | 34.15% | 2.025 | 70.27% | 118ヶ月 |
なし | あり | 5.04% | 0.083 | 3223 | 34.28% | 2.059 | 60.32% | 118ヶ月 | |
あり | なし | 7.46% | 0.077 | 10552 | 35.89% | 1.857 | 96.73% | 156ヶ月 | |
あり | あり | 3.91% | 0.054 | 4978 | 34.33% | 2.004 | 72.78% | 104ヶ月 | |
Timed_DCBO | なし | なし | -4.56% | -0.047 | 1848 | 49.13% | 1.01 | 97.87% | 156ヶ月 |
なし | あり | -9.40% | -0.098 | 1439 | 47.05% | 1.027 | 96.41% | 156ヶ月 | |
あり | なし | --- | --- | 1146 | 54.01% | 0.819 | 150.32% | 16ヶ月 | |
あり | あり | -10.69% | -0.109 | 1959 | 49.06% | 0.911 | 98.03% | 245ヶ月 | |
DoubleEMA | なし | なし | 0.47% | 0.005 | 632 | 33.86% | 1.955 | 88.07% | 90ヶ月 |
なし | あり | --- | --- | 24 | 45.83% | 0.789 | 136.29% | 46ヶ月 | |
あり | なし | --- | --- | 592 | 43.92% | 1.24 | 107.69% | 25ヶ月 | |
あり | あり | --- | --- | 25 | 48.00% | 0.818 | 168.80% | 56ヶ月 | |
TripleEMA | なし | なし | --- | --- | 270 | 38.52% | 1.479 | 109.69% | 36ヶ月 |
なし | あり | -1.32% | -0.015 | 406 | 31.77% | 2.086 | 89.17% | 92ヶ月 | |
あり | なし | --- | --- | 824 | 50.36% | 0.979 | 107.60% | 18ヶ 月 | |
あり | あり | -5.20% | -0.052 | 515 | 33.20% | 1.96 | 99.33% | 118ヶ月 |
個別のテスト結果
掲載しているグラフは、クリックすると大きな画像で確認できます。
成績については、「金額ベース」「リスク比」の数値を掲載しています。金額ベースは複利運用の数値で、リスク比は単利運用の数値に近いものです。
ATR CBO
増し玉 | 制限 | 取引数 | 勝率 | RR比率 | 累計損益 | 期待値 | 損益の標準偏差 | |
---|---|---|---|---|---|---|---|---|
金額ベース | なし | なし | 1127 | 26.97% | 2.61 | -585,939 | ||
なし | あり | 877 | 24.29% | 3.15 | 164,581 | |||
あり | なし | 1290 | 40.47% | 1.34 | -1,002,102 | |||
あり | あり | 1032 | 24.52% | 0.99 | -992,810 | |||
リスク比 | なし | なし | 1127 | 26.97% | 2.87 | 178.895 | 0.156 | 10.2 |
なし | あり | 877 | 24.29% | 3.54 | 322.803 | 0.364 | 13.663 | |
あり | なし | 1290 | 40.47% | 1.48 | 28.111 | 0.009 | 6.587 | |
あり | あり | 1032 | 24.52% | 2.63 | -497.756 | -0.487 | 10.815 |
増し玉なし、制限なし
増し玉なし、制限あり
増し玉あり、制限なし
増し玉あり、制限あり
ボリンジャーCBO
増し玉 | 制限 | 取引数 | 勝率 | RR比率 | 累計損益 | 期待値 | 損益の標準偏差 | |
---|---|---|---|---|---|---|---|---|
金額ベース | なし | なし | 386 | 38.08% | 2.07 | 14,158,028 | ||
なし | あり | 341 | 35.78% | 2.09 | 3,337,570 | |||
あり | なし | 44 | 20.45% | 0.46 | -1,108,640 | |||
あり | あり | 496 | 35.28% | 1.62 | -756,803 | |||
リスク比 | なし | なし | 386 | 38.08% | 2.9 | 1157.371 | 2.982 | 29.638 |
なし | あり | 341 | 35.78% | 2.66 | 648.164 | 1.883 | 17.195 | |
あり | なし | 44 | 20.45% | 0.42 | -202.577 | -4.604 | 4.914 | |
あり | あり | 496 | 35.28% | 2.36 | 606.768 | 1.223 | 15.987 |
増し玉なし、制限なし
増し玉なし、制限あり
増し玉あり、制限なし
増し玉あり、制限あり
ドンチアン・トレンド
増し玉 | 制限 | 取引数 | 勝率 | RR比率 | 累計損益 | 期待値 | 損益の標準偏差 | |
---|---|---|---|---|---|---|---|---|
金額ベース | なし | なし | 4208 | 34.15% | 2.03 | 3,532,109 | ||
なし | あり | 3223 | 34.28% | 2.06 | 2,414,742 | |||
あり | なし | 10552 | 35.89% | 1.86 | 5,497,060 | |||
あり | あり | 4978 | 34.33% | 2 | 1,609,066 | |||
リスク比 | なし | なし | 4208 | 34.15% | 2.16 | 572.428 | 0.128 | 4.263 |
なし | あり | 3223 | 34.28% | 2.15 | 437.683 | 0.131 | 4.309 | |
あり | なし | 10552 | 35.89% | 2.15 | 2210.339 | 0.199 | 4.506 | |
あり | あり | 4978 | 34.33% | 2.24 | 898.497 | 0.169 | 5.287 |
増し玉なし、制限なし
増し玉なし、制限あり
増し玉あり、制限なし
増し玉あり、制限あり
時限付ドンチアン
増し玉 | 制限 | 取引数 | 勝率 | RR比率 | 累計損益 | 期待値 | 損益の標準偏差 | |
---|---|---|---|---|---|---|---|---|
金額ベース | なし | なし | 1848 | 49.13% | 1.01 | -688,259 | ||
なし | あり | 1439 | 47.05% | 1.03 | -915,276 | |||
あり | なし | 1146 | 54.01% | 0.82 | -6,801,541 | |||
あり | あり | 1959 | 49.06% | 0.91 | -940,755 | |||
リスク比 | なし | なし | 1848 | 49.13% | 1.13 | 477.923 | 0.238 | 8.046 |
なし | あり | 1439 | 47.05% | 1.08 | -164.059 | -0.138 | 8.29 | |
あり | なし | 1146 | 54.01% | 1.06 | 737.883 | 0.634 | 8.324 | |
あり | あり | 1959 | 49.06% | 1.04 | 61.851 | 0.012 | 7.958 |
増し玉なし、制限なし
増し玉なし、制限あり
増し玉あり、制限なし
増し玉あり、制限あり
ダブル移動平均
増し玉 | 制限 | 取引数 | 勝率 | RR比率 | 累計損益 | 期待値 | 損益の標準偏差 | |
---|---|---|---|---|---|---|---|---|
金額ベース | なし | なし | 632 | 33.86% | 1.96 | 125,315 | ||
なし | あり | 24 | 45.83% | 0.79 | -1,009,666 | |||
あり | なし | 592 | 43.92% | 1.24 | -1,549,954 | |||
あり | あり | 25 | 48.00% | 0.82 | -1,001,375 | |||
リスク比 | なし | なし | 632 | 33.86% | 2.28 | 383.775 | 0.59 | 11.665 |
なし | あり | 24 | 45.83% | 0.63 | -277.38 | -11.558 | 62.464 | |
あり | なし | 592 | 43.92% | 1.9 | 900.025 | 1.502 | 10.635 | |
あり | あり | 25 | 48.00% | 0.76 | -264.449 | -10.578 | 87.096 |
増し玉なし、制限なし
増し玉なし、制限あり
増し玉あり、制限なし
増し玉あり、制限あり
トリプル移動平均
増し玉 | 制限 | 取引数 | 勝率 | RR比率 | 累計損益 | 期待値 | 損益の標準偏差 | |
---|---|---|---|---|---|---|---|---|
金額ベース | なし | なし | 270 | 38.52% | 1.48 | -1,019,006 | ||
なし | あり | 406 | 31.77% | 2.09 | -282,606 | |||
あり | なし | 824 | 50.36% | 0.98 | -3,090,293 | |||
あり | あり | 515 | 33.20% | 1.96 | -736,636 | |||
リスク比 | なし | なし | 270 | 38.52% | 2.46 | 508.593 | 1.863 | 18.445 |
なし | あり | 406 | 31.77% | 2.43 | 211.704 | 0.495 | 16.075 | |
あり | なし | 824 | 50.36% | 1.83 | 2032.209 | 2.459 | 11.914 | |
あり | あり | 515 | 33.20% | 2.39 | 438.374 | 0.813 | 20.018 |
増し玉なし、制限なし
増し玉なし、制限あり
増し玉あり、制限なし
増し玉あり、制限あり
考察
今回のテストを経た、筆者の考えをまとめます。
手法の再現はできたのか
あまりにも悪い結果ですが、そもそも手法の再現はできていたのでしょうか。書籍と同じ期間でテストして確認してみます。
増し 玉 | 制限 | CAGR | MARレシオ | 取引数 | 勝率 | RR比 | 最大DD | 最大DD期間 | |
---|---|---|---|---|---|---|---|---|---|
ATR_CBO | なし | なし | 3.92% | 0.059 | 522 | 27.97% | 2.778 | 65.92% | 60ヶ月 |
BB_CBO | なし | なし | 11.04% | 0.155 | 163 | 36.81% | 2.88 | 71.21% | 93ヶ月 |
DCBO | なし | なし | 9.64% | 0.196 | 1817 | 34.40% | 2.165 | 49.09% | 59ヶ月 |
Timed_DCBO | なし | なし | 7.89% | 0.083 | 808 | 51.36% | 1.013 | 94.81% | 78ヶ月 |
DoubleEMA | なし | なし | 7.88% | 0.147 | 265 | 35.09% | 2.115 | 53.73% | 33ヶ月 |
TripleEMA | なし | なし | 14.03% | 0.246 | 232 | 40.95% | 1.962 | 57.00% | 36ヶ月 |
- 書籍ほどの良い結果ではない
- 2006年までは、すべての手法が比較的好調であった
- BB CBOはそのままで2020年まで有効
- DCBOはそのままでも利益、増し玉するとなお良し
残念ですが、テスト結果はかなり劣後しています。
もっとも再現できたのは取引回数で、非常によく似ています。しかし、これしかないデータ数で、こんなにも取引回数が異なることは少 し考えづらいかなとも思います。
結果の精査も行いましたが、おかしな点は見つけられていません。現時点で想定している原因は〝つなぎ足であること〟です。今回のテストがつなぎ足でシグナルを算出しているのに対して、各限月毎の価格で算出した仮定すると取引回数が異なることも大いにあり得ます。また、燃料系や穀物、農産物においては、限月毎に値動きが異なるケースもよくあります。
これらは価格データが入手できればコードを少し書き換えるだけでテストできますが、データの入手にコストが掛かりそうです。ちょっとこれ以上の再現は難しいかなと感じています。
書籍に掲載されている手法を突き止める
テスト結果は再現できていないですが、損益グラフの推移から次のように推測しています。
- 増し玉はなし
- 制限もなし
- ユニットの算出はAccount Value
「1」「2」は損益の推移が根拠です。増し玉なし、制限なしのものが、すべて2006年まで好調でした。
「3」は、DoubleEMAやTripleEMAの現金資産の推移が根拠です。Account Valueは未決済の損益を含む口座の価値ですが、利益確定に数年掛かる手法において、現金資産は減る一方です。Account Valueでユニットを算出しないと合理的でないと判断しました。
取引量の制限は有効か
今回のテストを経て、取引回数の制限は 有効ではない と感じています。いずれも、取引回数の制限がない方が良い成績だったからです。特に、長期の手法において、その傾向は顕著でした。
「期待値」を見てみると、以下のような結果でした。
- 長期の手法において、制限ありはすべて悪い結果に
- それ以外は、良かったり悪かったり
シグナルのフィルタリングは因果のはっきりした変数で行うべきだと、あらためて感じさせられました。
ピラミッティングは有効か
これは、手法による というのが筆者の見解です。
テスト結果を確認すると、次のような結果でした。
- 長期の手法において、増し玉ありはすべて悪い結果に
- DCBOだけは、増し玉ありが有効
DCBOは、ロスカットが早い手法でした。それ以外の手法は、値動きによって損失が大きく膨らむ手法です。この違いによって生じる差だと考えています。
TradingView版では良い結果だったが
TradingView版の記事では、すべての手法がその後の10年でもプラスでした。これは、銘柄による違いだと思います。
米国株や株価指数など、比較的トレンドが発生していた銘柄が含まれています。この影響が大きかったのではないかと考えています。
前回のテストでも「期待値」という項目がありましたが、算出方法が違うので正確な比較はできません。ただ、前回のテストでもBB CBOが良い結果だったことが少し印象的です。
テスト結果のCSVを公開
Googleドライブに、今回行ったテスト結果を公開しています。ファイル名がテスト内容を表しています。
テスト毎の、
- 損益グラフ(jpg)
- 売買履歴(csv)
- 残高の推移(csv)
- ログ(csv)
や、まとめのcsvがあります。
まとめ
採用するとした らBB CBOですが、前述の通り、正直あまり妙味がありません。
自動売買を作るにも監視してトレードするにしても工数がそこそこ掛かります。自動売買なんて、メンテナンスを考えるとまったく割に合いません。結果に大きな差がないなら、自動積立を設定してインデックス投資をしていた方が良いと思います。
勉強にはなりましたが、別の手法を探す方が良さそうです。
試してみたいことはたくさんあるので、引き続き、検証とトライアンドエラーを重ねていきます。
あとは、書籍の手法も、結局のところ〝過剰最適化〟されていたと言えるかもしれません。長期にわたって再現できるロジックには、やはり〝因果〟が大事ですね。少なくとも、ポートフォリオIN/OUTの変数は相関係数ではなさそうということですね。
- 記事をシェア