BNF(小手川隆)氏の「乖離率」逆張り投資手法のバックテストを以前紹介しましたが、結果が良くなかったので再紹介します。
BNF氏の手法とは?
おさらいです。
【買いルール】
25日移動平均線乖離率が次を満たす場合に翌日の寄り付きで購入します。
- 薬品株・・・約5~10%
- 電機株・・・約10~15%
- 食品株・・・約7~10%
- 化学株・・・約7~10%
- 証券株・・・約5~10%
- ハイテク株・・・約10~15%
※大型株の場合の目安なので、対象は日経225採用銘柄とします。
【手仕舞いルール】
次を満たす場合に翌日の寄り付きで手仕舞いします。
- 利益10%以上
- 損失15%以上
- 10日以上保有していた
「買った銘柄が乖離率0%に戻っていく過程で売る」より安定した手仕舞いルールだと思うので変更しました。
ソースコード
Nehori.ptはProtraの使い方応用編に記載しています。
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 |
# loop-type: date-only // BNFの手法 require "TIlib" require "Nehori" if !$__INIT__ $MHP = 10 // 最大保有日 $BUDGET = 1000000 // 投資総額 $ISCOMPO = 0 // 単利or複利 1:複利 $Diff = [Length(CodeList)] $__INIT__ = 1 end def CreateObject(i) $Diff[i] = DiffMA_new(25) // 25日移動平均線 end def NextObject(i) DiffMA_next($Diff[i]) end def BuyCond(i) //買い条件 diff = DiffMA_value($Diff[i]) if ! (diff) return end value = -35 // 化学・薬品 約7~10% if 4000 <= (int)Code && (int)Code < 5000 value = -8 // 機械・電機 約10~15% elsif 6000 <= (int)Code && (int)Code < 7000 value = -12 // 食品 約7~10% elsif 2000 <= (int)Code && (int)Code < 3000 value = -8 // 証券 約5~10% elsif 8000 <= (int)Code && (int)Code < 9000 value = -7 else return end if (diff <= value) return diff * (-1) end end def SellCond(i) //売り条件 if ! Close return end return Close >= 1.10*$buy || Close <= 0.85*$buy end Main2() |
カテゴリに分けた銘柄の平均値(切り捨て)を閾値として計算しています。
バックテスト結果
平成10年からバックテストを開始していますが、ツールのバグ?なのか平成12年からしか計算してくれません。
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 |
株価データ: 日足 銘柄リスト: 日経225採用銘柄 10/01/05~29/05/26における成績です。 ---------------------------------------- 全トレード数 270 勝ちトレード数(勝率) 148(54.81%) 負けトレード数(負率) 122(45.19%) 全トレード平均利率 1.90% 勝ちトレード平均利率 10.35% 負けトレード平均損率 -8.36% 勝ちトレード最大利率 86.79% 負けトレード最大損率 -29.63% 全トレード平均期間 15.60 勝ちトレード平均期間 14.01 負けトレード平均期間 17.54 ---------------------------------------- 必要資金 \906,000 最大ポジション(簿価) \1,000,000 最大ポジション(時価) \2,030,400 純利益 \5,109,500 勝ちトレード総利益 \14,220,200 負けトレード総損失 -\9,110,700 全トレード平均利益 \18,924 勝ちトレード平均利益 \96,082 負けトレード平均損失 -\74,678 勝ちトレード最大利益 \864,800 負けトレード最大損失 -\288,000 プロフィットファクター 1.56 最大ドローダウン(簿価) -\773,800 最大ドローダウン(時価) -\782,200 ---------------------------------------- 現在進行中のトレード数 0 |
結果は勝率5割超え、PF(プロフィットファクター)1.5超えです。
100万円の投資額で、19年後には611万円になってます。
利益曲線は次のとおりです。
多少の増減はあるけど、ほぼ単調増加です。
閾値が多数あるので、微調整次第で利用できる手法になるでしょう。
それをカーブフィッティングと呼びますが・・・。
まとめ
聖杯のように見えるシステムでも、実際に運用できるものは少ないのが現状だと思います。
絶対確実に利益が上がることが事前に保証されているストラテジーなどこの世には存在しません。
株価は生物です。
いかなる損益も、当サイトは責任を持ちませんがメールにてコメントは大歓迎です。