밴드패스 필터링 트렌드 추출 전략 (Bandpass Filtering Trend Extraction Strategy) 은 밴드패스 필터를 기반으로 한 주식 트렌드 추적 전략이다. 이는 기하급수적으로 가중된 이동 평균과 밴드패스 필터링을 사용하여 가격 시리즈를 처리하고 진입 및 출구 신호로 가격의 트렌드 구성 요소를 추출합니다.
이 전략은 먼저 이동 평균의 길이를 제어하기 위해 길이와 델타 매개 변수를 조정하여 이중 기하급수적 이동 평균을 구성합니다. 다음에는 일련의 수학적 변환을 사용하여 가격 시리즈에서 트렌드 구성 요소를 추출하고 xBandpassFilter 변수에 저장합니다. 마지막으로 xBandpassFilter의 간단한 이동 평균, xMean을 입력 및 출력 지표로 계산합니다.
xMean가 트리거 레벨을 넘어서면 길게, 그 아래를 넘어가면 짧게 됩니다. 트리거 레벨을 조정함으로써 입출동의 민감도를 제어할 수 있습니다.
길이를 줄이면 지연 문제를 개선할 수 있습니다.
이 전략은 강력한 트렌딩 시장에서 좋은 성과로 비교적 안정적입니다. 여러 시장 환경에서 추가 최적화가 더 안정적으로 수익성을 올릴 수 있습니다. 추가 연구와 응용을 보장합니다.
/*backtest start: 2022-12-27 00:00:00 end: 2024-01-02 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version = 2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 14/12/2016 // The related article is copyrighted material from Stocks & Commodities Mar 2010 // // You can use in the xPrice any series: Open, High, Low, Close, HL2, HLC3, OHLC4 and ect... // You can change long to short in the Input Settings // Please, use it only for learning or paper trading. Do not for real trading. //////////////////////////////////////////////////////////// strategy(title="Extracting The Trend Strategy Backtest") Length = input(20, minval=1) Delta = input(0.5) Trigger = input(0) reverse = input(false, title="Trade reverse") hline(Trigger, color=blue, linestyle=line) xPrice = hl2 beta = cos(3.1415 * (360 / Length) / 180) gamma = 1 / cos(3.1415 * (720 * Delta / Length) / 180) alpha = gamma - sqrt(gamma * gamma - 1) xBandpassFilter = 0.5 * (1 - alpha) * (xPrice - xPrice[2]) + beta * (1 + alpha) * nz(xBandpassFilter[1]) - alpha * nz(xBandpassFilter[2]) xMean = sma(xBandpassFilter, 2 * Length) pos = iff(xMean > Trigger, 1, iff(xMean < Trigger, -1, nz(pos[1], 0))) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) barcolor(possig == -1 ? red: possig == 1 ? green : blue ) plot(xMean, color=red, title="ExTrend")