
この戦略は,最近の最高値と最低値のストップ・ロスを設定して,迅速にトレンドを切り,リスクを厳格に制御する.価格が連続的に上昇したときに多項を開く,連続的に下落したときに空の項を開く.ポジションを保有するときは,多項ストップ・ロスは,最近の数Kラインの最低価格,空のストップ・ロスは,最近の数Kラインの最高価格である.このダイナミックなストップ方式は,損失を効率的に捉え,同時に損失を厳格に制限する.
inputこの関数は,最大値と最小値の参照周期を設定します.hiLenそしてloLen20 〜 〜 〜ta.highest(high, hiLen)[1]計算する前K線までの最高値hiHighs使用するta.lowest(low, loLen)[1]K線までの最低値を計算するloLows。loLows空券のストップポジションはhiHighs持っていない時は描かない.直観的に確認する.higherCloseslowerClosesisFlatisFlatそして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)