タートルブレイクアウト戦略


作成日: 2023-12-04 16:25:53 最終変更日: 2023-12-04 16:25:53
コピー: 0 クリック数: 641
1
フォロー
1619
フォロワー

タートルブレイクアウト戦略

概要

この戦略は,突破理論に基づいた短期取引戦略である.これは,短期トレンドの利潤を捉えるために,突破信号を識別するために,平均線指数と最高価格/最低価格指数を使用する.

戦略原則

この戦略は,20日の最高値を使用して上昇傾向を識別し,閉盘価格が20日の最高値を破るとき,多めにします. 10日の最低値を使用して下降傾向を識別し,閉盘価格が10日の最低値を下回るとき,空売りします. 同時に,空売りのためのストップ・ロースの退出信号としてより短い10日の最高値も使用します.

具体的には,この戦略には以下のルールが含まれています.

  1. 取引終了時に20日目の最高値よりも高い値で追加入場を行うこと.
  2. 10日目の最低値を下回った閉盘価格で空売り;
  3. 10日目の最高値より高い値で閉店した場合の空白;
  4. 10日の最低値より低い値で閉店した場合,多頭ポジションを平準化する.

閉盤価格と異なる周期の最高値と最低値との関係を比較することによって,この戦略は,より短線期間のトレンドの突破を捕捉し,短線操作を実現する.

優位分析

この戦略には以下の利点があります.

  1. 戦略の論理はシンプルで明快で,理解し,実行しやすい.
  2. 突破理論は短期的なトレンドを把握する
  3. 取引は2つの方向で行われるように,多頭と空頭の機会を判断する.
  4. 異なるパラメータの範囲を設定し,ポジション保持時間を柔軟に調整できます.

リスク分析

この戦略にはいくつかのリスクがあります.

  1. 突破取引は,リスクの管理のために,ストップ・ロスを設定する必要があります.
  2. 多頭空頭切替が頻繁に起こり,取引コストと滑り場損失が増加する.
  3. パラメータの設定が不適切である場合,取引が頻繁すぎたり遅れたりすることがあります.

リスクを制御するために,単一の損失を制限するためにストップ・ロスを設定することも,取引頻度を制御するためにパラメータの範囲を適切に調整することもできます.

最適化の方向

この戦略は,以下の点で最適化できます.

  1. 誤った突破を防ぐために,他の指標にフィルターを加える.

  2. 動的退出機構を設置し,利益からストップ・ロスを追跡する.

  3. トレンド判定のルールを導入し,逆向きの取引を避ける.

  4. 周期や市場の状況に合わせてパラメータの範囲を最適化する.

要約する

この戦略は,全体として,シンプルで実用的な短期突破戦略である. それは,より短い期間のトレンドの機会を捕獲するのに有利である. しかし,被套と高取引頻度のリスクもある. フィルター,ストップロス,パラメータ最適化などの手段を追加することによって,リスクを制御しながら戦略の効率を向上させることができる. この戦略は,ショートラインの機会に注目し,高週周率を追求するトレーダーに適しています.

ストラテジーソースコード
/*backtest
start: 2022-11-27 00:00:00
end: 2023-12-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("TurtleBC Strategy v2 V.Troussel", shorttitle="TurtleBC-V.Troussel", overlay=true, pyramiding=0)

// === BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1)
FromDay   = input(defval = 1, title = "From Day", minval = 1)
FromYear  = input(defval = 2016, title = "From Year", minval = 2016)
ToMonth   = input(defval = 1, title = "To Month", minval = 1)
ToDay     = input(defval = 1, title = "To Day", minval = 1)
ToYear    = input(defval = 9999, title = "To Year", minval = 9999)

enter_fast = input(20, minval=1)
exit_fast = input(10, minval=1)
exit_fast_short=input(10,minval=1)


fastL = highest(close, enter_fast)
fastS = highest(close ,exit_fast_short)
fastLC = lowest(close, exit_fast)
//Sortie pour le short
exitS=close>fastS[1]


enterL1 = close > fastL[1]
exitL1 = close <= fastLC[1]




strategy.entry("Long", strategy.long, when = enterL1 and (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59)))
strategy.close("Long", when = exitL1 and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59)))

//le trigger de sortie est 
strategy.entry("Short", strategy.short, when = exitL1 and (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59)))
strategy.close("Short", when = exitS and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59)))