仕事が増えるばかり・・・・。
朝から深夜まで、色々と考えているけど、しんどい・・・・。
睡眠不足だし・・・・。
日記はマッシュアップするべきじゃなかった。
Google検索に引っかかりにくくなるし、読者も関係ない話題を読まされることになる。
まぁ、このサイトは数十人しか見てないし、気にする事はないんだけどね。
ほら、俺って繊細だからさ。
今回もストラテジーの話題。
5ちゃんねる「システムトレード・売買ストラテジーpart42」
5ちゃんねる(旧2ちゃんねる)に
「システムトレード・売買ストラテジー」
なるスレッドが存在している。
今の最新は「part42」。
ほとんどがクソな情報ばかりで面倒なので読んでない。
だれかまとめページを作って欲しい。
ただ、偶然にもストラテジーが掲載されたコメントを見つけた。
131山師さん (ワッチョイ 8a03-JFh1)2019/06/16(日) 13:22:36.38ID:yxpMM7Pw0>>133>>136
Fカップの美少女JCだが
30億ぐらいつっこめるスイングのロジックが教えてくれ
これに対する返答は次のとおり。
139山師さん (オイコラミネオ MM06-Rk9P)2019/06/18(火) 18:10:27.99ID:tUgZXB4aM
>>136
別のスレンダー系美少女JCだけど
ありがとうおじさま(チュッ
おぉ!!
Fカップの美少女、スレンダー系美少女「女子高生」・・・・と。
システムトレーダーって滅茶苦茶モテるじゃん。
このサイトでも多くの手法を公開してきた。
実は女性ファンがついてるんじゃないの!?
おじさん張り切って今日もバックテストしちゃうよ!!
山師さん (ワッチョイ 9a47-LWbF) の有効性検証
[対象銘柄]
- 1570(ETF (NEXT FUNDS)日経平均レバレッジ上場投信)
[仕掛けルール]
- 1) 3日連続で前日比が-4%より小さい →翌日寄付きで買い付け
- 2) 移動平均線乖離率(終値)(25日)が-20%より小さい →曜日が水曜日か木曜日 →翌日寄付きで買い付け
- 3) 前日比が-8%より小さい →翌日終日指値、終値-8%で買い付け
[手仕舞いルール]
- 1) 保有日数が3日以下 →建て値+10%で手仕舞い
- 2) 保有日数が4日以上 →翌日寄付きで手仕舞い
今回の一番の特徴は
建て値+10%で手仕舞い
売り指値が使われ、指定期間過ぎると寄付に変更している点だ。
これは結構有効かもしれない。
実トレードでは、成行き・指値で買った後に、すぐに売却額の指値が必要だけどね。
バックテスト結果(1570のみ)
まず、掲示板にかかれている通り「1570(ETF (NEXT FUNDS)日経平均レバレッジ上場投信)」だけで試してみる。
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 |
株価データ: 日足 銘柄リスト: 1570 2000/01/04~2020/08/26における成績です。 ---------------------------------------- 全トレード数 7 勝ちトレード数(勝率) 6(85.71%) 負けトレード数(負率) 1(14.29%) 全トレード平均利率 4.03% 勝ちトレード平均利率 8.05% 負けトレード平均損率 -20.11% 勝ちトレード最大利率 20.35% 負けトレード最大損率 -20.11% 全トレード平均期間 5.86 勝ちトレード平均期間 5.83 負けトレード平均期間 6.00 ---------------------------------------- 必要資金 ¥508,900 最大ポジション(簿価) ¥533,520 最大ポジション(時価) ¥679,880 純利益 ¥155,170 勝ちトレード総利益 ¥249,550 負けトレード総損失 -¥94,380 全トレード平均利益 ¥22,167 勝ちトレード平均利益 ¥41,592 負けトレード平均損失 -¥94,380 勝ちトレード最大利益 ¥106,720 負けトレード最大損失 -¥94,380 プロフィットファクター 2.64 最大ドローダウン(簿価) -¥94,380 最大ドローダウン(時価) -¥144,220 ---------------------------------------- 現在進行中のトレード数 0 ---------------------------------------- 平均年利 7.62% 平均年利(直近5年) 6.10% 最大連勝 5回 最大連敗 1回 ---------------------------------------- [年度別レポート] 年度 取引回数 運用損益 年利 勝率 PF 最大DD 2020年 2回 ¥12,340円 2.42% 50.00% 1.13倍 -20.11% 2016年 2回 ¥52,980円 10.41% 100.00% ∞倍 0.00% 2015年 1回 ¥49,950円 9.82% 100.00% ∞倍 0.00% 2013年 2回 ¥39,900円 7.84% 100.00% ∞倍 0.00% |
利益曲線は次のとおり。
勝利100%が続いていたけど、コロナでは失敗。
売買数が少ないけど、右肩上がり。
バックテスト結果(全銘柄)
次に「全銘柄」でやってみる。
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 |
株価データ: 日足 銘柄リスト: 全銘柄 1998/01/05~2020/08/26における成績です。 ---------------------------------------- 全トレード数 130 勝ちトレード数(勝率) 92(70.77%) 負けトレード数(負率) 38(29.23%) 全トレード平均利率 7.50% 勝ちトレード平均利率 13.77% 負けトレード平均損率 -7.69% 勝ちトレード最大利率 81.48% 負けトレード最大損率 -44.74% 全トレード平均期間 6.48 勝ちトレード平均期間 6.57 負けトレード平均期間 6.26 ---------------------------------------- 必要資金 ¥2,335,400 最大ポジション(簿価) ¥2,992,000 最大ポジション(時価) ¥3,946,400 純利益 ¥4,421,455 勝ちトレード総利益 ¥5,726,775 負けトレード総損失 -¥1,305,320 全トレード平均利益 ¥34,011 勝ちトレード平均利益 ¥62,248 負けトレード平均損失 -¥34,351 勝ちトレード最大利益 ¥352,000 負けトレード最大損失 -¥191,620 プロフィットファクター 4.39 最大ドローダウン(簿価) -¥621,120 最大ドローダウン(時価) -¥942,840 ---------------------------------------- 現在進行中のトレード数 0 ---------------------------------------- 平均年利 12.62% 平均年利(直近5年) 6.19% 最大連勝 11回 最大連敗 3回 ---------------------------------------- [年度別レポート] 年度 取引回数 運用損益 年利 勝率 PF 最大DD 2020年 26回 -¥229,000円 -9.81% 46.15% 0.68倍 -44.74% 2019年 6回 ¥192,800円 8.26% 83.33% 102.47倍 -0.36% 2018年 4回 ¥134,500円 5.76% 50.00% 9.62倍 -3.20% 2016年 11回 ¥419,000円 17.94% 81.82% 12.36倍 -6.74% 2015年 6回 ¥205,500円 8.80% 100.00% ∞倍 0.00% 2014年 2回 ¥99,700円 4.27% 100.00% ∞倍 0.00% 2013年 11回 ¥404,600円 17.32% 72.73% 7.63倍 -9.20% 2011年 7回 ¥880,500円 37.70% 100.00% ∞倍 0.00% 2010年 1回 ¥95,700円 4.10% 100.00% ∞倍 0.00% 2008年 41回 ¥1,583,955円 67.82% 70.73% 4.73倍 -26.02% 2007年 2回 ¥30,900円 1.32% 50.00% 1.74倍 -8.84% 2006年 8回 ¥354,900円 15.20% 87.50% 178.45倍 -0.57% 2003年 1回 ¥52,000円 2.23% 100.00% ∞倍 0.00% 2002年 1回 ¥130,000円 5.57% 100.00% ∞倍 0.00% 2001年 3回 ¥66,400円 2.84% 100.00% ∞倍 0.00% |
利益曲線は次のとおり。
惜しい・・・今年だけは負けだ・・。
そして全銘柄に適用した割には取引回数が低い。
まとめ
コテコテの厳し目にした逆張り手法だったが、指値売りの考えは今後検討余地ありだ。
ただ、2019年に公開されたアルゴリズムなので、2020年の状況は考慮されておらずコロナでは負けになってしまった・・・・。
過去データからオカルト手法で未来をチートするのがシステムトレードだけど、やはり難しい・・・のか。。
最近は、システムトレードは錬金術に近い気がしている。
数年後には錬金術師のように金の精製は不可能な事が立証されているだろうね・・・。
【参考】ソースコード
いつも通り独自ライブラリの取り込みが必要。
実装は次のようになります。
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 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 |
# loop-type: date-only //============================== require "TIlib" require "Utility" require "TrendCheck" //============================== // 5ちゃんねらーの手法 //============================== // //対象銘柄 1570 // //[仕掛けルール] //1) 3日連続で前日比が-4%より小さい →翌日寄付きで買い付け //2) 移動平均線乖離率(終値)(25日)が-20%より小さい →曜日が水曜日か木曜日 →翌日寄付きで買い付け //3) 前日比が-8%より小さい →翌日終日指値、終値-8%で買い付け // //[手仕舞いルール] //1) 保有日数が3日以下 →建て値+10%で手仕舞い //2) 保有日数が4日以上 →翌日寄付きで手仕舞い 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 = 4 // 最大保有日数 $shortSelling = 0 // 空売り戦略 Yes(1)/No(0) $Interest = 1 // 無制限(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 && {-2}Close && {-3}Close) return end if ! (Volume && {-5}Volume && {-10}Volume && {-15}Volume && {-5}Close && {-10}Close && {-15}Close) return end // 過去15日間の売買代金が1千万以下の日が存在する銘柄は省く if ! (SalesValue()/4 + {-5}SalesValue()/4 + {-10}SalesValue()/4 + {-15}SalesValue()/4 > 10000) return end // 株価100円以下は省く if (Close <= 100) return end // 3日連続で前日比が-4%より小さい →翌日寄付きで買い付け flag1 = Close < {-1}Close * 0.96 && {-1}Close < {-2}Close * 0.96 && {-2}Close < {-3}Close * 0.96 // 移動平均線乖離率(終値)(25日)が-20%より小さい →曜日が水曜日か木曜日 →翌日寄付きで買い付け flag2 = diffma25 < -20 && (DayOfWeek == 3 || DayOfWeek == 4) // 前日比が-8%より小さい →翌日終日指値、終値-8%で買い付け flag3 = Close < {-1}Close * 0.92 if (flag1 || flag2) $buyflag[i][0] = 1 // 購入フラグ $buyflag[i][1] = diffma5 // 好きなパラメータをもとにソート $buyflag[i][2] = $buyflag[i][0] // 手法別に売りを変える場合 $buyCnt = $buyCnt + 1 elsif (flag3) $buyflag[i][0] = 2 // 購入フラグ $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 ($set[i] >= $MaxHoldDay) // 保有日数が4日以上 →翌日寄付きで手仕舞い PrintLog("損切り") $sellflag[i] = 1 $set[i] = 0 else // 保有日数が3日以下 →建て値+10%で手仕舞い PrintLog("利食いチャレンジ") $sellflag[i] = 2 // $set[i] = 0 end end end def Selling2(i) if (0 == PricedataExistCheck({1}Open)) t = 0 if ($sellflag[i] == 2) // 建て値+10%で手仕舞い t = StopOrderClose(0.90) end if (t) PrintLog("t = " + (int)(t)) PrintLog("$hold[i] = " + $hold[i]) SellingLimitedPrice(i, 1, (int)(t)) return 1 end end return 0 end //==================== // 売り処理 //==================== def Sell_(i) if ($sellflag[i] == 2) // 指値売り t = Selling2(i) if (t) $sellflag[i] = 0 $buyflag[i][2] = 0 $set[i] = 0 end elsif ($sellflag[i] == 1) // 寄付売り 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 Buying2(i) if (0 == PricedataExistCheck({1}Open)) t = 0 if ($buyflag[i][0] == 2) // 翌日終日指値、終値-8%で買い付け t = StopOrderClose(0.92) end if (t) PrintLog("Close = " + Close) BuyingLimitedPrice(i, 1, t) end end end //==================== // 買い処理 //==================== def SortBuy(i) if (PricedataExistCheck(Close)) return end $long = 0 $long = Num($buyUnit, Close) codeset = $order[(int)Code] if ($buyflag[i][0] == 1) Buying(codeset) // 寄付 elsif ($buyflag[i][0] == 2) Buying2(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) BuyLoop(1, 1, codes) end //==================== // 売り //==================== i = -1 while i + 1 < $code_num i = i + 1 {codes[i]}Sell_(i) end |