
【TradingView】カーブフィッティングとバックテスト
カーブフィッティング
以下は移動平均線のクロスでドテン売買をする単純なストラテジーです。
//@version=4
strategy("MA Cross", overlay=true)
ma1 = sma(hl2, 121)
ma2 = sma(high, 98)
strategy.entry("L", strategy.long, when=crossover(ma1, ma2))
strategy.entry("S", strategy.short, when=crossunder(ma1, ma2))
これを TradingView でバックテストしてみるとどうなるでしょうか。
以下はチャートの範囲を2019年11月5日~2019年12月15日にした場合のバックテスト結果です。
どうでしょう、なかなか素晴らしい結果ではないですか?
すぐにでもリアル運用を開始したくなってしまいませんか?
しかし、ちょっと待ってください。12月16日以降の結果を見てからでも遅くはありません。
ストラテジーの移動平均のパラメーターの値が特殊なので気づいている人もいるでしょう。
以下がこのストラテジーの12月16日以降のバックテスト結果です。
ちなみに、11月4日以前のバックテスト結果もこんな感じです。(9月30日~11月4日)
いかがでしょう、まだこのストラテジーをリアル運用したいと思いますか?
これがカーブフィッティングです。思った以上にその威力は強力なものです。
さて、このストラテジーのもっと長期でのバックテストの結果はどのようになっているでしょう。
TradingView では「バーのリプレイ」機能を使うことでおよそ1万本づつ過去に戻ることができます。今日現在 (2020年1月26日)、遡れるのは2019年6月17日まででした。(合計約6万4千本)
もっと過去からのバックテスト結果を見るにはどうすればよいでしょうか。
FXBTCJPYの足は2015年11月から存在するので、これを MetaTrader4 (MT4) に取り込んでバックテストをしたのが以下のグラフになります。
pineで記述されたのストラテジーをMT4の言語であるMQL4で再現することで長期のバックテストを行っています。
まずは2019年1月からのバックテスト結果です。
右側の薄いグレーの部分が一番最初に見た右肩上がりの部分(11月5日~12月15日になります。
さらに、2016年からの結果は以下のようになっています。(同じく右端の薄いグレーの部分が…ですw)
いかがでしたでしょうか。カーブフィッティングとバックテストの重要性がわかっていただけたと思います。
足が短くなるにつれ、TradingView では参照できる期間も短くなってしまうため、ストラテジーのパラメーター選択は難しくなり、そもそも長期にわたって有効であるかを確認することが困難になっていきます。
バックテスト
もし、長期(2016年~)のバックテストを確認してみたいストラテジーをお持ちであればご相談ください。
イケてるストラテジーであれば無料でバックテストを行わさせていただきますw
基本的には以下の条件が必要です。
・pineで記述されていること
・ポジションが固定ロットで最大1つだけ持つものであること
・タイムフレームは 1/3/5/15/30分、1/4時間、1日のうちのどれか
・指値・逆指値、トレイリングストップを使っていないこと
(stop/limit/profit/loss/trailing_points/trailing_offsetを使っていないもの)
・security()関数を使ってないこと
以上です。