リサーチ(68) – Simple Turtle Strategy

データ分析

タートルズのブレイクアウトをUSDJPYでやってみる。

📝 概要

TradingViewのPine Scriptで書いた、タートル・トレーディング式のシンプルなブレイクアウト戦略です。

ドンチャン・チャネル(過去N本の高値・安値で作るバンド)を2本重ねて使います。遅い方(デフォルト50本)のチャネル上限を価格が突破したら買い、下限を割ったら売り。イグジットは速い方(デフォルト20本)のチャネル中心線をもとに行います。

「シンプル」と名の付く通り、ロジックは驚くほどあっさりしています。インジケーターを山盛りにしたくなる気持ちはわかりますが、まずはこういう骨格だけの戦略から始めると、マーケットの構造を素直に見られるのでおすすめです。

 

 

 

🎯 作成の意図

タートル・トレーダーは1980年代にリチャード・デニスが育てたトレーダー集団で、そのルールは後に書籍で公開されました。「トレードのルールは教えられる」という命題を証明した実験として有名です。

今回このコードを紹介するのは、Pine Scriptでブレイクアウト戦略を書くときの最小構成を示したかったから。エントリー・イグジット・ロット管理の3点セットが100行以内に収まっており、改造のベースとして使いやすい構造になっています。

また、後述するv1_1では「エントリー後N本で決済」というパラメータを追加しています。これは「このブレイクアウト、何本保有するのが一番おいしいのか」をバックテストで探るための改造です。シンプルな戦略ほど、こういう素朴な疑問を素直にテストできるのが強みです。

 

 

 

📘 コード(戦略部分)の解説

ドンチャン・チャネルの計算

fastLen = input.int(20, minval = 1)
slowLen = input.int(50, minval = 1)

highFast = ta.highest(high, fastLen)
lowFast  = ta.lowest(low,   fastLen)
center   = (highFast + lowFast) / 2   // イグジット基準

highSlow = ta.highest(high, slowLen)
lowSlow  = ta.lowest(low,   slowLen)  // エントリー基準

ta.highest / ta.lowest で過去N本の高値・安値を取るだけ。難しいことは何もないです。center は速いチャネルの中間点で、これがイグジットのトリガーになります。

 

 

エントリー

if longEnable and strategy.position_size == 0 and time >= startDate and time <= endDate
    strategy.entry('Long', strategy.long, lotLong, stop = highSlow)
if shortEnable and strategy.position_size == 0 and time >= startDate and time <= endDate
    strategy.entry('Short', strategy.short, lotShort, stop = lowSlow)

stop = highSlow というのがポイントで、ストップ注文として発注しています。つまり「価格が50本高値を上回ったら買い」という指示をPine Scriptに渡しており、バー内でそのレベルを超えた瞬間に約定します。ノーポジのときだけ発注するので、同時に両建てになることはありません。

 

 

イグジット

if longEnable and strategy.position_size > 0
    strategy.exit('Long', stop = center)
if shortEnable and strategy.position_size < 0
    strategy.exit('Short', stop = center)

センターライン(20本チャネルの中間)を割ったら決済。利確も損切りもこの一本で兼ねています。トレンドが続けば保有し続け、反転したら素直に出る、という設計です。

 

 

バックテスト結果(スプ考慮)

まあ、なんとか勝つ。

 

ロングのみのほうがまし。

 

 

 

🚀 ワン モア ステップ

N本後に強制決済を追加

20日安値(高値)抜けで決済、が遅すぎる可能性があるため、N日後に決済ロジックを追加。Nを大きくしても意味がないので1にしてみる。

 

ロングのみ。PFは悪化してるけど悪くない資産曲線。

 

 

タイムフレームを変えてみる

このロジックはタイムフレームを問いません。日足で使えば中長期トレンドフォロー、1時間足で使えばデイトレ寄りの運用になります。同じコードで複数の時間軸を試せるのが、シンプルな戦略の強みです。

 

 

センターラインをATR系に置き換える

現状のイグジットはチャネル中心線ですが、ここをATRベースのトレーリングストップに変えると、より本家タートル戦略に近くなります。ta.atr(n) を使って entry_price - 2 * atr のようなストップに差し替えてみると面白いです。

 

 

 

コアメンバー向けソースコード

こちらからどうぞ。

リサーチ(68) – Simple Turtle Strategy|WOLF
TradingViewのPineエディタに貼り付けて「更新をチャートに反映」をクリックしてください。

コメント

タイトルとURLをコピーしました