システムトレード……進んでない。
ニッチ過ぎてアクセス数が超少ないし、バックテストする材料が最近見つからないんだよね。
でも前回の古典のストラテジーの記事は人気があった。
調子にのって今回も古典バックテストをしてみた。
が……、よく考えたら前回の記事の冒頭で「自転車保険」の事を書いたんだよね。
それが、検索キーワードとして人が増えただけだった。
がっかり。
で、株のことをググった事で、グーグル先生が次のような記事をレコメンドしてきた。
株でウン億稼いだ……って、何だよ、それ。
畜生めが!
読みたくなかったわ!
日経平均株価上がってるのに未ださに損してるからね、俺!
裁量は全く儲からないよ。
早くシステムトレードを完成させなきゃ……。
3点チャージ投資法
それは、3つのテクニカル指標を使用して底値を予測して買う逆張り投資法。
- 乖離率
- ボリューム・レシオ(VR)
- 相対力指数(RSI)
システムトレード経験者なら必ず知ってる手法だ。
考案者は「明地文男」氏。
ただ、近年は儲からなくなり、多くの人が見向きもしなくなった。
明地氏は日々のシグナルをサイトに公開してたはず。
今はどうなったんだろう?
おっ、サイトは顕在!
あれ?
新3点チャージ投資法2021?
今までの「3点チャージ投資法」は買いシグナルの条件が一つのみで、
その条件が厳しいため、優良銘柄の投資チャンスが少ない、マイナス点がありました。
そこで従来の買いシグナルの条件「ファイナル・チャージ」(Level-1)に加え、種類の「プレミアム・チャージ」 (Level-2~Level-4)の条件を追加しました。
新しい「プレミアム・チャージ」のターゲットは、主に「優良銘柄」「大型株」の「底値」「安値」となります。
すげーな、まだ3点チャージ投資法を改造してリリースしてるのか……。
THE 虎舞竜の「ロード」じゃねーか……。
どんだけ続けるつもりなんだよ……。
classの「冬の日の2009」だってリリースを止めて欲しかった。
結婚した二人の15年後(2009年)の歌詞……って知りたくなかったよ。
15年後の夫婦関係なんて、こんな感じだよ!
青春時代の「夏の日の1993」だけで良かったわ……夢を壊すなよ。
でも、「新3点チャージ投資法2021」は面白そうなのでバックテストをやってみた。
新3点チャージ投資法2021の概要
サイトを読んでみたら、単に乖離率、ボリューム・レシオ(VR)、相対力指数(RSI)の数値が違うだけだった。
名称 | 乖離率 | VR | RSI |
---|---|---|---|
3点チャージ(レベル1) (ファイナル・チャージ) |
-15 | 70 | 25 |
プレミアム・チャージ(レベル2) | -10 | 85 | 25 |
プレミアム・チャージ(レベル3) | -7.5 | 100 | 27.5 |
プレミアム・チャージ(レベル4) | -5 | 125 | 30 |
数値をいじっただけで利益が良くなるなら、今までの手法は何だったのか……。
そして、昔から多くの人がやってきてる気がするなぁ。
「プレミアム・チャージ」は「レベル2」→「レベル3」→「レベル4」と、レベルの数値が変わるにつれ、「投資チャンス」は多くなりますが、「パフォーマンス」は小さくなる可能性があります。
ゴニョゴニョ書いてあるけど「バックテスト」すれば分かるっしょ!!
仮説は実証して初めて真実になるからね!
バックテスト結果
ターゲットは「大型株」との事なので「売買代金上位500位」を利用してバックテストをしてみた。
3点チャージ(レベル1)
これは従来の手法。
で、今までも何度も見てきたバックテストの結果。
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 |
全トレード数 2932 勝ちトレード数(勝率) 1521(51.88%) 負けトレード数(負率) 1411(48.12%) 全トレード平均利率 0.88% 勝ちトレード平均利率 6.80% 負けトレード平均損率 -5.49% 勝ちトレード最大利率 48.78% 負けトレード最大損率 -64.55% 全トレード平均期間 4.13 勝ちトレード平均期間 4.29 負けトレード平均期間 3.96 ---------------------------------------- 必要資金 ¥2,843,200 最大ポジション(簿価) ¥2,998,500 最大ポジション(時価) ¥3,671,900 純利益 ¥11,251,200 勝ちトレード総利益 ¥45,218,900 負けトレード総損失 -¥33,967,700 全トレード平均利益 ¥3,837 勝ちトレード平均利益 ¥29,730 負けトレード平均損失 -¥24,073 勝ちトレード最大利益 ¥260,000 負けトレード最大損失 -¥220,100 プロフィットファクター 1.33 最大ドローダウン(簿価) -¥1,091,800 最大ドローダウン(時価) -¥1,222,000 ---------------------------------------- 現在進行中のトレード数 0 ---------------------------------------- 平均年利 17.99% 平均年利(直近5年) -2.18% 最大連勝 8回 最大連敗 14回 ---------------------------------------- [年度別レポート] 年度 取引回数 運用損益 年利 勝率 PF 最大DD 2021年 32回 ¥53,900円 1.90% 50.00% 1.22倍 -8.40% 2020年 147回 -¥282,500円 -9.94% 43.54% 0.87倍 -30.85% 2019年 131回 ¥656,800円 23.10% 59.54% 1.97倍 -12.52% 2018年 196回 -¥650,500円 -22.88% 49.49% 0.71倍 -18.78% 2017年 47回 -¥88,200円 -3.10% 68.09% 0.87倍 -64.55% 2016年 137回 ¥1,015,500円 35.72% 55.47% 1.87倍 -13.79% 2015年 77回 ¥785,400円 27.62% 58.44% 2.78倍 -10.24% 2014年 122回 ¥551,800円 19.41% 57.38% 1.50倍 -24.33% 2013年 76回 ¥290,800円 10.23% 51.32% 1.43倍 -23.15% 2012年 128回 ¥123,700円 4.35% 45.31% 1.08倍 -17.31% 2011年 153回 ¥770,300円 27.09% 50.33% 1.36倍 -45.72% 2010年 124回 ¥304,700円 10.72% 57.26% 1.28倍 -13.88% 2009年 146回 ¥604,600円 21.26% 60.27% 1.32倍 -21.82% 2008年 298回 ¥1,021,700円 35.93% 49.33% 1.24倍 -24.58% 2007年 173回 ¥348,900円 12.27% 49.13% 1.17倍 -14.73% 2006年 129回 ¥629,800円 22.15% 57.36% 1.35倍 -36.47% 2005年 29回 ¥580,800円 20.43% 65.52% 4.07倍 -9.69% 2004年 79回 ¥471,700円 16.59% 63.29% 1.72倍 -14.89% 2003年 80回 ¥657,400円 23.12% 61.25% 1.95倍 -17.54% 2002年 164回 ¥669,600円 23.55% 56.10% 1.33倍 -23.08% 2001年 245回 ¥799,000円 28.10% 51.43% 1.25倍 -17.72% 2000年 219回 ¥1,936,000円 68.09% 56.62% 1.65倍 -26.14% |
利益曲線は次のとおり。
うん、2017年頃からは線が寝ているどころか負けてるね。
この結果だと、さすがに「3点チャージ法」は使い物にならないわ。
プレミアム・チャージ(レベル2)
ここからが本題。
まずはLevel2。
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 |
全トレード数 5117 勝ちトレード数(勝率) 2591(50.64%) 負けトレード数(負率) 2526(49.36%) 全トレード平均利率 0.57% 勝ちトレード平均利率 5.70% 負けトレード平均損率 -4.69% 勝ちトレード最大利率 79.72% 負けトレード最大損率 -69.03% 全トレード平均期間 4.27 勝ちトレード平均期間 4.42 負けトレード平均期間 4.12 ---------------------------------------- 必要資金 ¥2,764,900 最大ポジション(簿価) ¥3,491,600 最大ポジション(時価) ¥3,770,800 純利益 ¥12,770,540 勝ちトレード総利益 ¥64,205,590 負けトレード総損失 -¥51,435,050 全トレード平均利益 ¥2,496 勝ちトレード平均利益 ¥24,780 負けトレード平均損失 -¥20,362 勝ちトレード最大利益 ¥364,500 負けトレード最大損失 -¥351,000 プロフィットファクター 1.25 最大ドローダウン(簿価) -¥1,568,260 最大ドローダウン(時価) -¥1,712,160 ---------------------------------------- 現在進行中のトレード数 2 ---------------------------------------- 平均年利 20.99% 平均年利(直近5年) -2.09% 最大連勝 10回 最大連敗 11回 ---------------------------------------- [年度別レポート] 年度 取引回数 運用損益 年利 勝率 PF 最大DD 2021年 61回 ¥289,900円 10.49% 52.46% 1.66倍 -11.00% 2020年 249回 -¥81,200円 -2.94% 50.60% 0.97倍 -33.06% 2019年 259回 ¥618,000円 22.35% 54.05% 1.38倍 -13.82% 2018年 330回 -¥1,068,750円 -38.65% 47.58% 0.69倍 -22.34% 2017年 167回 -¥47,310円 -1.71% 51.50% 0.97倍 -69.03% 2016年 261回 ¥1,072,700円 38.80% 53.64% 1.54倍 -16.50% 2015年 220回 ¥1,195,800円 43.25% 56.82% 1.77倍 -15.59% 2014年 224回 ¥700,000円 25.32% 56.25% 1.33倍 -25.97% 2013年 173回 ¥943,000円 34.11% 58.38% 1.65倍 -24.33% 2012年 229回 ¥177,800円 6.43% 45.85% 1.07倍 -30.53% 2011年 244回 ¥43,100円 1.56% 49.59% 1.01倍 -45.72% 2010年 224回 ¥182,600円 6.60% 49.55% 1.09倍 -11.37% 2009年 234回 ¥327,400円 11.84% 53.42% 1.11倍 -20.99% 2008年 369回 ¥1,156,700円 41.84% 50.41% 1.25倍 -24.58% 2007年 289回 -¥71,300円 -2.58% 47.40% 0.98倍 -14.73% 2006年 222回 ¥261,600円 9.46% 50.90% 1.09倍 -23.15% 2005年 93回 ¥697,900円 25.24% 58.06% 2.14倍 -9.69% 2004年 179回 ¥838,100円 30.31% 60.34% 1.67倍 -11.95% 2003年 185回 ¥1,248,700円 45.16% 62.70% 1.87倍 -27.47% 2002年 276回 ¥1,186,200円 42.90% 52.54% 1.44倍 -23.08% 2001年 317回 ¥681,000円 24.63% 49.84% 1.19倍 -29.23% 2000年 312回 ¥2,418,600円 87.48% 55.77% 1.62倍 -24.53% |
利益曲線は次のとおり。
グダグダじゃねーか!!
むしろオリジナルより悪くなってるわ……。
やっぱり値を変更するだけで良くはならないんじゃない?。
プレミアム・チャージ(レベル3)
次はレベル3。
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 |
全トレード数 6780 勝ちトレード数(勝率) 3463(51.08%) 負けトレード数(負率) 3317(48.92%) 全トレード平均利率 0.56% 勝ちトレード平均利率 5.22% 負けトレード平均損率 -4.30% 勝ちトレード最大利率 58.19% 負けトレード最大損率 -69.03% 全トレード平均期間 4.27 勝ちトレード平均期間 4.39 負けトレード平均期間 4.15 ---------------------------------------- 必要資金 ¥2,689,900 最大ポジション(簿価) ¥2,999,900 最大ポジション(時価) ¥3,537,900 純利益 ¥16,896,340 勝ちトレード総利益 ¥78,447,460 負けトレード総損失 -¥61,551,120 全トレード平均利益 ¥2,492 勝ちトレード平均利益 ¥22,653 負けトレード平均損失 -¥18,556 勝ちトレード最大利益 ¥260,000 負けトレード最大損失 -¥351,000 プロフィットファクター 1.27 最大ドローダウン(簿価) -¥1,237,400 最大ドローダウン(時価) -¥1,380,500 ---------------------------------------- 現在進行中のトレード数 5 ---------------------------------------- 平均年利 28.55% 平均年利(直近5年) 6.04% 最大連勝 12回 最大連敗 11回 ---------------------------------------- [年度別レポート] 年度 取引回数 運用損益 年利 勝率 PF 最大DD 2021年 96回 ¥206,000円 7.66% 51.04% 1.31倍 -11.00% 2020年 340回 ¥350,700円 13.04% 52.65% 1.10倍 -30.85% 2019年 354回 ¥1,037,000円 38.55% 54.52% 1.52倍 -21.89% 2018年 395回 -¥896,150円 -33.32% 47.85% 0.76倍 -22.34% 2017年 271回 ¥114,290円 4.25% 53.87% 1.06倍 -69.03% 2016年 340回 ¥1,012,100円 37.63% 50.59% 1.37倍 -16.50% 2015年 342回 ¥1,133,800円 42.15% 53.80% 1.51倍 -21.60% 2014年 306回 ¥769,800円 28.62% 56.86% 1.27倍 -25.97% 2013年 260回 ¥1,405,400円 52.25% 57.69% 1.72倍 -24.33% 2012年 295回 ¥44,200円 1.64% 51.19% 1.01倍 -30.53% 2011年 330回 ¥76,200円 2.83% 50.30% 1.02倍 -45.72% 2010年 268回 ¥17,600円 0.65% 50.75% 1.01倍 -13.88% 2009年 293回 ¥1,462,100円 54.36% 58.36% 1.49倍 -34.95% 2008年 415回 ¥875,900円 32.56% 50.84% 1.17倍 -24.58% 2007年 375回 ¥507,100円 18.85% 49.33% 1.16倍 -14.23% 2006年 292回 ¥476,400円 17.71% 50.34% 1.14倍 -23.15% 2005年 189回 ¥1,067,500円 39.69% 59.26% 1.97倍 -13.22% 2004年 260回 ¥1,111,500円 41.32% 59.62% 1.68倍 -26.88% 2003年 278回 ¥1,926,500円 71.62% 63.31% 2.01倍 -27.47% 2002年 344回 ¥1,261,700円 46.91% 55.23% 1.41倍 -23.08% 2001年 362回 ¥890,600円 33.11% 48.90% 1.24倍 -20.36% 2000年 375回 ¥2,046,100円 76.07% 55.47% 1.43倍 -27.05% |
利益曲線は次のとおり。
あれ?
利益曲線が良くなった!
平均利益やプロフィットファクターは下がるけど、トレード数が多いね。
これ、改造の余地がある気がする。
プレミアム・チャージ(レベル4)
どんどんやってみる。
次はレベル4。
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 |
全トレード数 8111 勝ちトレード数(勝率) 4164(51.34%) 負けトレード数(負率) 3947(48.66%) 全トレード平均利率 0.56% 勝ちトレード平均利率 4.98% 負けトレード平均損率 -4.11% 勝ちトレード最大利率 67.58% 負けトレード最大損率 -69.03% 全トレード平均期間 4.27 勝ちトレード平均期間 4.37 負けトレード平均期間 4.16 ---------------------------------------- 必要資金 ¥2,808,600 最大ポジション(簿価) ¥3,097,000 最大ポジション(時価) ¥3,863,000 純利益 ¥19,762,290 勝ちトレード総利益 ¥89,451,720 負けトレード総損失 -¥69,689,430 全トレード平均利益 ¥2,436 勝ちトレード平均利益 ¥21,482 負けトレード平均損失 -¥17,656 勝ちトレード最大利益 ¥319,800 負けトレード最大損失 -¥351,000 プロフィットファクター 1.28 最大ドローダウン(簿価) -¥1,342,500 最大ドローダウン(時価) -¥1,321,300 ---------------------------------------- 現在進行中のトレード数 5 ---------------------------------------- 平均年利 31.98% 平均年利(直近5年) 5.12% 最大連勝 11回 最大連敗 11回 ---------------------------------------- [年度別レポート] 年度 取引回数 運用損益 年利 勝率 PF 最大DD 2021年 107回 ¥388,900円 13.85% 52.34% 1.59倍 -11.00% 2020年 350回 -¥121,900円 -4.34% 49.14% 0.96倍 -30.85% 2019年 356回 ¥655,400円 23.34% 51.97% 1.30倍 -13.82% 2018年 377回 -¥431,200円 -15.35% 46.68% 0.86倍 -18.78% 2017年 387回 ¥228,390円 8.13% 54.26% 1.09倍 -69.03% 2016年 395回 ¥1,097,700円 39.08% 52.91% 1.37倍 -15.39% 2015年 406回 ¥1,134,700円 40.40% 56.40% 1.48倍 -13.87% 2014年 384回 ¥830,900円 29.58% 52.08% 1.26倍 -46.26% 2013年 360回 ¥1,439,100円 51.24% 58.33% 1.54倍 -24.33% 2012年 377回 ¥664,000円 23.64% 50.93% 1.21倍 -17.31% 2011年 389回 ¥746,100円 26.56% 52.96% 1.18倍 -45.72% 2010年 343回 -¥470,300円 -16.75% 51.02% 0.84倍 -28.70% 2009年 373回 ¥1,440,500円 51.29% 55.23% 1.42倍 -20.99% 2008年 426回 ¥944,900円 33.64% 50.70% 1.16倍 -33.82% 2007年 426回 ¥797,100円 28.38% 51.17% 1.22倍 -14.73% 2006年 372回 ¥792,000円 28.20% 51.61% 1.21倍 -21.23% 2005年 334回 ¥1,216,500円 43.31% 55.99% 1.63倍 -20.50% 2004年 343回 ¥1,132,200円 40.31% 61.81% 1.51倍 -26.88% 2003年 371回 ¥2,610,400円 92.94% 61.46% 2.15倍 -13.24% 2002年 403回 ¥1,254,200円 44.66% 55.83% 1.35倍 -24.00% 2001年 413回 ¥618,600円 22.03% 50.61% 1.14倍 -20.36% 2000年 419回 ¥2,794,100円 99.48% 55.13% 1.56倍 -23.64% |
利益曲線は次のとおり。
これはレベル3より寝るが、トレード数が圧倒的に多いので、改善の幅が広がりそうだ。
まとめ
もっと色々と微調整すると利用できるストラテジーとして役に立つ可能性は感じた。
新3点チャージ投資法2021……馬鹿にしてごめん。
古典手法も磨けば価値が出るかもなぁ。
ソースコード
バックテストには無料OSSの「Protra」を利用した。
TIlib、Utility、TrendCheckライブラリはGitHubに置いている。
このソースコードはレベル1のものだけど、他のレベルも簡単に改造できる。
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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 |
# loop-type: date-only //============================== require "TIlib" require "Utility" require "TrendCheck" // 3 点チャージ投資法(プレミアム・チャージ) codes = CodeList if ($code_num && $code_num != Length(codes)) Print("前回と異なる銘柄リストでは実行できません。") Dummy end $code_num = Length(codes) //グローバル変数を初期化 if (!$__INIT__) $budgetIni = 3000000 $buyUnit = 500000 // 1回の購入資金 (50万円) $MaxHoldDay = 3 // 最大保有日数 $shortSelling = 0 // 空売り戦略 Yes(1)/No(0) $Interest = 1 // 無制限(0) / 単利(1) / 複利(2) $reverse = 0 // 購入順序 昇順(0) / 降順(1) $udcount = 0 // 騰落レシオ利用数 Init() // テクニカル指標初期化 -------------------------- $VR = [$code_num] $Diff = [$code_num] $RSI = [$code_num] // 騰落レシオ初期値代入($udcountの数) ---------- //------------------------------------------------ InitDone() // 騰落レシオ初期化 $__INIT__ = 1 end def Main(i) //================================================== // 条件(買条件, 売条件共通部分) //================================================== //まだ上場していない銘柄は株価データがないためnullが返る if (Index == null) return end if ! ($order[(int)Code]) $order[(int)Code] = i end if ! ($Diff[i] && $VR[i] && $RSI[i]) // 銘柄ごとのグローバル変数を初期化する $Diff[i] = DiffMA_new(26) $VR[i] = VR_new(25, 0) $RSI[i] = RSI_new(14, 0) $hold[i] = 0 return end // 指標の計算を1日進める DiffMA_next($Diff[i]) VR_next($VR[i]) RSI_next($RSI[i]) //================================================== // 保有してない→購入 //================================================== if (! $hold[i]) diff = DiffMA_value($Diff[i]) vr = VR_value($VR[i]) rsi = RSI_value($RSI[i]) if ! (diff && vr && rsi && Close) return end //================================================== // 売買(買い) //================================================== if ! (Close >= 100) return end if (diff <= -10 && vr <= 85 && rsi <= 25) $buyflag[i][0] = 1 $buyflag[i][1] = diff // 好きなパラメータをもとにソート $buyflag[i][2] = $buyflag[i][0] // 手法別に売りを変える場合 $buyCnt = $buyCnt + 1 end //================================================== // 保有している→売却 //================================================== elsif ($hold[i]) if ($set[i] < 1) $set[i] = 1 return end $set[i] = $set[i] + 1 if ! (Close) return end //================================================== // 売買(売り) //================================================== if (Close >= 1.10 * $buy[i] || Close <= 0.95 * $buy[i] || $set[i] >= $MaxHoldDay) PrintLog("利益確定") $sellflag[i] = 1 $set[i] = 0 end end end //==================== // 買い処理 //==================== def SortBuy(i) if (PricedataExistCheck(Close)) return end $long = 0 $long = Num($buyUnit, Close) codeset = $order[(int)Code] Buying(codeset) end //==================== // 売り処理 //==================== def Sell_(i) if ($sellflag[i]) Selling(i) $sellflag[i] = 0 end // 使用した$buyflag 配列を初期化 if ($buyflag[i][0]) $buyflag[i][0] = 0 $buyflag[i][1] = 0 $buyflag[i][2] = 0 end end //==================== // 銘柄コードを変えながらMain関数,BuySell関数を実行 //==================== Print("-------------------------------------------------") Print("日付 = "+ Year + "/" + Month + "/" + Day) SortInit() // ソート初期化 i = -1 while (i + 1 < $code_num) i = i + 1 {codes[i]}Main(i) end i = -1 while i + 1 < $code_num i = i + 1 {codes[i]}Sort(i) end i = -1 if ($buyCnt) while i + 1 < $buyCnt i = i + 1 {$sortList2[i]}SortBuy(i) end end i = -1 while i + 1 < $code_num i = i + 1 {codes[i]}Sell_(i) end |