新型コロナウイルス感染症の影響によりスAmazonでのマスクの値段が7~8倍になっています。
マスクが欲しくても手に入りません。
そんな中・・・・、
私を除いて家族全員がインフルエンザAに感染した!
コロナは政府が頑張って感染拡大を抑えているから、インフルエンザの方がマスクいるでしょ・・・・。
ダフ屋は滅びろ!
因みに、株をやっている仲間からは、
50万円稼いだ!
今年の年利は100%超え!
という朗報を貰っています。
未曾有の経済危機こそ儲け時!
私は早くストラテジーを作成しないとな・・・・。
これは、「株の自動売買」を夢見て無駄な人生を費やしている一人の男の物語です。
- 【8回目】機械学習で株価予測(交差検証+ROC 曲線とAUCで精度65%)
- 【7回目】機械学習で株価予測(騰落レシオ+株価分割対応で複数銘柄)
- 【6回目】機械学習で株価予測(機械学習で株予測(3点チャージ法の有効性検証)
- 【5回目】機械学習で株価予測(Protraを使ったバックテスト解決編)
- 【4回目】機械学習で株価予測(Backtraderでバックテスト調査)
- 【3回目】機械学習で株価予測(Pythonのバックテストライブラリ調査)
- 【2回目】機械学習で株価予測(TA-LibとLightGBMを使った学習モデル構築)
- 【1回目】機械学習で株価予測(Two SigmaのKaggleコンペを確認)
ROC曲線とAUCの評価指標は0.64と低いですが、現時点で実装したストラテジーをProtraでバックテストを行い傾向を把握しておきます。
平均年利ってどこまで目指せば良いの?
「システムトレードの達人」を使って、独自のトレード手法を構築し平均年利104%を達成しているトレーダー「夢幻」氏という人がいます。
果たして「100%」超えの年利を狙うことは本当に出来るのでしょうか?
ググってみると・・・・
- システムトレードで年利136%を目指すシルバーマンファンド運用日記
- 株の「システムトレード」で平均年利150%は可能か?
などなど「年利100%」を大きく超えた記事を書いている人も存在します。
「テラス」と「トレジスタ」を点検すると、平均年率100%を超えるシングルタスクの「ストラテジー」が幾つか見られます。
・逆張りロングで、平均年率100%を超えるシングルタスク「ストラテジ-」
・順張りロングで、平均年率100%を超えるシングルタスク「ストラテジ-」
・逆張りショートで、平均年率100%を超えるシングルタスク「ストラテジ-」
はありそうです。
そしてこれらがシグナルを重複しないことが確認出来れば、これらを「マルチストラテジー」に組んで運用・・・
「平均年率300%のストラテジー」が可能・ と見えてきました。
年利を上げるには、総取引回数を増やす必要があります。
短期シストレの基本的な戦略の能力が「総取引回数×期待値÷保有日数」という公式で表されるとすれば、次の3点が重要です。
- 総取引回数を増やす
- 期待値を上げる
- 保有日数を短くする
これらも目的変数として考慮できれば、より年利の高いストラテジーができるかもしれません。
Protra+機械学習のストラテジーのおさらい
【資金管理条件】
- 銘柄選定(証券コード毎に時価総額ランキング1位の9銘柄)
- 1回の購入資金 (100万円)
- 投資総額 (1000万円)
- 単利運用
【買いルール】
- 3日後の始値が50%以上の確率で3%以上上がると判断した場合
【手仕舞いルール】
- 3日経過
【機械学習データ】
- [説明変数] 始値、高値、安値、調整後終値、出来高、移動平均、乖離率、RSI、BB、MACD、VR、騰落レシオ、曜日
- [目的変数] 翌日の始値から3日後の始値が3%以上上がったもの
- [学習モデル] 勾配ブースティング(LightGBM)
- [モデル評価] KFold(K-分割交差検証)
学習モデルの分類確率に応じたバックテスト結果
predict_proba() メソッドを使うと、そのクラスに分類される確率が得られます。
その閾値を 0.5~0.9に変更した結果のバックテスト結果を見てみます。
分類確率50%以上を抽出する
利益曲線は次のとおりです。
年度別レポートは次のとおりです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
[年度別レポート] 年度 取引回数 運用損益 年利 勝率 PF 最大DD 2020年 8回 ¥51,300円 0.91% 50.00% 4.59倍 -0.72% 2019年 259回 ¥1,882,800円 33.34% 61.00% 2.56倍 -4.17% 2018年 243回 ¥2,255,100円 39.93% 65.84% 2.91倍 -5.39% 2017年 253回 ¥2,126,300円 37.65% 64.43% 3.02倍 -4.35% 2016年 337回 ¥5,160,800円 91.38% 68.25% 4.10倍 -7.20% 2015年 311回 ¥5,657,300円 100.17% 71.70% 6.54倍 -4.29% 2014年 308回 ¥3,146,300円 55.71% 63.31% 2.99倍 -7.02% 2013年 365回 ¥6,584,500円 116.59% 73.42% 5.88倍 -6.60% 2012年 287回 ¥3,522,600円 62.37% 64.46% 3.30倍 -8.78% 2011年 287回 ¥2,746,900円 48.64% 62.37% 2.72倍 -10.30% 2010年 292回 ¥3,267,200円 57.85% 66.10% 3.54倍 -6.81% 2009年 327回 ¥8,400,700円 148.75% 76.15% 6.30倍 -8.61% 2008年 340回 ¥8,047,700円 142.50% 74.71% 5.20倍 -10.26% 2007年 259回 ¥3,973,400円 70.35% 71.43% 4.44倍 -6.38% 2006年 305回 ¥4,058,300円 71.86% 66.23% 3.99倍 -5.43% 2005年 235回 ¥3,480,400円 61.63% 72.34% 5.72倍 -4.55% 2004年 259回 ¥3,989,600円 70.64% 70.66% 4.60倍 -4.34% 2003年 383回 ¥5,926,400円 104.93% 67.36% 3.71倍 -6.73% 2002年 323回 ¥5,800,400円 102.70% 71.83% 4.67倍 -12.10% 2001年 302回 ¥6,793,400円 120.29% 72.52% 6.35倍 -7.82% 2000年 283回 ¥6,542,800円 115.85% 72.08% 5.88倍 -7.26% |
勝率67%、プロフィットファクター4、年利79%(直近5年間41%)というストラテジーの完成です。
分類確率60%以上を抽出する
利益曲線は次のとおりです。
年度別レポートは次のとおりです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
[年度別レポート] 年度 取引回数 運用損益 年利 勝率 PF 最大DD 2020年 5回 ¥40,400円 0.87% 40.00% 4.54倍 -0.72% 2019年 184回 ¥2,203,300円 47.35% 72.83% 4.68倍 -4.17% 2018年 185回 ¥2,515,100円 54.05% 71.35% 4.93倍 -5.02% 2017年 189回 ¥1,824,800円 39.22% 64.55% 3.25倍 -6.54% 2016年 276回 ¥5,636,700円 121.14% 71.74% 6.50倍 -6.56% 2015年 248回 ¥5,082,600円 109.23% 75.00% 6.13倍 -9.58% 2014年 230回 ¥3,710,800円 79.75% 71.74% 6.19倍 -4.30% 2013年 300回 ¥7,094,300円 152.46% 77.00% 8.80倍 -4.48% 2012年 229回 ¥3,969,500円 85.31% 72.05% 4.78倍 -8.78% 2011年 224回 ¥2,851,400円 61.28% 66.96% 3.33倍 -10.30% 2010年 220回 ¥3,582,300円 76.99% 74.55% 6.06倍 -3.97% 2009年 271回 ¥8,958,500円 192.52% 81.92% 9.62倍 -9.07% 2008年 287回 ¥8,601,700円 184.86% 79.09% 7.56倍 -9.56% 2007年 201回 ¥4,159,100円 89.38% 78.61% 8.00倍 -6.38% 2006年 232回 ¥4,271,600円 91.80% 74.14% 6.00倍 -5.30% 2005年 171回 ¥3,162,000円 67.95% 74.85% 8.26倍 -2.74% 2004年 199回 ¥4,242,700円 91.18% 78.39% 7.41倍 -4.34% 2003年 318回 ¥6,871,200円 147.67% 77.36% 6.52倍 -7.10% 2002年 257回 ¥5,919,400円 127.21% 77.04% 6.86倍 -12.10% 2001年 255回 ¥7,460,700円 160.33% 80.00% 9.70倍 -7.82% 2000年 232回 ¥7,445,200円 160.00% 78.88% 10.97倍 -5.93% |
勝率73%、プロフィットファクター7、年利102%(直近5年間53%)という驚異の年利100%超えです。
分類確率70%以上を抽出する
利益曲線は次のとおりです。
年度別レポートは次のとおりです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
[年度別レポート] 年度 取引回数 運用損益 年利 勝率 PF 最大DD 2020年 6回 ¥14,200円 0.30% 66.67% 1.30倍 -3.97% 2019年 127回 ¥2,082,500円 44.69% 74.80% 7.75倍 -4.17% 2018年 111回 ¥2,051,200円 44.02% 73.87% 8.09倍 -3.76% 2017年 114回 ¥1,963,400円 42.14% 71.93% 5.94倍 -3.69% 2016年 209回 ¥5,461,400円 117.21% 79.90% 11.60倍 -6.56% 2015年 174回 ¥4,237,600円 90.94% 79.89% 10.31倍 -6.76% 2014年 148回 ¥3,169,500円 68.02% 79.73% 9.10倍 -6.06% 2013年 223回 ¥7,079,600円 151.93% 85.20% 16.28倍 -4.48% 2012年 165回 ¥3,843,400円 82.48% 78.79% 8.47倍 -4.22% 2011年 149回 ¥2,722,000円 58.42% 71.14% 5.22倍 -5.00% 2010年 150回 ¥2,896,400円 62.16% 75.33% 8.08倍 -4.47% 2009年 198回 ¥8,192,600円 175.82% 88.38% 21.68倍 -5.14% 2008年 218回 ¥7,940,300円 170.40% 79.36% 10.25倍 -9.56% 2007年 125回 ¥3,324,100円 71.34% 84.00% 15.41倍 -3.86% 2006年 164回 ¥4,161,000円 89.30% 79.27% 10.01倍 -4.00% 2005年 100回 ¥2,549,500円 54.71% 78.00% 11.44倍 -2.74% 2004年 138回 ¥3,623,200円 77.76% 82.61% 11.18倍 -3.88% 2003年 241回 ¥6,012,900円 129.04% 79.67% 7.34倍 -7.10% 2002年 199回 ¥6,223,700円 133.56% 82.91% 13.84倍 -3.77% 2001年 188回 ¥7,433,400円 159.53% 86.17% 20.58倍 -5.25% 2000年 176回 ¥6,085,500円 130.60% 84.66% 17.37倍 -4.44% |
勝率79%、プロフィットファクター11、年利93%(直近5年間50%)という安定性になりました。
分類確率80%以上を抽出する
利益曲線は次のとおりです。
年度別レポートは次のとおりです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
[年度別レポート] 年度 取引回数 運用損益 年利 勝率 PF 最大DD 2020年 5回 ¥27,800円 0.52% 80.00% 1.84倍 -3.97% 2019年 62回 ¥1,116,000円 20.95% 77.42% 8.47倍 -4.01% 2018年 62回 ¥1,403,900円 26.35% 79.03% 11.57倍 -3.76% 2017年 59回 ¥1,474,400円 27.68% 86.44% 20.02倍 -2.11% 2016年 118回 ¥4,103,700円 77.03% 86.44% 30.50倍 -3.30% 2015年 96回 ¥3,058,300円 57.41% 88.54% 17.16倍 -6.76% 2014年 85回 ¥2,398,900円 45.03% 84.71% 20.36倍 -4.57% 2013年 129回 ¥5,161,900円 96.90% 91.47% 30.70倍 -6.13% 2012年 104回 ¥3,449,500円 64.75% 86.54% 18.75倍 -3.21% 2011年 73回 ¥1,789,000円 33.58% 78.08% 9.49倍 -3.35% 2010年 73回 ¥1,478,800円 27.76% 73.97% 5.69倍 -8.23% 2009年 127回 ¥6,302,500円 118.31% 90.55% 27.16倍 -5.14% 2008年 140回 ¥6,771,200円 127.11% 90.00% 23.86倍 -12.90% 2007年 62回 ¥1,820,300円 34.17% 82.26% 9.50倍 -5.15% 2006年 78回 ¥2,479,500円 46.54% 84.62% 24.50倍 -2.16% 2005年 45回 ¥1,873,200円 35.16% 88.89% 33.30倍 -2.74% 2004年 70回 ¥2,687,600円 50.45% 87.14% 18.88倍 -3.36% 2003年 135回 ¥4,466,100円 83.84% 87.41% 17.56倍 -3.51% 2002年 129回 ¥5,017,700円 94.19% 87.60% 22.63倍 -2.84% 2001年 113回 ¥5,159,300円 96.85% 92.92% 57.57倍 -2.27% 2000年 108回 ¥4,638,000円 87.06% 90.74% 34.63倍 -4.44% |
勝率86%、プロフィットファクター20、年利60%(直近5年間31%)という安定性になりました。
分類確率90%以上を抽出する
利益曲線は次のとおりです。
年度別レポートは次のとおりです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
[年度別レポート] 年度 取引回数 運用損益 年利 勝率 PF 最大DD 2019年 15回 ¥411,100円 14.32% 86.67% 23.71倍 -1.78% 2018年 10回 ¥352,000円 12.26% 90.00% 30.33倍 -1.50% 2017年 8回 ¥203,000円 7.07% 75.00% 49.33倍 -0.44% 2016年 29回 ¥1,219,100円 42.47% 89.66% 46.49倍 -1.27% 2015年 25回 ¥1,217,800円 42.43% 96.00% 265.74倍 -0.64% 2014年 29回 ¥1,078,400円 37.57% 93.10% 101.79倍 -1.11% 2013年 28回 ¥1,534,000円 53.44% 96.43% 427.11倍 -0.44% 2012年 27回 ¥1,023,500円 35.66% 81.48% 17.81倍 -3.03% 2011年 15回 ¥423,500円 14.75% 86.67% 16.74倍 -1.90% 2010年 20回 ¥783,200円 27.29% 95.00% 72.20倍 -1.19% 2009年 44回 ¥2,523,700円 87.92% 93.18% 25.04倍 -6.35% 2008年 49回 ¥3,470,700円 120.92% 97.96% 28.81倍 -12.90% 2007年 15回 ¥379,400円 13.22% 80.00% 11.20倍 -2.02% 2006年 15回 ¥510,100円 17.77% 86.67% 14.79倍 -2.69% 2005年 7回 ¥389,200円 13.56% 100.00% ∞倍 0.00% 2004年 16回 ¥870,500円 30.33% 87.50% 23.49倍 -2.25% 2003年 40回 ¥1,617,900円 56.37% 85.00% 18.74倍 -3.27% 2002年 40回 ¥1,786,600円 62.24% 92.50% 37.46倍 -3.27% 2001年 30回 ¥1,682,800円 58.63% 96.67% 85.99倍 -1.98% 2000年 42回 ¥2,205,300円 76.83% 90.48% 48.32倍 -2.14% |
勝率91%、プロフィットファクター34、年利41%(直近5年間24%)という安定性になりました。
考察してみる
上記の結果をまとめてみました。
分類確率 | 取引数 | 勝率 | PF | 年利(直近5年) | 最大DD |
---|---|---|---|---|---|
50%以上 | 5966 | 66.83% | 4.37 | 78.76%(40.64%) | -12.10% |
60%以上 | 4713 | 73.35% | 6.71 | 101.93%(52.52%) | -12.10% |
70%以上 | 3323 | 79.18% | 10.94 | 93.06%(49.67%) | -9.56% |
80%以上 | 1873 | 85.90% | 19.86 | 59.60%(30.51%) | -12.90% |
90%以上 | 504 | 90.67% | 33.53 | 41.25%(23.71%) | -12.90% |
想定どおり、分類確率が上がるにつれ取引数が下がり、勝率やプロフィットファクターが上がっています。
年利は分類確率50%以上の場合を除いて下がるようです。
ただ「総取引回数を増やす」「期待値を上げる」「保有日数を短くする」が年利向上のセオリーなので、純粋に対象銘柄を増やせば年利は上がると思ってます。
フォワードテストを兼ねた「日経255採用銘柄」でバックテスト
さあお待ちかね!
日経255採用銘柄全てを使ってバックテストをしてみます。
エラー「Exception: inputs are all NaN」に遭遇
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
---> 82 df['sma15'] = talib.SMA(close, timeperiod=15) 83 df['sma25'] = talib.SMA(close, timeperiod=25) 84 df['sma50'] = talib.SMA(close, timeperiod=50) c:\python38\lib\site-packages\talib\__init__.py in wrapper(*args, **kwargs) 30 for k, v in kwargs.items()} 31 ---> 32 result = func(*args, **kwargs) 33 34 # Series was passed in, Series gets out; re-apply index _func.pxi in talib._ta_lib.SMA() Exception: inputs are all NaN |
過去の株価がない(空もしくは0)のに、talibで計算しようとしたためにエラーとなったようです。
このエラーが出る銘柄は、株価データがないので削除すればよいでしょう。
バックテスト結果
分類確率90%以上だけを使ったバックテスト結果です。
計算時間は次のとおりです。
- 機械学習部分 10分
- Protraのバックテスト部分 35分
Protraのバックテスト時間が長いです・・・・。
なお「1998/01/05~2015/12/14」を利用して学習させています。
つまり「2015/12/15~2020/01/24」が未知の予測(フォワードテスト)となります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
株価データ: 日足 銘柄リスト: 日経225採用銘柄 1998/01/05~2020/01/24における成績です。 ---------------------------------------- 全トレード数 7646 勝ちトレード数(勝率) 6323(82.70%) 負けトレード数(負率) 1323(17.30%) 全トレード平均利率 4.22% 勝ちトレード平均利率 5.51% 負けトレード平均損率 -1.93% 勝ちトレード最大利率 73.08% 負けトレード最大損率 -19.70% 全トレード平均期間 4.46 勝ちトレード平均期間 4.45 負けトレード平均期間 4.51 ---------------------------------------- 必要資金 ¥9,587,000 最大ポジション(簿価) ¥9,997,700 最大ポジション(時価) ¥11,518,300 純利益 ¥298,270,100 勝ちトレード総利益 ¥321,309,300 負けトレード総損失 -¥23,039,200 全トレード平均利益 ¥39,010 勝ちトレード平均利益 ¥50,816 負けトレード平均損失 -¥17,414 勝ちトレード最大利益 ¥728,000 負けトレード最大損失 -¥143,800 プロフィットファクター 13.95 最大ドローダウン(簿価) -¥1,316,384 最大ドローダウン(時価) -¥1,974,848 ---------------------------------------- 現在進行中のトレード数 4 ---------------------------------------- 平均年利 148.15% 平均年利(直近5年) 5.27% 最大連勝 62回 最大連敗 7回 ---------------------------------------- [年度別レポート] 年度 取引回数 運用損益 年利 勝率 PF 最大DD 2020年 16回 -¥175,500円 -1.83% 37.50% 0.36倍 -5.00% 2019年 282回 ¥1,168,500円 12.19% 52.13% 1.44倍 -19.70% 2018年 209回 -¥260,300円 -2.72% 50.72% 0.90倍 -11.59% 2017年 258回 ¥545,500円 5.69% 54.26% 1.30倍 -7.27% 2016年 415回 ¥1,246,900円 13.01% 53.25% 1.23倍 -13.56% 2015年 408回 ¥13,559,300円 141.43% 86.27% 19.14倍 -8.13% 2014年 340回 ¥12,243,400円 127.71% 88.24% 23.29倍 -3.77% 2013年 466回 ¥21,313,300円 222.31% 89.48% 30.94倍 -4.02% 2012年 417回 ¥15,225,100円 158.81% 85.61% 17.68倍 -4.92% 2011年 340回 ¥11,998,700円 125.16% 87.06% 17.07倍 -6.62% 2010年 395回 ¥13,586,400円 141.72% 89.62% 23.82倍 -3.68% 2009年 436回 ¥23,709,000円 247.30% 88.53% 29.72倍 -4.82% 2008年 429回 ¥25,290,900円 263.80% 93.47% 45.93倍 -6.66% 2007年 379回 ¥15,295,300円 159.54% 88.39% 28.74倍 -4.18% 2006年 360回 ¥13,961,100円 145.63% 90.28% 30.55倍 -3.96% 2005年 345回 ¥12,660,000円 132.05% 85.51% 21.93倍 -5.35% 2004年 355回 ¥14,185,500円 147.97% 88.45% 19.73倍 -8.82% 2003年 477回 ¥25,817,600円 269.30% 90.78% 42.23倍 -6.47% 2002年 389回 ¥20,794,600円 216.90% 92.54% 51.47倍 -5.68% 2001年 419回 ¥23,413,900円 244.23% 91.89% 46.68倍 -5.33% 2000年 511回 ¥32,690,600円 340.99% 92.37% 51.95倍 -7.16% |
利益曲線は次のとおりです。
さあ!どこからがフォワードテストか分かるかな?
・・・・という質問の意味すらないぐらいの曲がりっぷり!!
直角切り!!
フォワードテストを始めても最初の一ヶ月ぐらいはプラス傾向になるかな・・・と思ってましたが、全くそのような結果になっていません。
1 2 3 4 5 6 7 |
[2016年] 月度 取引回数 運用損益 勝率 PF 最大DD 1月 41回 -¥803,300円 29.27% 0.15倍 -7.62% [2015年] 月度 取引回数 運用損益 勝率 PF 最大DD 12月 21回 ¥19,600円 52.38% 1.11倍 -8.13% 11月 36回 ¥1,283,300円 94.44% 25.30倍 -3.60% |
このままでは、実践投入は不可能です。
まとめ
分類確率90%以上の「勝率9割以上」「プロフィットファクター30以上」は非常に魅力的です。
が・・・・、結局フォワードテスト(もどき)な結果では、キレイにカーブが寝てしまいました。
これを回避するの無理なのでは・・・・?
「株の自動売買」は夢のまた夢なのかな・・・・。