クワガタムシが死にました・・・。
台風の日に木を探して交換(それまでは既製品)し、虫かごもキレイにした後に餌を食べなくなり急に弱っていきました。
土(既製品)が湿ってなかった?針葉樹を与えて匂いでやられた?
カゴから脱走したりと可愛いヤツだったので、可哀相なことをしました。
そして、その日から左目が充血して痛さが取れない。
本上武士氏の上昇トレンド型の株システムトレードの有効性検証
2007年後半からシステムトレードに取り組みストラテジーを紹介している方(本上武士氏)を見つけました。
その中で、2008年~2009年頃の日記に「逆バリ型ストラテジー検証結果」というものがあります。
移動平均乖離率だけをメインに使った古い手法ではありますが紹介します。
移動平均乖離率は斉藤正章氏の逆張り手法にも出てきます。
また、トレシズ氏も次のように語っています。
移動平均乖離率(終値)(5日)という指標は、かなり重要な指標だと思っております。
・順張り買いでは5日線上の銘柄を狙い、5日線下になったら売買対象外
・逆張り買いでは基本、5日線下の銘柄限定
5日移動平均乖離率の有効性検証
【資金管理】
- 資産500万円:レバレッジ2倍
- ポジションサイズ:定額50万円
- 突入タイミング:サイン点灯数10個以上
- 売買優先順位:10日平均売買代金降順
【買いルール】
- 5日移動平均乖離率 -15%以下
- 終値100円以上
- 10日平均売買代金1億円以上
【手仕舞いルール】
- 施行タイプ:翌日寄り成
- 利食い:含み益5%
- 期限切れ:7日経過
バックテスト結果
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 |
全トレード数 518 勝ちトレード数(勝率) 384(74.13%) 負けトレード数(負率) 134(25.87%) プロフィットファクター 4.15 最大ドローダウン(簿価) -¥1,477,500 最大ドローダウン(時価) -¥2,091,400 ---------------------------------------- 平均年利 26.55% 平均年利(直近5年) 7.19% 最大連勝 15回 最大連敗 3回 ---------------------------------------- [年度別レポート] 年度 取引回数 運用損益 年利 勝率 PF 最大DD 2019年 24回 ¥1,246,100円 14.48% 62.50% 4.30倍 -13.25% 2018年 61回 -¥233,736円 -2.72% 49.18% 0.90倍 -17.66% 2016年 22回 ¥608,500円 7.07% 59.09% 2.22倍 -23.74% 2015年 11回 ¥1,304,082円 15.15% 100.00% ∞倍 0.00% 2014年 22回 ¥170,700円 1.98% 63.64% 1.22倍 -16.32% 2013年 82回 ¥5,525,900円 64.20% 69.51% 3.58倍 -30.81% 2011年 14回 ¥1,519,100円 17.65% 92.86% 16.73倍 -13.19% 2009年 9回 ¥1,067,200円 12.40% 88.89% 75.11倍 -1.33% 2008年 65回 ¥4,886,400円 56.77% 81.54% 4.15倍 -40.34% 2007年 31回 ¥760,700円 8.84% 67.74% 1.98倍 -22.41% 2006年 65回 ¥2,917,300円 33.89% 75.38% 2.64倍 -26.24% 2004年 22回 ¥2,904,700円 33.75% 95.45% 13.10倍 -29.63% 2003年 21回 ¥2,785,700円 32.37% 95.24% 122.12倍 -2.40% 2001年 11回 ¥2,153,500円 25.02% 100.00% ∞倍 0.00% 2000年 58回 ¥6,665,900円 77.45% 91.38% 21.71倍 -11.11% |
利益曲線は次のとおりです。
マイナスの年は2018年だけです。
25日+5日移動平均乖離率検証の有効性検証
【買いルール】
- 25日移動平均乖離率 -25%以下
- 終値100円以上
- 10日平均売買代金1億円以上
- 上場全銘柄
- 5日移動平均乖離率 -15%上抜け
【手仕舞いルール】
- 施行タイプ:翌日寄り成
- 利食い:含み益5%
- 期限切れ:7日経過
バックテスト結果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
全トレード数 97 勝ちトレード数(勝率) 81(83.51%) 負けトレード数(負率) 16(16.49%) プロフィットファクター 9.53 最大ドローダウン(簿価) -¥200,000 最大ドローダウン(時価) -¥1,155,100 ---------------------------------------- 平均年利 11.37% 平均年利(直近5年) 12.14% 最大連勝 11回 最大連敗 2回 ---------------------------------------- [年度別レポート] 年度 取引回数 運用損益 年利 勝率 PF 最大DD 2016年 10回 ¥354,400円 3.68% 70.00% 4.36倍 -7.32% 2015年 10回 ¥742,000円 7.70% 90.00% 11.57倍 -6.65% 2011年 13回 ¥733,600円 7.61% 92.31% 11.87倍 -6.52% 2009年 9回 ¥839,000円 8.71% 100.00% ∞倍 0.00% 2008年 35回 ¥3,178,100円 32.99% 85.71% 16.87倍 -7.19% 2000年 20回 ¥723,800円 7.51% 75.00% 3.21倍 -28.04% |
利益曲線は次のとおりです。
マイナスの年はありません。
勝率も83.51%と高く、平均年利は20%未満と低いですが、プロフィットファクターは高いです。
25日移動平均乖離率×200日移動平均乖離率の有効性検証
【買いルール】
- 200日移動平均乖離率が-30%以上
- 25日移動平均乖離率 -25%以下
- 10日平均売買代金1億円以上
- 終値100円以上
【手仕舞いルール】
- 施行タイプ:翌日寄り成
- 利食い:含み益5%
- 期限切れ:7日経過
バックテスト結果
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 |
全トレード数 320 勝ちトレード数(勝率) 254(79.38%) 負けトレード数(負率) 66(20.63%) プロフィットファクター 8.16 最大ドローダウン(簿価) -¥405,900 最大ドローダウン(時価) -¥2,215,400 ---------------------------------------- 平均年利 19.13% 平均年利(直近5年) 13.46% 最大連勝 17回 最大連敗 4回 ---------------------------------------- [年度別レポート] 年度 取引回数 運用損益 年利 勝率 PF 最大DD 2019年 5回 ¥33,900円 0.42% 60.00% 1.35倍 -10.42% 2018年 27回 ¥1,822,900円 22.51% 85.19% 19.73倍 -3.47% 2016年 30回 ¥1,360,500円 16.80% 63.33% 3.98倍 -14.29% 2015年 20回 ¥1,250,900円 15.45% 70.00% 6.88倍 -10.59% 2014年 22回 ¥982,000円 12.13% 63.64% 3.79倍 -12.86% 2013年 50回 ¥4,947,900円 61.10% 92.00% 27.73倍 -14.31% 2011年 18回 ¥695,200円 8.59% 77.78% 2.66倍 -17.37% 2010年 16回 ¥1,234,700円 15.25% 81.25% 25.99倍 -4.00% 2009年 10回 ¥206,500円 2.55% 70.00% 1.57倍 -24.29% 2008年 37回 ¥1,512,900円 18.68% 59.46% 2.69倍 -21.58% 2007年 10回 ¥497,900円 6.15% 80.00% 14.83倍 -2.31% 2006年 32回 ¥3,031,400円 37.43% 93.75% 49.89倍 -5.88% 2004年 11回 ¥1,446,000円 17.86% 100.00% ∞倍 0.00% 2003年 11回 ¥995,000円 12.29% 90.91% 44.26倍 -2.40% 2000年 21回 ¥3,216,100円 39.72% 100.00% ∞倍 0.00% |
利益曲線は次のとおりです。
マイナスの年はありません。
勝率も79.38%と高く、平均年利は20%未満と低いですが、プロフィットファクターは高いです。
統合システム
これらの手法は全体的に右肩上がりですが、全トレード数が少なすぎます。
これらを全て統合したら、全トレード数も増えて綺麗な単調増加になる可能性があるのでは?と思ったので試しました。
ここまで良い手法なら、自分だけ使って公開しないのが普通な気もしますが・・・。
ソースコード
TIlib、Utility、TrendCheckライブラリはGitHubに置いています(日記の公開日に合わせたバージョンを利用下さい)
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 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 |
# loop-type: date-only //============================== require "TIlib" require "Utility" require "TrendCheck" // ====================================== // 本上武士氏の // 5日移動平均乖離率の株システムトレード検証 // + 25日+5日移動平均乖離率検証 // + 25日移動平均乖離率×200日移動平均乖離率 // ====================================== codes = CodeList if ($code_num && $code_num != Length(codes)) Print("前回と異なる銘柄リストでは実行できません。") Dummy end $code_num = Length(codes) //グローバル変数を初期化 if (!$__INIT__) $budgetIni = 10000000 // 投資総額 (1000万円) $buyUnit = 1000000 // 1回の購入資金 (50万円) $MaxHoldDay = 5 // 最大保有日数 $Interest = 1 // 無制限(0) / 単利(1) / 複利(2) $reverse = 1 // 購入順序 昇順(0) / 降順(1) $udcount = 0 // 騰落レシオ利用数 / 不要(0) Init() // 指標初期化 // テクニカル指標初期化 -------------------------- $BB5 = [$code_num] $BB25 = [$code_num] $BB200 = [$code_num] //------------------------------------------------ InitDone() $__INIT__ = 1 end //================================================== // メイン関数 //================================================== def Main(i) //================================================== // 条件(買条件, 売条件共通部分) //================================================== //まだ上場していない銘柄は株価データがないためnullが返る if (Index == null) return end if ! ($order[(int)Code]) $order[(int)Code] = i end if ! ($BB5[i] && $BB25[i] && $BB200[i]) //Tilibのオブジェクト生成 $BB5[i] = BB_new(5) $BB25[i] = BB_new(25) $BB200[i] = BB_new(200) $hold[i] = 0 return end //指標の計算を1日進める BB_next($BB5[i]) BB_next($BB25[i]) BB_next($BB200[i]) //================================================== // 保有してない→購入 //================================================== if (! $hold[i]) ma5 = BB_value($BB5[i]) ma25 = BB_value($BB25[i]) ma200 = BB_value($BB200[i]) if ! (ma5 && ma25 && ma200) return end r5_1 = 100 * (Close - $BB5[i][0]) / $BB5[i][0] r5 = 100 * (Close - ma5) / ma5 r25 = 100 * (Close - ma25) / ma25 r200 = 100 * (Close - ma200) / ma200 if ! (r5 && r25 && r5_1 && r200) return end //================================================== // 売買(買い) //================================================== // 4) 売買優先順位:10日平均売買代金降順 tv = TradingValume(10) // 5) 5日移動平均乖離率 -15%以下 if (-15 >= r5 && Close >= 100 && tv >= 100000) PrintLog("5日移動平均乖離率") $buyflag[i][0] = 1 $buyflag[i][1] = tv $buyCnt = $buyCnt + 1 elsif (-25 >= r25 && r5 > -15 && -15 > r5_1 && Close >= 100 && tv >= 100000) PrintLog("25日+5日移動平均乖離率") $buyflag[i][0] = 1 $buyflag[i][1] = tv $buyCnt = $buyCnt + 1 elsif (-25 >= r25 && r200 >= -30 && Close >= 100 && tv >= 100000) PrintLog("25日+200日移動平均乖離率") $buyflag[i][0] = 1 $buyflag[i][1] = tv $buyCnt = $buyCnt + 1 end //================================================== // 保有している→売却 //================================================== elsif ($hold[i]) if ($set[i] < 1) $set[i] = 1 return end $set[i] = $set[i] + 1 //================================================== // 売買(売り) //================================================== // 2) 株価(終値)が買値よりも5%以上上昇 if (Close >= 1.05 * $buy[i]) PrintLog("売り") $sellflag[i] = 1 $set[i] = 0 // 2) 保有日数が$MaxHoldDayより大きい(同じ) elsif ($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 end //==================== // 銘柄コードを変えながらMain関数,BuySell関数を実行 //==================== Print("-------------------------------------------------") Print("日付 = "+ Year + "/" + Month + "/" + Day) //UpDownRatio() // 騰落レシオ計算 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 // 突入タイミング:サイン点灯数10個以上 if ($buyCnt >= 10) 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 |
バックテスト結果
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 |
株価データ: 日足 銘柄リスト: 全銘柄 1998/01/05~2019/09/04における成績です。 ---------------------------------------- 全トレード数 822 勝ちトレード数(勝率) 555(67.52%) 負けトレード数(負率) 267(32.48%) 全トレード平均利率 4.51% 勝ちトレード平均利率 10.81% 負けトレード平均損率 -8.58% 勝ちトレード最大利率 82.05% 負けトレード最大損率 -45.63% 全トレード平均期間 5.28 勝ちトレード平均期間 4.44 負けトレード平均期間 7.03 ---------------------------------------- 必要資金 ¥9,874,800 最大ポジション(簿価) ¥9,990,094 最大ポジション(時価) ¥12,126,800 純利益 ¥33,814,940 勝ちトレード総利益 ¥54,808,540 負けトレード総損失 -¥20,993,600 全トレード平均利益 ¥41,137 勝ちトレード平均利益 ¥98,754 負けトレード平均損失 -¥78,628 勝ちトレード最大利益 ¥768,000 負けトレード最大損失 -¥456,000 プロフィットファクター 2.61 最大ドローダウン(簿価) -¥3,281,000 最大ドローダウン(時価) -¥4,984,300 ---------------------------------------- 現在進行中のトレード数 0 ---------------------------------------- 平均年利 19.02% 平均年利(直近5年) 7.94% 最大連勝 19回 最大連敗 6回 ---------------------------------------- [年度別レポート] 年度 取引回数 運用損益 年利 勝率 PF 最大DD 2019年 22回 ¥891,400円 9.03% 68.18% 3.79倍 -13.25% 2018年 85回 -¥537,142円 -5.44% 38.82% 0.85倍 -26.79% 2017年 10回 -¥472,300円 -4.78% 30.00% 0.22倍 -22.65% 2016年 51回 ¥2,637,200円 26.71% 64.71% 3.07倍 -23.74% 2015年 21回 ¥1,403,482円 14.21% 80.95% 11.09倍 -5.81% 2014年 60回 ¥1,834,400円 18.58% 63.33% 2.43倍 -16.32% 2013年 90回 ¥5,573,000円 56.44% 74.44% 3.74倍 -30.81% 2012年 10回 ¥153,000円 1.55% 60.00% 1.58倍 -10.18% 2011年 34回 ¥2,202,600円 22.31% 82.35% 3.66倍 -34.62% 2010年 20回 ¥2,048,300円 20.74% 90.00% 34.47倍 -6.03% 2009年 19回 ¥1,244,700円 12.60% 73.68% 7.16倍 -11.46% 2008年 103回 -¥1,392,700円 -14.10% 54.37% 0.75倍 -45.63% 2007年 54回 ¥1,517,200円 15.36% 68.52% 2.27倍 -22.56% 2006年 101回 ¥4,720,700円 47.81% 75.25% 3.54倍 -26.24% 2004年 31回 ¥1,724,400円 17.46% 77.42% 2.72倍 -29.63% 2003年 22回 ¥2,612,500円 26.46% 95.45% 114.59倍 -2.40% 2001年 30回 ¥2,894,000円 29.31% 83.33% 15.50倍 -10.34% 2000年 59回 ¥4,760,200円 48.21% 83.05% 10.18倍 -14.17% |
利益曲線は次のとおりです。
あれ・・・寝ました。
というより、2018年だけマイナスだった手法にも関わらず2017年と2008年も負け年になりました。
特に、肝心の2008年(リーマンショックの年)に負けたら意味ないです・・・。
全トレード数は増えました。年利が上がるので良いことです。
ですが、平均年利(直近5年)が下がりました・・・・。
プロフィットファクターは平凡な値になりました。
勝率も下がりました。
良いこと無し・・・・。
まとめ
単純に組み合わせればよい・・と思ってましたが違うようです。
とはいえ、333万円ずつ各手法に資金を分ける方法では、購入銘柄数が減り全体利益が落ちます。
資金分割も奥が深そうです。先は長い・・・・。