巷のテクニカル手法を実装しバックテスト検証することで、テクニカル手法を身に付け、トレード力を上げる&自動売買への足掛かりを作る。
この目標に向けた施策を加速するには、OmegaChartの学習ではなく、テクニカル手法のバックテスト網羅率を上げる必要があります。
テクニカル指標は単品だと万全と言えず、有効性がほとんど検証できていません。
例えば、使ったことない指標に「ストキャスティクス」があります。
FXのデイトレ手法ですが「誰でも簡単に出来てダマシの少ないテクニカル手法を紹介します」と紹介しているサイトがあったので、バックテストで有効性を検証してみます。
ストキャスティクス
ストキャスティックスは1950年代にジョージ・レインによって考案されたチャートです。
トレンドがない相場で売られ過ぎ、買われ過ぎを判断する逆張りのオシレーター系のテクニカル指標です。
ストキャスティクスは「%D、%K、S%D」の3本の線で表されています。
オシレーター系指標は一般的には次のように判断します。
- オシレーター系指標が70%~80%まで上昇したら「買われ過ぎ=売り」
- 20%~30%まで下落したら「売られ過ぎ=買い」
FX暦7年の元金融OLのテクニカル手法
次の3つのテクニカル指標を使います。
- 単純移動平均線(トレンドの方向性を探るのに最適)
- ボリンジャーバンド(ボラティリティ(相場の変動率)を把握できる)
- ストキャスティクス(売買シグナルを見つけやすい)
【買いルール】
次を満たす場合に翌日の寄り付きで購入します。
- 移動平均線(5、25)がゴールデンクロス(短期線が長期線を下から上に抜けた)のとき
- ボリンジャーバンドが-2σにレートが達した時、+2σにレートがはみ出した時
- ストキャスティクスの%D、%Kのラインが30%よりも下回ったとき、25%より下でゴールデンクロスした時
【手仕舞いルール】
次を満たす場合に翌日の寄り付きで手仕舞いします。
- 利益10%以上
- 損失15%以上
- 10日以上保有していた
ソースコード
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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
require "TIlib" require "Nehori" def CreateObject() $Diff5 = DiffMA_new(5) // 5日移動平均線 $Diff25 = DiffMA_new(25) // 25日移動平均線 $Diff5_old = {-1}DiffMA_new(5) // 5日移動平均線 $Diff25_old = {-1}DiffMA_new(25) // 25日移動平均線 $BB = BB_new(20) $ST = Stoch_new(14, 3, 3) $ST_old = {-1}Stoch_new(14, 3, 3) end def NextObject() DiffMA_next($Diff5) DiffMA_next($Diff25) DiffMA_next($Diff5_old) DiffMA_next($Diff25_old) BB_next($BB) Stoch_next($ST) Stoch_next($ST_old) end if !$__INIT__ $MHP = 10 // max holding period $BUDGET = 1000000 $ISCOMPO = 0 // liquidity budget CreateObject() $__INIT__ = 1 else NextObject() end def BuyCond() //買い条件 if ! Close return end // 短期線5が長期線25を下から上に抜けた diff5 = DiffMA_value($Diff5) diff25 = DiffMA_value($Diff25) diff5_old = DiffMA_value($Diff5_old) diff25_old = DiffMA_value($Diff25_old) //・-2σにレートが達した時 //・+2σにレートがはみ出した時 bb_v = BB_value($BB) bb_d = BB_deviation($BB) //・%D、%Kのラインが30%よりも下回ったとき //・25%より下でゴールデンクロスしたとき st_k = Stoch_k($ST) st_d = Stoch_d($ST) st_old_k = Stoch_k($ST_old) st_old_d = Stoch_d($ST_old) if ! (diff5 && diff25 && diff5_old && diff25_old && bb_v && bb_d && st_k && st_d && st_old_k && st_old_d) return end if (diff5_old < diff25_old && diff5 >= diff25) if (Close >= bb_v + 2 * bb_d || bb_v - 2 * bb_d >= Close) if (25 >= st_k && 25 >= st_d) if (st_old_k < st_old_d && st_k >= st_d) return diff5 * -1 end end end end end def SellCond() //売り条件 if ! Close return end return Close >= 1.10 * $buy || Close <= 0.95 * $buy // 5%以上の含み益・含み損 end Main() |
バックテスト結果
平成10年からのバックテスト結果です。
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/06/16における成績です。 ---------------------------------------- 全トレード数 250 勝ちトレード数(勝率) 122(48.80%) 負けトレード数(負率) 128(51.20%) 全トレード平均利率 0.69% 勝ちトレード平均利率 6.54% 負けトレード平均損率 -4.88% 勝ちトレード最大利率 21.80% 負けトレード最大損率 -17.24% 全トレード平均期間 15.05 勝ちトレード平均期間 16.87 負けトレード平均期間 13.32 ---------------------------------------- 必要資金 \5,328,870 最大ポジション(簿価) \5,724,900 最大ポジション(時価) \6,014,500 純利益 \1,519,030 勝ちトレード総利益 \6,696,170 負けトレード総損失 -\5,177,140 全トレード平均利益 \6,076 勝ちトレード平均利益 \54,887 負けトレード平均損失 -\40,446 勝ちトレード最大利益 \184,000 負けトレード最大損失 -\158,240 プロフィットファクター 1.29 最大ドローダウン(簿価) -\1,023,630 最大ドローダウン(時価) -\1,128,550 ---------------------------------------- 現在進行中のトレード数 0 |
利益曲線は次のとおりです。
うーん、直近の5、6年は悪くありませんが、それ以前の結果は微妙です。
まとめ
各テクニカル指標の有効性のあるようなチャート例を見ながら、上手な組み合わせを見つけたい。
販売してるテクニカル手法は、きれいな右肩上がりですが、未だに発見できてません。