이 전략은 PIVOT 스윙 하이/로 포인트 및 브레이크아웃 신호를 기반으로 암호화 자산의 트렌드 역전을 식별합니다. 브레이크아웃 역전 전략 범주에 속합니다. 이 전략은 먼저 최근 최고 및 최저 가격 포인트를 PIVOT 수준으로 계산하고, 그 다음 가격이 이러한 핵심 수준을 깨는 경우를 감지하여 주요 트렌드 변화를 신호합니다.
PIVOT 최고/하위 점 계산
ta.pivothigh (() 및 ta.pivotlow (() 를 사용하여 사용자 정의 바 룩백 기간 동안 최고 최고 및 최저 낮은 가격을 찾아 PIVOT 포인트를 그래프화합니다.
침투 신호 를 식별 한다
만약 가격이 PIVOT 하위점 이상으로 돌파하거나, PIVOT 높은 지점 아래로 돌파한다면, 전략은 그것을 트렌드 역전 신호로 간주합니다.
필터 조건을 설정합니다
PIVOT 레벨을 의미있는 거리로 돌파하는 가격이 필요하고, 닫는 가격은 150 바 닫는 가격을 경신하기 위해 닫습니다.
출입 및 출입
긴 조건에서 구매 신호를 트리거하고, 출구 조건에서 긴 포지션을 닫습니다. 짧은 설정 규칙에도 마찬가지입니다.
이 전략은 큰 반전을 포착하기 위해 전반적으로 강력하지만 자산별 맞춤형 매개 변수 및 위험 통제가 필요합니다. 추가 최적화 및 보호 경로로 암호화 시장에서 잘 수행 할 수 있습니다.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © nkrastins95 //@version=5 strategy("Swing Hi Lo", overlay=true, margin_long=100, margin_short=100) //-----------------------------------------------------------------------------------------------------------------------// tf = input.timeframe(title="Timeframe", defval="") gr="LENGTH LEFT / RIGHT" leftLenH = input.int(title="Pivot High", defval=10, minval=1, inline="Pivot High",group=gr) rightLenH = input.int(title="/", defval=10, minval=1, inline="Pivot High",group=gr) colorH = input(title="", defval=color.red, inline="Pivot High",group=gr) leftLenL = input.int(title="Pivot Low", defval=10, minval=1, inline="Pivot Low", group=gr) rightLenL = input.int(title="/", defval=10, minval=1, inline="Pivot Low",group=gr) colorL = input(title="", defval=color.blue, inline="Pivot Low",group=gr) //-----------------------------------------------------------------------------------------------------------------------// pivotHigh(ll, rl) => maxLen = 1000 float ph = ta.pivothigh(ll, rl) int offset = 0 while offset < maxLen if not na(ph[offset]) break offset := offset + 1 ph[offset] pivotLow(ll, rl) => maxLen = 1000 float pl = ta.pivotlow(ll, rl) int offset = 0 while offset < maxLen if not na(pl[offset]) break offset := offset + 1 pl[offset] //-----------------------------------------------------------------------------------------------------------------------// ph = request.security(syminfo.tickerid, tf, pivotHigh(leftLenH, rightLenH), barmerge.gaps_off, barmerge.lookahead_on) pl = request.security(syminfo.tickerid, tf, pivotLow(leftLenL, rightLenL), barmerge.gaps_off, barmerge.lookahead_on) drawLabel(_offset, _pivot, _style, _color) => if not na(_pivot) label.new(bar_index[_offset], _pivot, str.tostring(_pivot, format.mintick), style=_style, color=_color, textcolor=#131722) //-----------------------------------------------------------------------------------------------------------------------// VWAP = ta.vwap(ohlc4) longcondition = ta.crossunder(close,pl) and close > close[150] exitcondition = close > ph shortcondition = ta.crossover(close,ph) and close < close[150] covercondition = close < pl strategy.entry("long", strategy.long, when = longcondition) strategy.close("long", when = exitcondition) strategy.entry("Short", strategy.short, when = shortcondition) strategy.close("Short", when = covercondition)