InvestmentTechHack

バックテストまとめ#2:長期フィルター HL20ブレイクアウト 資金管理

Posted on June 26th, 2016Updated on May 4th, 2019

どんな記事

指数平滑移動平均線の300日を50日を組み合わせてシグナルのフィルターとし、過去20日間の最高値・最安値のブレイクアウトでエントリーする。損切りは資金の2〜5%で収まる範囲で、利益確定は過去10日間の最高・安値。このバックテストを行いました。23銘柄、過去35年間。結果は、前回以上に良好です。

結果と成績

前回のMACDのバックテストのまとめを投稿してから早3週間。他の条件はそのままに、MACD6-19-9を「HL20」に変えてバックテストを行いました。正直、個別の銘柄毎に記事にすると非常に手間なので、今回はまとめのみにします。個別のデータは要望があれば作るようにします。

メインの指標(損益の比較)

Screenshot 2016-06-26 at 21.51.40

スタート時からの損益率で比較をするとグラフとして成り立たないので、CAGRで比較します。

右から成績が良い順です。FTSEはイギリス株価指数で、35年間、毎年ほぼ倍増していきました。2番目は誰もが知っているUSDJPYで、こちらは毎年ほぼ5割増と同程度の利益であったということですね。ここまではMACDの時と同じ順位です。どちらもトレンドフォローなので、当然といえば当然ですね。(比較の記事は別途後日作成します)

どんな推移だったか気になる方は、下に各バックテストへのリンクを用意しますので、そちらをご覧ください。

CAGR

「毎年何%の福利で運用するとその利益額になるか」を表す。たとえば100万円が7年で1000万円になったとすると、そのCAGRは約40%になる。毎年40%の利益を福利で運用すると7年で100万円が1000万円、10倍になる。

MACDのバックテストと同様に、トータルの損益がマイナスになってしまった銘柄はひとつもありませんでした。(単年ならたくさんありましたが。。)
あらためて、トレンドフォローの強さが分かります。

年ごとのリターンと勝率・RRの関係

ここでは、破産の確率では測れない「年ごとのリターンと勝率・リスクリワード比(以下、RR)率の関係」が分かります。

破産の確率は、あくまでも「破産する確率」を測るものなので、その勝率・RR・損失の許容の関係で「破産しないこと」しか分かりません。それは、「破産しない」だけで、「利益か損失か」までは分かりません。

前年比と勝率・RRの分布

Screenshot 2016-06-26 at 21.51.56

グラフは、横軸が前年比で、縦軸が「勝率×RR」を表しています。(例えば、勝率5割(0.5)とRRが2倍であれば、縦軸の数値は1.0となる。)

一定の勝率とRRでも、勝ちと負けの順番で結果が変わるので明確なひとつの数字にはならないですが、グラフをみると分かるように、おおむね「勝率×RR」が1を超えると前年比0%以上、つまり利益になったということが分かります。

破産の確率を考慮して損失の許容を決めて守ることを大前提として、「勝率×RR」が1以上になるトレードを目指していけば、おのずとその年は利益で終わることが出来るということが言えます。

そして、もう一点。23銘柄・35年間の全ての数値がこのグラフの分布の中にありますが、損失が−100%、つまり破産したことは一度もないことが分かります。そして、損失が限定されて、利益が非常に大きく伸びていることも分かると思います。(グラフを見せる関係で上と右を削っていますが、実際にはもっと大きな利益の分布もあります。)

前年比の分布

Screenshot 2016-06-26 at 21.52.27

このグラフは横軸が年で、縦軸が前年比の損益を表しています。通常の損の年、利益の年の中でに、ひときわ大きな利益が点々とあります。これがあるからトレンドフォローは強い。最近の値動きで言うとアベノミクスとかですね。こういうのをしっかり取ることが重要です。ブレクジットも、もしかしたらそうなり得るかもしれないですね。

最大DDの分布

Screenshot 2016-06-26 at 21.52.40

このグラフは最大ドローダウン(以下、DD)の年ごとの分布です。最大DDは、各銘柄ごとに35年間でもっとも投資資金が目減りした時の数値です。その期間までの最高残高を100%として、何%目減りしたかを表しています。
いい加減しつこいかもしれませんが、、資金管理とリスク管理がしっかり機能していることが分かると思います。最大DDが1.0まで到達した銘柄がひとつもないということは、破産した銘柄がひとつもないということだからですね。(だとしても、最大DDが7割超えの銘柄があるという事実は辛いところです。)

バックテストの概要

ここまでのバックテストの前提条件、諸々を解説します。テクニカル分析、資金管理などについてさらっと触れています。詳細な解説はまた別の機会に。

テクニカル分析

テクニカル分析は売買サインや資金管理含めて以下のものを使用しています。

EMA300 300日指数平滑移動平均線
EMA50 50日指数平滑移動平均線
HL20(過去20営業日の高値安値)
ATR20
HL10(過去10営業日の高値安値)

みたことあるものがほとんどだと思います。奇をてらったものはあまり使いません。

300日と50日のEMAをフィルターにします。50日が300日より上のときは20営業日の最高値を上抜けたときだけ買いエントリー、逆に50日が300日より下のときは最安値を下抜けたときだけ売りエントリーとします。

資金とリスクの管理

資金管理とリスク管理は次のとおりです。

資金管理

1N = 投資金の1% = その日の20日ATRの値幅
エントリーは1Nずつ。最大で4Nまで。
最初のエントリー後「N/2」プラス方向に動いたら1N追加。そこからさらに「N/2」動いたら、もう1N追加。
バックテストの中では、それぞれ1u、2u、3u、fullとしている。

リスク管理

損切り : 最初のエントリーから「2N(ATR20 × 2)」マイナス方向に動いたら損切りとする。
その後2N、3Nと増えるごとに、すべてのポジションの損切りを「N/2(ATR20の半分)」ずつ上げて行く。

利益確定 : 4Nのエントリー時の損切りラインより、過去10日の最高(安)値が有利な方向に動いたら、それを決済のラインとする。

1Nを投資金の1%とします。たとえば1万ドルの投資金であれば、1Nでもてるポジションは想定リスク100ドルで収まるサイズにします。たとえばATR20が20とすると、100ドル / 1 / 20ドル で1N =5枚 となります。

測定方法

googleシートを使用。ひたすら関数で計算させています。Excelなんかの関数は他のプログラムと違って、もっともらしい間違いが多いので注意が必要です。

やむなく目をつむっている点

本来であれば、日々、もしくは週ごとの損益にあわせて随時サイジングをするのですが、今回はエントリー時のサイジングのみです。ホントは利益が出ているときはもっとサイズを大きく、損失が出ているときはサイズを小さくしていきます。あとは、他の銘柄との相関。これも含めて検証したいのですが、なかなか大変なので保留しています。次のバックテストが終わったらつくろうと思います。

まとめの詳細なデータはこちらから

詳細なデータはgoogleのfusion tablesを用意しました。

グラフや価格データ、テクニカルやシグナルの計算結果などを、フィルターをかけながら見ることができます。

タカハシ / 8年目の兼業トレーダー

元・日本料理の板前。現在は、投資やプログラミング、動画コンテンツの撮影・制作・編集などを。更新のお知らせは、各SNSやLINEで。LINEだと1対1でお話することもできます!

このブログと筆者について運用管理表

  • 記事をシェア
© Investment Tech Hack 2021.