헤저랩스가 설계한 계층적 엔트리 전략의 평균 반전은 금융 시장에서 평균 반전 기법에 초점을 맞춘 고급 거래 전략 스크립트입니다. 이동 평균에 대한 가격 움직임에 기초한 계층적 엔트리에 중점을 둔 체계적인 접근 방식을 선호하는 거래자에게 적합합니다.
이 전략의 중심은 모든 입출출이 회전하는 간단한 이동 평균 (SMA) 이다. 거래자는 다른 거래 스타일과 시간 틀에 맞게 MA 길이를 사용자 정의 할 수 있습니다.
이 전략의 독특한 특징은 인크리멘탈 엔트리 시스템이다. 가격이 특정 비율로 MA에서 벗어날 때 첫 번째 포지션을 시작합니다. 거래자가 정의하는 바와 같이 가격이 MA에서 더 멀어짐에 따라 추가 단계로 추가 엔트리가 이루어집니다. 이것은 증가하는 변동성을 활용하는 것을 목표로합니다.
이 전략은 시장의 변화 조건에 적응하기 위해 가격이 MA보다 낮을 때 길고 MA보다 높을 때 짧게 입점함으로써 지위를 지능적으로 관리합니다.
출구는 가격이 MA에 닿을 때 결정되며 최적화 된 결과를 위해 잠재적 인 반전 지점에서 포지션을 닫는 것이 목표입니다.
calc_on_every_tick가 활성화되면 전략은 빠른 반응을 보장하기 위해 지속적으로 시장을 평가합니다.
증가식 입시로 평균 회귀 전략은 다음과 같은 주요 장점을 가지고 있습니다.
고려해야 할 위험은 다음과 같습니다.
출구 최적화, 트렌드 필터 추가, 위 위험을 완화하기 위해 위치 크기를 줄일 수 있습니다.
이 전략은 다음과 같이 강화될 수 있습니다.
증분 입구와 함께 평균 반전 전략은 체계화된 증수 포지션 사이징 접근 방식을 사용하여 평균 반전 기술에 초점을 맞추고 있습니다. 사용자 정의 설정으로 다른 거래 도구에 적응 할 수 있습니다. 시장 범위에서 잘 수행되며 단기 체계적인 거래자에게 적합합니다.
/*backtest start: 2023-12-29 00:00:00 end: 2024-01-28 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Mean Reversion with Incremental Entry by HedgerLabs", overlay=true, calc_on_every_tick=true) // Input for adjustable settings maLength = input.int(30, title="MA Length", minval=1) initialPercent = input.float(5, title="Initial Percent for First Order", minval=0.01, step=0.01) percentStep = input.float(1, title="Percent Step for Additional Orders", minval=0.01, step=0.01) // Calculating Moving Average ma = ta.sma(close, maLength) // Plotting the Moving Average plot(ma, "Moving Average", color=color.blue) var float lastBuyPrice = na var float lastSellPrice = na // Function to calculate absolute price percentage difference pricePercentDiff(price1, price2) => diff = math.abs(price1 - price2) / price2 * 100 diff // Initial Entry Condition Check Function initialEntryCondition(price, ma, initialPercent) => pricePercentDiff(price, ma) >= initialPercent // Enhanced Entry Logic for Buy and Sell if (low < ma) if (na(lastBuyPrice)) if (initialEntryCondition(low, ma, initialPercent)) strategy.entry("Buy", strategy.long) lastBuyPrice := low else if (low < lastBuyPrice and pricePercentDiff(low, lastBuyPrice) >= percentStep) strategy.entry("Buy", strategy.long) lastBuyPrice := low if (high > ma) if (na(lastSellPrice)) if (initialEntryCondition(high, ma, initialPercent)) strategy.entry("Sell", strategy.short) lastSellPrice := high else if (high > lastSellPrice and pricePercentDiff(high, lastSellPrice) >= percentStep) strategy.entry("Sell", strategy.short) lastSellPrice := high // Exit Conditions - Close position if price touches the MA if (close >= ma and strategy.position_size > 0) strategy.close("Buy") lastBuyPrice := na if (close <= ma and strategy.position_size < 0) strategy.close("Sell") lastSellPrice := na // Reset last order price when position is closed if (strategy.position_size == 0) lastBuyPrice := na lastSellPrice := na