日記の年間更新回数が100回となりました。
おめでとー!
過去20年間日記を書いているけど、100回更新は自身初だ。
週に約2回日記を書いていることになるね。
世の中には毎日日記書いている人はいるけれど・・・
記事を書くスピード遅いから無理だなー。
一つの記事を平均60回程度更新して、ようやく公開だからね。
日記というか調査報告だから調査時間も必要だしね。
図書館で調べるのは当たり前
古文書調べたり
企業に問い合わせしたり
専門家に助言を貰ったり
実験して分析したり
と。
自己満足な日記だけど、今までの定説・常識を覆したネタも時々あるよ。
おめでたいので、有料システムトレードのストラテジーを紹介。
既に公開されているけど、あまりに結果が良かったので秘密にしてた。
3万円の逆張りストラテジーの有効性検証
ググっていたら、次のようなサイトを見つけました。
当時の私は逆張り買をしたかったのですが、具体的な手法を知らず、
ネットで探した結果、3万円を出して購入しました。その後も、珍しそうだと思えば、3万円、2万円と投資ノウハウを
買い勉強していきました。当時の私にとっては初めて知る手法で、
大変満足してお金を払ったことを覚えています。それをここでは、無料で公開したいと思います。
理由は分かりませんが有料ストラテジーを公開されている方がいました。
ねぇ馬鹿なの?
と、発売元には言われそうですが、我々にとっては嬉しい限りです。
早速中身を見てみましょう。
【銘柄選定】
- 1) 東証1部
- 2) 5日平均売買代金5千万円以上
- 3) 時価総額200億円以上
- 4) 信用倍率2倍以下
【買いルール】
- 1) 25日移動平均乖離率が75%より小さい
- 2) 5日移動平均乖離率が90%より小さい
- 3) 株価下落率が7%以上
- 4) このサインが10銘柄以上で発生
【手仕舞いルール】
- 1) 利食い:10%のプラス
- 2) ロスカット:10日経過
さらに、この方は次のような独自の修正を加えているようです。
- ①東証1部
- ②5日平均売買代金5千万円以上
- ③時価総額200億円以上
- ④信用倍率2倍以下で絞込み
- ⑤5日移動平均乖離率の小さい順に銘柄を決める
この手法の特徴は次の利点があるそうです。
- 勝率が高い
- サインが発生する時は、非常に多くの銘柄に発生する
- サインが発生する時期は、年に数回しかない
さて、早速バックテストをやってみよう!
バックテスト結果
東証一部企業に対して確認しました。
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 |
株価データ: 日足 銘柄リスト: 東証1部 1998/01/05~2020/12/10における成績です。 ---------------------------------------- 全トレード数 3542 勝ちトレード数(勝率) 2947(83.20%) 負けトレード数(負率) 595(16.80%) 全トレード平均利率 11.64% 勝ちトレード平均利率 16.22% 負けトレード平均損率 -11.04% 勝ちトレード最大利率 100.00% 負けトレード最大損率 -67.16% 全トレード平均期間 8.40 勝ちトレード平均期間 6.89 負けトレード平均期間 15.84 ---------------------------------------- 必要資金 ¥682,286,200 最大ポジション(簿価) ¥775,129,300 最大ポジション(時価) ¥863,624,800 純利益 ¥391,062,100 勝ちトレード総利益 ¥454,661,900 負けトレード総損失 -¥63,599,780 全トレード平均利益 ¥110,407 勝ちトレード平均利益 ¥154,280 負けトレード平均損失 -¥106,890 勝ちトレード最大利益 ¥1,000,000 負けトレード最大損失 -¥645,600 プロフィットファクター 7.15 最大ドローダウン(簿価) -¥24,772,290 最大ドローダウン(時価) -¥54,690,540 ---------------------------------------- 現在進行中のトレード数 1 ---------------------------------------- 平均年利 3.37% 平均年利(直近5年) 1.57% 最大連勝 42回 最大連敗 4回 ---------------------------------------- [年度別レポート] 年度 取引回数 運用損益 年利 勝率 PF 最大DD 2020年 502回 ¥39,029,000円 5.72% 79.28% 4.75倍 -41.06% 2019年 53回 ¥4,769,600円 0.70% 94.34% 21.88倍 -18.99% 2018年 19回 ¥2,588,600円 0.38% 100.00% ∞倍 0.00% 2016年 82回 ¥5,493,800円 0.81% 73.17% 7.18倍 -10.58% 2015年 19回 ¥1,572,800円 0.23% 78.95% 5.34倍 -14.60% 2014年 21回 ¥929,200円 0.14% 61.90% 4.04倍 -5.98% 2013年 63回 ¥5,314,500円 0.78% 76.19% 5.35倍 -22.03% 2011年 644回 ¥123,675,400円 18.13% 99.07% 525.72倍 -7.17% 2009年 75回 ¥3,970,884円 0.58% 68.00% 2.35倍 -45.00% 2008年 1488回 ¥132,341,100円 19.40% 78.83% 4.21倍 -67.16% 2007年 47回 ¥582,700円 0.09% 55.32% 1.36倍 -21.91% 2006年 92回 ¥13,605,000円 1.99% 97.83% 102.53倍 -8.10% 2004年 55回 ¥8,155,100円 1.20% 100.00% ∞倍 0.00% 2003年 37回 ¥5,847,200円 0.86% 97.30% 1,170.44倍 -0.56% 2002年 106回 ¥16,853,400円 2.47% 94.34% 24.39倍 -41.34% 2001年 176回 ¥18,384,900円 2.69% 86.36% 9.08倍 -26.15% 2000年 63回 ¥7,949,100円 1.17% 84.13% 9.18倍 -15.34% |
売買回数は3542回で、勝率83%以上、PF7.15で、平均保有期間は8.40日という驚異なストラテジーが誕生しました。
利益曲線は次の通りです。
うん、儲かってるねー。
単利計算の場合
全銘柄を対象にしています。
計算時間は2時間。
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 |
株価データ: 日足 銘柄リスト: 全銘柄 1998/01/05~2020/12/10における成績です。 ---------------------------------------- 全トレード数 806 勝ちトレード数(勝率) 557(69.11%) 負けトレード数(負率) 249(30.89%) 全トレード平均利率 7.95% 勝ちトレード平均利率 17.74% 負けトレード平均損率 -13.95% 勝ちトレード最大利率 100.00% 負けトレード最大損率 -59.77% 全トレード平均期間 10.06 勝ちトレード平均期間 7.48 負けトレード平均期間 15.82 ---------------------------------------- 必要資金 ¥9,245,200 最大ポジション(簿価) ¥9,999,790 最大ポジション(時価) ¥12,791,000 純利益 ¥58,188,290 勝ちトレード総利益 ¥92,394,700 負けトレード総損失 -¥34,206,410 全トレード平均利益 ¥72,194 勝ちトレード平均利益 ¥165,879 負けトレード平均損失 -¥137,375 勝ちトレード最大利益 ¥795,900 負けトレード最大損失 -¥664,000 プロフィットファクター 2.70 最大ドローダウン(簿価) -¥4,888,332 最大ドローダウン(時価) -¥6,570,432 ---------------------------------------- 現在進行中のトレード数 0 ---------------------------------------- 平均年利 33.13% 平均年利(直近5年) 3.67% 最大連勝 24回 最大連敗 4回 ---------------------------------------- [年度別レポート] 年度 取引回数 運用損益 年利 勝率 PF 最大DD 2020年 30回 -¥1,430,842円 -15.48% 50.00% 0.66倍 -57.63% 2019年 19回 ¥330,200円 3.57% 36.84% 1.55倍 -10.42% 2018年 21回 ¥203,600円 2.20% 57.14% 1.25倍 -16.26% 2016年 32回 ¥1,174,700円 12.71% 56.25% 2.00倍 -19.31% 2015年 11回 ¥1,420,600円 15.37% 100.00% ∞倍 0.00% 2014年 21回 ¥2,784,000円 30.11% 95.24% 36.69倍 -8.99% 2013年 32回 ¥3,357,600円 36.32% 78.13% 4.16倍 -26.79% 2012年 19回 ¥393,400円 4.26% 52.63% 1.42倍 -25.05% 2011年 38回 ¥5,316,300円 57.50% 81.58% 14.18倍 -10.05% 2010年 9回 ¥72,800円 0.79% 55.56% 1.26倍 -10.75% 2009年 75回 ¥6,266,100円 67.78% 74.67% 2.83倍 -39.22% 2008年 115回 -¥2,214,870円 -23.96% 57.39% 0.82倍 -59.77% 2007年 60回 ¥1,848,600円 20.00% 55.00% 1.72倍 -22.56% 2006年 92回 ¥10,417,900円 112.68% 81.52% 7.06倍 -29.05% 2004年 40回 ¥4,521,700円 48.91% 82.50% 15.55倍 -7.02% 2003年 33回 ¥5,858,700円 63.37% 93.94% 49.82倍 -8.33% 2002年 26回 ¥3,377,300円 36.53% 92.31% 17.92倍 -20.00% 2001年 64回 ¥5,567,600円 60.22% 70.31% 3.25倍 -46.81% 2000年 69回 ¥8,922,900円 96.51% 88.41% 8.46倍 -42.68% |
利益曲線は次のとおりです。
勝率約70%、プロフィットファクター2.7という素晴らしい結果となりました。
グラフが寝ているところが気になりますが、改善次第で良くなりそうです。
でも取引回数が少ないなー。
まとめ
シンプルな手法なのに結果が良い。
こりゃ、改良し甲斐があるストラテジーです。
1) 25日移動平均乖離率が75%より小さい
2) 5日移動平均乖離率が90%より小さい
こんなストラテジーよく思いつくなー。
やっぱり凄いな、有料ストラテジー。。
そういえば、移動平均乖離率って斎藤正章氏も使ってたなー。
斎藤氏のストラテジーはこれだね。
1) 25日間移動平均との乖離率が-25%を下回った。
2) 5日間移動平均との乖離率が-10%を下回った。
・・・
・・・
ん?
んん??
これ、、
斎藤正章氏の逆張り手法を言い換えただけじゃね??
「-25%→75%」「-10%→90%」
ちっくしょーーー!
このストラテジー紹介者のトップページより。
システムトレードを始めると色々と必要なものが出てきて
ついついそれらを買ってしまいます。私の場合、気づいてみると何十万円も使ってしまいました
本当に大丈夫かな・・・この人?
騙されやすい性格な気がするなーーーーーーー(汗
【参考】ソースコード
いつも通り独自ライブラリの取り込みが必要。
実装は次のようになります。
単利計算は「$Interest = 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 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 |
# loop-type: date-only //============================== require "TIlib" require "Utility" require "TrendCheck" //============================== // 3万円の逆張りストラテジー // http://kabutrade1.web.fc2.com/index/GSt.html //============================== // // 下記のルールに従い5日移動平均乖離率の小さい順に銘柄を決める // // 【銘柄選定】 // 1) 東証1部 // 2) 5日平均売買代金5千万円以上 // 3) 時価総額200億円以上 // 4) 信用倍率2倍以下 // // 【買いルール】 // 1) 25日移動平均乖離率が75%より小さい // 2) 5日移動平均乖離率が90%より小さい // 3) 株価下落率が7%以上 // 4) このサインが10銘柄以上で発生 // //【手仕舞いルール】 // 1) 利益目標をいくらにする // 2) どのようにロスカットする codes = CodeList if $code_num && $code_num != Length(codes) Print("前回と異なる銘柄リストでは実行できません。") Dummy end $code_num = Length(codes) //グローバル変数を初期化 if !$__INIT__ $budgetIni = 10000000 $buyUnit = 1000000 // 1回の購入資金 (100万円) $MaxHoldDay = 10 // 最大保有日数 $shortSelling = 0 // 空売り戦略 Yes(1)/No(0) $Interest = 0 // 無制限(0) / 単利(1) / 複利(2) $reverse = 0 // 購入順序 昇順(0) / 降順(1) $udcount = 0 // 騰落レシオ利用数 Init() //------------------------------------------------ $DiffMA25 = [$code_num] $DiffMA5 = [$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 ! ($DiffMA25[i] && $DiffMA5[i]) //銘柄ごとのグローバル変数を初期化する $DiffMA25[i] = DiffMA_new(25) $DiffMA5[i] = DiffMA_new(5) $hold[i] = 0 return end //指標の計算を1日進める DiffMA_next($DiffMA25[i]) DiffMA_next($DiffMA5[i]) // ここまで ======================================== //================================================== // 保有してない→購入 //================================================== if (! $hold[i]) diffma25 = DiffMA_value($DiffMA25[i]) diffma5 = DiffMA_value($DiffMA5[i]) if ! (diffma25 && diffma5 && {-1}Close && Close) return end // 1) 25日移動平均乖離率が75%より小さい // 2) 5日移動平均乖離率が90%より小さい // 3) 株価下落率が7%以上 // 4) このサインが10銘柄以上で発生 if (diffma25 < -25 && diffma5 < -10 && {-1}Close*0.93 >= Close) $buyflag[i][0] = 1 // 購入フラグ $buyflag[i][1] = diffma5 // 好きなパラメータをもとにソート $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 >= 1.10 * $buy[i]) // 1) 利食い:10%のプラス PrintLog("利食い") $sellflag[i] = 1 $set[i] = 0 elsif ($set[i] > $MaxHoldDay) PrintLog("損切り") $sellflag[i] = 2 $set[i] = 0 end end end //==================== // 売り処理 //==================== def Sell_(i) if ($sellflag[i]) Selling(i) $sellflag[i] = 0 $buyflag[i][2] = 0 end // 使用した$buyflag 配列を初期化 if ($buyflag[i][0]) $buyflag[i][0] = 0 $buyflag[i][1] = 0 end end //==================== // 買い処理 //==================== def SortBuy(i) if (PricedataExistCheck(Close)) return end $long = 0 $long = Num($buyUnit, Close) codeset = $order[(int)Code] if (HasPricedata({1}Open)) Buying(codeset) 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 if ($buyCnt) // サインが10銘柄以上で発生 BuyLoop(1, 10, codes) end //==================== // 売り //==================== i = -1 while i + 1 < $code_num i = i + 1 {codes[i]}Sell_(i) end |