이 전략은 최근 최고와 최저로 기준으로 스톱 로스 포인트를 설정하여 트렌드에 빠르게 진입하고 위험을 엄격히 제어합니다. 가격이 연속적으로 상승할 때 긴 포지션을, 가격이 연속적으로 떨어질 때 짧은 포지션을 입력합니다. 포지션을 보유할 때 긴 포지션의 스톱 로스 레벨은 최근 몇 바 중 가장 낮은 수준이며 짧은 포지션의 스톱 로스 레벨은 가장 높은 수준입니다. 이 동적 스톱 로스 접근법은 손실을 엄격하게 제한하면서 트렌드를 효율적으로 파악 할 수 있습니다.
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)