이 전략은 적응 변동 범위를 형성하기 위해 특정 최근 기간 동안 가장 높고 가장 낮은 거래량을 계산합니다. 현재 주기의 거래량이이 범위를 넘을 때 거래 신호가 생성됩니다. 신호 방향은 시장에서 갑작스러운 큰 단일 거래를 추적하는 간단하고 효과적인 전략인 진 양 촛불로 결정됩니다.
핵심 논리는 가장 최근의 N 사이클에서 긍정적 및 부정적인 거래 양의 가장 높고 낮은 값을 계산하여 적응 변동 범위를 형성하는 것입니다. 판단을 완료하기 위해 인 양 선 신호를 고려하면서이 범위에 기반하여 현재 기간에 돌파구가 발생하는지 여부를 결정합니다.
특정 계산 과정은 다음과 같습니다.
이 전략의 주요 장점은 다음과 같습니다.
이 전략은 또한 몇 가지 위험을 안고 있습니다.
사이클 매개 변수를 조정하고 필터링을 위한 다른 지표를 통합하면 최적화 될 수 있습니다.
전략은 여러 가지 방법으로 최적화 될 수 있습니다.
이 전략은 전반적으로 간단하고 실용적입니다. 적응 범위와 볼륨 가격 분석을 결합함으로써 일방적인 폭발적인 시장을 효과적으로 포착 할 수 있습니다. 그러나 잘못된 신호의 위험도 있습니다. 최대 영향을 달성하기 전에 적절한 매개 변수 조정과 보완 도구가 필요합니다.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © EvoCrypto //@version=4 strategy("Ranged Volume Strategy - evo", shorttitle="Ranged Volume", format=format.volume) // INPUTS { Range_Length = input(5, title="Range Length", minval=1) Heikin_Ashi = input(true, title="Heikin Ashi Colors") Display_Bars = input(true, title="Show Bar Colors") Display_Break = input(true, title="Show Break-Out") Display_Range = input(true, title="Show Range") // } // SETTINGS { Close = Heikin_Ashi ? security(heikinashi(syminfo.tickerid), timeframe.period, close) : close Open = Heikin_Ashi ? security(heikinashi(syminfo.tickerid), timeframe.period, open) : open Positive = volume Negative = -volume Highest = highest(volume, Range_Length) Lowest = lowest(-volume, Range_Length) Up = Highest > Highest[1] and Close > Open Dn = Highest > Highest[1] and Close < Open Volume_Color = Display_Break and Up ? color.new(#ffeb3b, 0) : Display_Break and Dn ? color.new(#f44336, 0) : Close > Open ? color.new(#00c0ff, 60) : Close < Open ? color.new(#000000, 60) : na // } //PLOTS { plot(Positive, title="Positive Volume", color=Volume_Color, style=plot.style_histogram, linewidth=4) plot(Negative, title="Negative Volume", color=Volume_Color, style=plot.style_histogram, linewidth=4) plot(Display_Range ? Highest : na, title="Highest", color=color.new(#000000, 0), style=plot.style_line, linewidth=2) plot(Display_Range ? Lowest : na, title="Lowest", color=color.new(#000000, 0), style=plot.style_line, linewidth=2) barcolor(Display_Bars ? Volume_Color : na) // } if (Up) strategy.entry("Long Entry", strategy.long) if (Dn) strategy.entry("Short Entry", strategy.short)