この戦略は,最近の最高値と最低値に基づいてストップロスのポイントを設定し,トレンドに迅速に入ってリスクを厳格に制御する.価格が連続して上昇するとロングポジション,価格が連続して落ちるとショートポジションに入ります.ポジションを保持するときは,ロングポジションのストップロスのレベルは最近の数バーの最低値であり,ショートポジションのストップロスのレベルは最高値です.このダイナミックストップロスのアプローチは,損失を厳格に制限しながらトレンドを効率的に把握することができます.
input
ロックバック期間を設定する機能hiLen
そしてloLen
最高値と最低値で 20まで設定しますhiHighs
前のバーまでta.highest(high, hiLen)[1]
そして最も低い低loLows
使用するta.lowest(low, loLen)[1]
.loLows
ロングポジションとhiHighs
簡単な確認のため,平らな状態でグラフ化しないでください.higherCloses
: 最後の3バーは連続してより高い閉じるlowerCloses
:最後の3バーは連続して低い閉じるisFlat
: 現行のポジションがないisFlat
そしてhigherCloses
短縮するisFlat
そしてlowerCloses
.loLows
ショートポジションについては,hiHighs
.簡単に言うと この戦略は 最近の最高値と最低値を使って 遅延停止を設定し 強いトレンドに迅速に突入し 損失を厳格に制限し 効率的にトレンド利益を得ています
この最も高い/最も低い低ストップ戦略は,強力なトレンドを効率的に把握し,リスクを厳格に制御するために価格自体に基づいて動的ストップを設定する.その利点は単純性,有効性,迅速なエントリー,厳格なストップ,および高い適応性である.しかし,不安定な市場,トレンド終了,極端な動きでは不具合で,パラメータ設定に注意を払う必要があります.将来の改善は,トレンドとモメントの確認を追加し,ストップとポジションサイズを最適化することができます.全体として,それは,実践で深く研究と最適化に値する,トレンドをバランスするトレンドキャプチャーとリスク制御をバランスするシンプルで効果的な戦略です.
/*backtest start: 2023-03-02 00:00:00 end: 2024-03-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="Highest high/lowest low stop", overlay=true) // STEP 1: // Make inputs for length of highest high and lowest low hiLen = input.int(20, title="Highest High Lookback", minval=2) loLen = input.int(20, title="Lowest Low Lookback", minval=2) // STEP 2: // Calculate recent extreme high and low hiHighs = ta.highest(high, hiLen)[1] loLows = ta.lowest(low, loLen)[1] // Plot stop values for visual confirmation plot(strategy.position_size > 0 ? loLows : na, style=plot.style_circles, color=color.green, linewidth=3, title="Lowest Low Stop") plot(strategy.position_size < 0 ? hiHighs : na, style=plot.style_circles, color=color.red, linewidth=3, title="Highest High Stop") // Trading conditions for this example strategy higherCloses = close > close[1] and close[1] > close[2] and close[2] > close[3] lowerCloses = close < close[1] and close[1] < close[2] and close[2] < close[3] isFlat = strategy.position_size == 0 // Submit entry orders if isFlat and higherCloses strategy.entry("EL", strategy.long) if isFlat and lowerCloses strategy.entry("ES", strategy.short) // STEP 3: // Submit stops based on highest high and lowest low if strategy.position_size > 0 strategy.exit("XL HH", stop=loLows) if strategy.position_size < 0 strategy.exit("XS LL", stop=hiHighs)