【TradingView】トレイリングストップの罠

TradingViewに数ある罠の1つ、トレイリングストップの罠。
トレイリングストップを使うとこんな聖杯も簡単に作れてしまいます。

画像1

コードはたったこれだけです。

//@version=4
strategy("test-trail-holy-grail", overlay=true)

_TRAIL_POINTS  = input(500, step=100)
_TRAIL_OFFSET  = input(250, step=50)

if time >= timestamp(2020, 1, 1, 0, 0, 0)
   if close >= open
       strategy.entry("L", strategy.long)
   else
       strategy.entry("S", strategy.short)
   strategy.exit("Trail", "L", trail_points=_TRAIL_POINTS, trail_offset=_TRAIL_OFFSET)
   strategy.exit("Trail", "S", trail_points=_TRAIL_POINTS, trail_offset=_TRAIL_OFFSET)

このコードにあまり意味はありませんが、現在の足が陽線ならロング、陰線ならショートしてトレイルをかけているだけです。
trail_points(円)以上の利益でトレイルを開始し、最大trail_offset(円)の逆指値を更新していきます。
なぜ、これが聖杯になるのかと言うと、TradingViewでは足ごとの価格情報として4本値(Open/High/Low/Close)しか使われず、バックテストにおいて値はこの4つの間を直線的に移動するためです。(下位足やティックは使われない)
例えば、陽線では下ヒゲの長さ以上のtrail_pointsが設定されていればその陽線の実体と上ヒゲのほとんどを取ることができてしまいます。
(trail_offsetが0であれば上ヒゲもすべて取れてしまう)

以下は日本時間2020年1月6日11時の陽線をトレイリングで取る(だけの)コードです。(timestamp()の時間指定が11-9-1になっているのは、日本時間(UTC+9)に合わせるために-9、オーダーは1本前の足で入れる必要があるためさらに-1しています)

//@version=4
strategy("test-trail", overlay=true)
_TRAIL_POINTS  = input(500, step=100)
_TRAIL_OFFSET  = input(250, step=50)
if time == timestamp(2020, 1, 6, 11 - 9 - 1, 0)
    strategy.entry("Long", strategy.long)
    strategy.exit("Trail", "Long", trail_points=_TRAIL_POINTS, trail_offset=_TRAIL_OFFSET)

このコードを実行すると以下のチャートのようになります。

画像2

trail_points=500円、trail_offset=250円で見事に実体と上ヒゲが取れています。
しかし、このような小さい値のトレイルがリアルでも本当に取れるでしょうか?

画像3

上図は上記時間帯の1秒足を表示したもので、赤い線が500円/250円のトレイルラインになります。
これを見るとトレイル開始後わずか60秒ほどでストップにかかってしまっています。
実際の値動きは一方的に動くことは少なく、このように上下することが多々あります。

では、実際にはどの程度の値をtrail_points/trail_offsetに設定すればこの時間足を取ることができたのかみてましょう。
以下はMT4でtrail_points(横軸)/trail_offset(縦軸)をそれぞれ0円~10,000円の範囲で探索した結果です。緑色の濃い部分ほど利益が高いことを示しています。
これを見ると、ピークをつけるのはtrail_offsetが4,700円で、そこより大きくするにしたがって利益が少しずつ下がる傾向が見られます。(trail_pointsは影響なし)

画像5

この結果から、trail_points=1,000円/trail_offset=4,700円とした場合のトレードは以下のようになりました。

画像5

開始15分くらいのところをギリギリで抜け、きれいに取れていることがわかります。

以上のように、TradingViewのトレイリングストップは信用しない方がいいでしょう。
使えるストラテジーを探すには、trail_points/trail_offsetのキーワードが含まれているものをまずは除外するのが効率的です。

ほかにもTradingViewで注意するポイントは以下でも挙げていますのでよろしければお読みください。

以上です。

この記事が気に入ったらサポートをしてみませんか?