トートル・トレンドフォロー戦略は,移動平均値とトレンド逆転点での取引に基づいてトレンド方向を決定する定量戦略である.この戦略は,シグナルを決定し,潜在的な逆転点でのエントリーとストップ損失を決定するためにキャンドルスタイルのパターンを組み合わせる.
この戦略は,トレンド方向を決定するために,異なるサイクルの3つのEMAラインを使用する.具体的には,15日,120日,および220日EMAラインが計算される.15日線が220日線よりも高いとき,上昇傾向が決定される.15日線が220日線よりも低いとき,下落傾向が決定される.
上向きの傾向にある場合 閉じる価格が220日線以下なら ショートトレンドをします 下向きの傾向にある場合 閉じる価格が220日線以上なら ロングトレンドをします
同時,この戦略は信号を確認するためにキャンドルスタイルのパターンも組み合わせます.上昇傾向のビッグギャップキャンドルスタイルの場合や下落傾向のビッグギャップキャンドルスタイルの場合,ストップ損失のためにポジションは閉鎖されます.
この戦略の最大の利点は,明確なシグナルなしの逆転操作を避け,トレンドを操作するためにトレンドをフォローできるということです.複数の移動平均値でトレンドを判断することで,市場のノイズが効果的にフィルタリングされ,主要なトレンド方向をロックできます.
同時に,戦略は,この時点で非常に良いリスク・リターン特性を有する潜在的なトレンド逆転点にも入ります.そして,ストップ・ロスのためのキャンドルスタイクを組み合わせることで,あまりにも断片化されたストップ・ロスのポイントを回避できます.
この戦略の主なリスクは,移動平均によって決定された傾向が実際の価格動きに遅れることである.この時点で,傾向に反する逆転オペレーションが起こる可能性があります.
また,戦略で使用されるキャンドルスタイクパターンは失敗し,損失を効果的に停止することができません.異常な市場変動がある場合,ストップ・ロスは直接侵入され,損失が大きくなります.
上記リスクを軽減するために,移動平均のサイクルパラメータを調整するか,キャンドルスタイルのパターンを決定するための比例因子を調整して規則を厳格にするかを検討する.もちろん,技術分析は市場リスクを完全に回避することはできませんし,ポジションサイズを制御する必要があることも認識する必要があります.
戦略は以下の側面で最適化できます.
傾向を判断するためのパラメータのより適切な組み合わせを見つけるために移動平均のサイクルパラメータを最適化
SMA,LWMA など,異なるタイプの移動平均指標をテストして,自分のスタイルに合う指標を見つけます.
逆転信号をより明確で信頼性のあるものにするために,キャンドルスタイク判断規則を調整または追加
ストップ・ロスの戦略を追加する.例えば,ストップ・ロスの追尾,タイム・ストップ・ロスの追加など,単一の損失をさらに制御する.
他の指標,例えば波動性指標,取引量などを組み合わせ,システムの取引信号を豊かにする.
トートル・トレンドフォロー戦略は,全体的にトレンドフォロー戦略を非常に典型的である.トレンドを判断する方法はシンプルで,実装が容易で,同時に一定のリスク管理措置も有する.この戦略は,トレンドトレーディングについて何らかの理解を持ち,安定したリターンを得ることを希望する投資家に適している.継続的に最適化されれば,長期的競争優位性を持つ定量戦略にも成ることができる.
/*backtest start: 2023-12-14 00:00:00 end: 2023-12-21 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // © Aayonga //@version=5 strategy('帆船探险寻找传说', overlay=true) useDateFilter=input.bool(true,title = "启用回测时间范围限定", group = "回测范围") backtesStarDate=input(timestamp("1 Jan 2015"),title = "开始时间", group = "回测范围") backtestEndDate=input(timestamp("1 Jan 2040"),title = "结束时间",group = "回测范围") inTradeWindow= true A = input(50, '计算的周期') shallowsea = ta.highest(A) deepsea= ta.lowest(A) //趋势形成条件 Length1 = input.int(15, title='短期市场平均成本', minval=1, group='市场平均成本') Length2 = input.int(120, title='中期市场平均成本', minval=1, group='市场平均成本') Length3 = input.int(220, title='长期市场平均成本', minval=1, group='市场平均成本') SMA1 = ta.ema(close, Length1) SMA2 = ta.sma(close, Length2) SMA3 = ta.sma(close, Length3) //趋势看多 longTrend=SMA1>SMA3 and open >SMA3 shortTrend=SMA1<SMA3 bullPinBar = ((close > open) and ((open - low) > 0.66* (high - low))) or ((close < open) and ((close - low) > 0.9 * (high - low))) bearPinBar = ((close > open) and ((high - close) > 0.75 * (high - low))) or ((close < open) and ((high - open) >0.9 * (high - low))) if close > shallowsea[5] and shortTrend and inTradeWindow strategy.entry('⛵🎏', strategy.short) if close < deepsea[5] and longTrend and inTradeWindow strategy.entry('🧜', strategy.long) if bullPinBar and inTradeWindow strategy.close('⛵🎏',comment = '🐚') if bearPinBar and inTradeWindow strategy.close('🧜',comment = '🐳') plot(shallowsea,style=plot.style_area, color=color.new(#71bfef, 0)) plot(deepsea, style=plot.style_area,color=color.new(#298bd1, 0))