システムトレード可能なバックテスト環境という「聖杯」を手に入れた。と喜んでいましたが・・・
各テクニカル指標を使ってのバックテストは多くの人が調査済みでした。
更に「うねり手法」のようなステム化が難しい有名手法が多くありバックテストができません。
ただし、システムトレードの経験が別のトレードに生きてくると信じたいなぁ・・・。
前日比-10%
典型的な逆張りのパターンと言われています。
急激に下落したものを買い、その回復を狙う戦術です。
【買いルール】
- 終値の前日比が-10%以下
【決済ルール】
- 含み益が10%以上(利確)
- 仕掛けから 60日 が経過 (期限切れ)
ソースコード
難しいことは何もありません。主にBuyCondメソッドだけ替わっています。
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 |
//========================================== // 前日比-10% //========================================== require "TIlib" def BuyCond //買い条件 if ! (Close && {-1}Close) return end return Close <= 0.9*{-1}Close end def SellCond //売り条件 if ! Close return end if Close >= 1.1*$buy // 10%以上の含み益(利確) return 1 elsif $set <= 0 //0以下でも売り条件(期限切れ) return 1 end $set = $set - 1 //1日1回カウンタ減らしておく end // 1000株の倍数か100株の倍数として買う株数を計算 def Num(price) num = 1000000/price // 軍資金 100 万円で何株? if num >= 1000 num = (num/1000)*1000 elsif num >= 100 num = (num/100)*100 elsif num == 0 num = 1 end return num end if ! $wait // 同日の売買禁止フラグ //持ってないとき、かつBuyCondのとき、買う if ! $hold && BuyCond if {1}Open //翌日の始値で $hold = Num({1}Open) if $hold >= 1 $buy = {1}Open //買う {1}Buy(Open, $hold) end elsif Close //翌日の始値がないとき $hold = Num(Close) if $hold >= 1 $buy = Close //便宜上終値で買う Buy(Close, $hold) end $set = 41 // 買ったとき最初のカウンタをセット end //持っているとき、かつSellCondのとき、売る elsif $hold && SellCond if {1}Open //翌日の始値で //翌日 {1}Sell(Open, $hold) //売る else //始値なし Sell(Close, $hold) //便宜上終値で売る end $hold = 0 //持分を0にリセット $wait = 1 end else $wait = $wait - 1 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 |
ファイル: DiffOneDay.pt 株価データ: 日足 銘柄リスト: 日経平均構成銘柄 10/01/05~29/05/02における成績です。 ---------------------------------------- 全トレード数 1420 勝ちトレード数(勝率) 1002(70.56%) 負けトレード数(負率) 418(29.44%) 全トレード平均利率 4.13% 勝ちトレード平均利率 12.18% 負けトレード平均損率 -15.18% 勝ちトレード最大利率 55.03% 負けトレード最大損率 -70.19% 全トレード平均期間 33.20 勝ちトレード平均期間 20.98 負けトレード平均期間 62.50 ---------------------------------------- 必要資金 \121,043,100 最大ポジション(簿価) \154,026,700 最大ポジション(時価) \156,028,500 純利益 \50,723,490 勝ちトレード総利益 \105,048,000 負けトレード総損失 -\54,324,530 全トレード平均利益 \35,721 勝ちトレード平均利益 \104,838 負けトレード平均損失 -\129,963 勝ちトレード最大利益 \465,000 負けトレード最大損失 -\624,000 プロフィットファクター 1.93 最大ドローダウン(簿価) -\14,168,700 最大ドローダウン(時価) -\34,747,400 ---------------------------------------- 現在進行中のトレード数 0 |
トレード数も少なすぎることもなく、勝率もそこそこいいです。
何より平均損益が+4%程度と大きいです。
プロフィットファクターも高いけど、負けトレード最大損率が高すぎてこのままじゃ使えないかな・・・。
利益曲線は次の通りです。