日経225先物システム例
-
マーケットのアノマリーを利用して、月末の4営業日と月初め2営業日の計6営業日のみ、225先物を買いで保持する投資信託(TOM運用日本株式ファンド)があります。 これを、M.tradingシステムトレード開発(Excel)でシステム化し、検証してみます。
システムのルール
正確なルールは、月末の5営業日前の引け近くで225先物を買い、月初め2営業日後の引け近くで返済するとこのことです。
ここでは、月末の5営業日前の後場引けで225先物を買い、月初め2営業日後の後場引けで返済するシステムを作成してみます。
225先物 四本値ダウンロード
システム作成方法
ワークシート[Sys]
オリジナルシステムの作成を参照し、ワークシート[Sys]を作成するところまで行います。移動平均のサインの列は作成する必要はありません。
四本値
四本値は、次の通りの形式で利用します。時刻は、9:00にしておきます。出来高は必要ありません。
また、夕場は含めず日中のみの四本値を利用するとします。従って、9:00の時刻の足は9:00~15:10の足になります。
日付 時刻 始値 高値 安値 終値 出来高 2000/1/4 9:00:00 19130 19190 18940 18990 15300 2000/1/5 9:00:00 18510 18580 18220 18380 35630 2000/1/6 9:00:00 18390 18500 17870 17900 35640 2000/1/7 9:00:00 18050 18220 17930 18170 27020
月の数字 P1001のセル
P列に、月を数字で算出します。
=MONTH(E1001)
サインの数式 S1003のセル
[月末買月初売 S]をS列に作成します。Sはサインの意味です。
=IF(AND(P1007<>P1008,J1008<>""),1, IF(AND(P1001<>P1002,P1002<>""),-1,0))
- 「1」は、四本値に値が有る場合で、月末の日を含めて5営業日前の行で発生します。
- 「-1」は、四本値に値が有る場合で、月初め日を含めて2営業日後の行で発生します。
統合シグナルの数式
- [統合買Entry] CA1001
=IF(S1001=1,1,0)
- [統合買Exit] CC1001
=IF(CB1001=-1,-1,0)
統合買の2列を上記の数式にします。
- [統合売Entry] CB1001
=IF(S1001=-1,-1,0)
- [統合売Exit] CD1001
=IF(CA1001=1,1,0)
統合売の2列は利用しませんが、一応数式を設定しておきます。
ワークシート[A][S]での設定
- ワークシート[A]に四本値を貼り付けます。
- ワークシート[S]で、[A]と[Sys]にチェックを入れ、[最終行に合わせる]を実行します。
ワークシート[P]の設定
![ワークシート[P]の設定1](image/20100113fig3b.png)
- [統合買Entry]の[買いEntry]
- [統合買Exit]の[買いExit]
にチェックを入れます。
![ワークシート[P]の設定2](image/20100113fig2c.png)
- 買いEntryは「1」のシグナルがある行の終値で買いなので、[EntryA買] を1。1以外にすると、次の行の始値で買います。
- 買いExitは「-1」のシグナルがある行の終値で返済なので、[ExitA買] を1。1以外にすると、次の行の始値で返済します。
にします。
通常、時刻の設定は、「1 前場開始 9:00」となっているはずです。
これで[再計算]を行えば、バックテストが行われます。
バックテスト結果
- 年によって損益にばらつきがありますが、PFは1.8、勝率62%と良く、売買回数も年に12回のみなのが良いです。
- [利益額平均値] [利益額中央値] [最大利益額]が、[損失額平均値] [損失額中央値] [最大損失額]を上回っている点も悪くないです。
- ただし、最大ドローダウンは-2500ですから、ラージ1枚を運用した場合250万円のドローダウンがあったわけです。
履歴
- 2010-01-14 掲載
![ワークシート[Sys]](./image/20100113fig1s.png)
![ワークシート[S]](./image/20100113fig5s.png)
