友人「久しぶり。何年ぶりだろうな。最近どうしてる?」
俺「ああ、仕事を辞めて今は株で食ってるよ。」
友人「え、マジで? いつから? ちゃんと食えてるの?」
俺「去年からだね。平均すると毎月100万くらいは稼いでいるかな。」
友人「でも毎月勝てるとは限らないだろ。大損したらどうするの。」
俺「そりゃ株だから損もすることはあるよ。でも、俺がやっているのはシステムトレードで、最終的にはプラスになるようにプログラムしてるので。」
俺「要するに、原発ショックとかリーマンショックのような危機が起きても、最終的に儲けが出る仕組みになってるからね。」
友人「マジか~。お前、すごいな。昔から副業で食っていきたいって言ってたもんな。」
俺「まあね。」
友人「じゃあ、普段は何しているの?」
俺「ブログを書いたり、買い物行ったり、トレード手法を向上させたり暇はしてないよ。まぁ、気分転換に旅行も結構行ってるけどね。」
友人「いいなぁ。俺にも教えてくれよ。」
俺「ははは、さすがにそれはちょっと… あ、今日の飲み代、俺が払うから。」
by 「専業トレーダーになって1000万損した男の末路」
夢のまた夢・・・
で、終わらせてなるものか。。
世の中には「システムトレーダー」といわれる、「テクニカル分析」と「自動売買」のみで利益を上げ続けているプロが確かに存在します。
このプロたちは何をしているのかというと、自分たちしか知らない優位性を持つ「テクニカル分析」を用いています。
インターネットで検索して分かるようなものではありません。
自分で考え、作り上げた指標です。
そして時代とマーケットの変化により常に分析を行い、指標に修正を施しています。
ここで多くの人が勘違いをしていますが、システムトレーダーはシステム化しているから勝てるのではありません。
勝てるからシステム化しているのです
大前提として、勝てる実力があるという事です。
聖杯を手に入れたから突然勝てるようになったというわけではないのです。
・・・兼業6年目のデイトレーダー「テクニカル分析によくある勘違い」より
分かっているけれど、一度も独自のシステムを作ったことがありません。
そして、作ろうと思いながら放置していたネットや書籍で見かけたシステムが数十件残っており、徐々にバックテストを実施中です。
こんな事をしている間に、保有サイトの他のコンテンツのアクセス数は大幅に減り、収入も落ちました。
アベノミクス、大震災にもマイナス利益となった私が株式売買に夢を見るのは無理なのか。。。
5年目の兼業投資家の有効性検証
池袋在住の兼業トレーダーのタカハシという方の手法のようです。
その中で、今回確認するのは「2018年の手法」として紹介されているものです。
為替、株価指数、海外商品を対象にした手法のようなので、株で優位性があるかは不明です。
【買いルール】
- 5日指数平滑移動平均線(EMA5)が、他のすべてのEMA(EMA20、EMA40、EMA120、EMA240)より上に位置した時
【増し玉(ピラミッティング)ルール】
- ある銘柄をエントリーした後に、再度エントリーのシグナルが点灯したとき
【手仕舞いルール】
- 利食い:EMA5とEMA40がクロスした
- ロスカット:2ATR(終値より2%の損失)
【トレーリングストップルール】
- なし
ソースコード
Utility.ptは、「過去の日記」を参照してください。
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 |
# loop-type: date-only //============================== require "TIlib" require "Utility" //============================== // 【買いルール】 // EMA5が、EMA20、EMA40、EMA120、EMA240より上に位置した // // 【手仕舞いルール】 // 利食い:EMA5とEMA40がクロスした // ロスカット:2ATR(終値より2%の損失) codes = CodeList if $code_num && $code_num != Length(codes) Print("前回と異なる銘柄リストでは実行できません。") Dummy end $code_num = Length(codes) //グローバル変数を初期化 if !$__INIT__ $budgetIni = 10000000 $budget = $budgetIni // 投資総額 (1000万円) $buyUnit = 1000000 // 1回の購入資金 (100万円) $MaxHoldDay = 41 // 最大保有日数 $Interest = 0 // 無制限(0) / 単利(1) / 複利(2) //------------------------------------------------ $set = [$code_num] $buy = [$code_num] $hold = [$code_num] //------------------------------------------------ $EMA5 = [$code_num] $EMA20 = [$code_num] $EMA40 = [$code_num] $EMA120 = [$code_num] $EMA240 = [$code_num] $EMA5_1 = [$code_num] $EMA20_1 = [$code_num] $EMA40_1 = [$code_num] $EMA120_1 = [$code_num] $EMA240_1 = [$code_num] // 値上がり銘柄のカウント ------------------------ $buyflag = [$code_num] $sellflag = [$code_num] $__INIT__ = 1 end def Main(i) //================================================== // 条件(買条件, 売条件共通部分) //================================================== //まだ上場していない銘柄は株価データがないためnullが返る if (Index == null) return end if ! ($EMA5[i] && $EMA20[i] && $EMA40[i] && $EMA120[i] && $EMA240[i]) //銘柄ごとのグローバル変数を初期化する $EMA5[i] = EMA_new(5) $EMA20[i] = EMA_new(20) $EMA40[i] = EMA_new(40) $EMA120[i] = EMA_new(120) $EMA240[i] = EMA_new(240) $EMA5_1[i] = {-1}EMA_new(5) $EMA20_1[i] = {-1}EMA_new(20) $EMA40_1[i] = {-1}EMA_new(40) $EMA120_1[i] = {-1}EMA_new(120) $EMA240_1[i] = {-1}EMA_new(240) $hold[i] = 0 return end //指標の計算を1日進める EMA_next($EMA5[i]) EMA_next($EMA20[i]) EMA_next($EMA40[i]) EMA_next($EMA120[i]) EMA_next($EMA240[i]) EMA_next($EMA5_1[i]) EMA_next($EMA20_1[i]) EMA_next($EMA40_1[i]) EMA_next($EMA120_1[i]) EMA_next($EMA240_1[i]) // ここまで ======================================== if 1==PricedataExistCheck(Close) return end //================================================== // 保有してない→購入 //================================================== if (! $hold[i]) ema5 = EMA_value($EMA5[i]) ema20 = EMA_value($EMA20[i]) ema40 = EMA_value($EMA40[i]) ema120 = EMA_value($EMA120[i]) ema240 = EMA_value($EMA240[i]) ema5_1 = EMA_value($EMA5_1[i]) ema20_1 = EMA_value($EMA20_1[i]) ema40_1 = EMA_value($EMA40_1[i]) ema120_1 = EMA_value($EMA120_1[i]) ema240_1 = EMA_value($EMA240_1[i]) if ! (ema5 && ema20 && ema40 && ema120 && ema240 && ema5_1 && ema20_1 && ema40_1 && ema120_1 && ema240_1) return end if (ema5 > ema20 && ema5 > ema40 && ema5 > ema120 && ema5 > ema240) if (ema5_1 <= ema20_1 || ema5_1 <= ema40_1 || ema5_1 <= ema120_1 || ema5_1 <= ema240_1) $long = 0 $long = Num($buyUnit,Close) $buyflag[i] = 1 end end //================================================== // 保有している→売却 //================================================== elsif $hold[i] if $set[i] < 1 $set[i] = 1 return end $set[i] = $set[i] + 1 ema5 = EMA_value($EMA5[i]) ema40 = EMA_value($EMA40[i]) //================================================== // 売買(売り) //================================================== // 1) 利食い:EMA5とEMA40がクロスした if (ema5 <= ema40) PrintLog("利食い") $sellflag[i] = 1 $set[i] = 0 // 2) 損切り:2%のマイナス elsif (0.98 * $buy[i] >= Close) $sellflag[i] = 1 $set[i] = 0 end end end //==================== // 売買関数 //==================== def BuySell(j) if PricedataExistCheck(Close) return end if $buyflag[j] $long = 0 $long = Num($buyUnit,Close) Buying(j) $buyflag[j] = 0 elsif $sellflag[j] Selling(j) $sellflag[j] = 0 end end //==================== // 銘柄コードを変えながらMain関数,BuySell関数を実行 //==================== i = -1 j = -1 while i + 1 < $code_num i = i + 1 {codes[i]}Main(i) end while j + 1 < $code_num j = j + 1 {codes[j]}BuySell(j) 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 |
株価データ: 日足 銘柄リスト: 日経225採用銘柄 1998/01/05~2019/06/24における成績です。 ---------------------------------------- 全トレード数 14872 勝ちトレード数(勝率) 3627(24.39%) 負けトレード数(負率) 11245(75.61%) 全トレード平均利率 0.73% 勝ちトレード平均利率 12.64% 負けトレード平均損率 -3.12% 勝ちトレード最大利率 275.66% 負けトレード最大損率 -37.10% 全トレード平均期間 30.56 勝ちトレード平均期間 83.88 負けトレード平均期間 13.37 ---------------------------------------- 必要資金 ¥163,091,400 最大ポジション(簿価) ¥161,628,400 最大ポジション(時価) ¥241,140,900 純利益 ¥103,997,400 勝ちトレード総利益 ¥415,794,200 負けトレード総損失 -¥311,796,800 全トレード平均利益 ¥6,993 勝ちトレード平均利益 ¥114,639 負けトレード平均損失 -¥27,728 勝ちトレード最大利益 ¥2,650,500 負けトレード最大損失 -¥368,000 プロフィットファクター 1.33 最大ドローダウン(簿価) -¥40,110,300 最大ドローダウン(時価) -¥46,641,700 ---------------------------------------- 現在進行中のトレード数 27 ---------------------------------------- 各毎の利益額 2000年 673 -¥8,482,900 2001年 611 -¥6,090,000 2002年 522 -¥9,393,000 2003年 791 ¥17,651,400 2004年 1025 -¥213,200 2005年 652 ¥10,552,400 2006年 972 ¥48,990,500 2007年 846 ¥7,270,900 2008年 352 -¥9,045,100 2009年 542 -¥8,012,600 2010年 678 -¥8,009,800 2011年 672 -¥6,764,300 2012年 665 -¥3,564,600 2013年 1134 ¥45,139,300 2014年 1022 ¥5,912,500 2015年 1044 ¥16,376,200 2016年 645 -¥11,215,000 2017年 968 ¥15,753,400 2018年 862 ¥9,444,000 2019年 196 -¥2,302,700 |
利益曲線は次の通り。
勝率24.39%、PFは1.33です。
まとめ
特に期待をしていた訳ではないので、コメントはありません。
個人的には、勝率70%以上、PF2.0以上、最大損失20%以下、最大保有期間10日(営業日)以下の手法が3つ以上見つかれば、システムトレードを開始します。