이 전략은 장기적 지원/저항 파열을 기반으로 트렌드 방향을 판단하고 지원/저항이 깨지면 입장을 입력한다. 2 바로 정상/밸리를 확인하여 2 바의 지연을 확인하는 지크잭을 사용하여 정상과 계곡을 정의한다. 정의된 기간 (21개의 기본값) 에 있는 정상과 계곡의 SMA 사이의 차이를 대체 SR 수준으로 계산한다. 이 아이디어는 synapticEx
이 전략은 트렌드와 거래 신호를 결정하기 위해 다음과 같은 논리를 사용합니다.
지그자그로 피크/밸리를 확인: 마지막 5 바에서 바 5 피크 < 바 4 피크 < 바 3 피크 > 바 2 피크 > 바 1 피크, 바 3 계곡은 최저 계곡으로 확인됩니다. 가장 높은 피크도 마찬가지로 확인합니다.
정해진 기간 (예정 21) 에 있는 h h < 0 및 ln > 0의 정점과 도곡의 수를 계산한다. hn>0 및 ln>0의 경우 h hsum/hn의 정점의 평균 수준과 lsum/ln의 도곡의 평균 수준을 계산한다. 그 차이 r는 대체 SR 수준으로 사용된다.
트렌드 방향을 결정하기 위해 닫기 가격과 동적 저항 lvalr 및 지원 hvalr를 비교합니다. 저항 또는 지원의 파업은 유효한 파업으로 간주됩니다.
저항의 유효한 파업이 발생했을 때 길게 이동합니다. 지원의 유효한 파업이 발생했을 때 짧게 이동합니다.
이 전략의 장점:
지그자그로 SR를 확인하면 정확도가 높고, 잘못된 탈출을 피할 수 있습니다.
장기적인 통계에 근거한 SR는 위험을 줄이기 위해 더 가치가 있습니다.
대안 SR는 파업 신호의 유효성을 향상시킵니다.
논리는 간단하고 이해하기 쉬워 양자 거래에 적합합니다.
사용자 정의 가능한 통계 기간은 다른 주기와 제품에 적합합니다.
이 전략의 위험:
지그자그로 2박스 지연이 가장 좋은 입문 지점을 놓칠 수 있습니다.
예측된 SR는 참고용일 뿐이고, 비정상적인 탈출은 여전히 일어날 수 있습니다.
부적절한 통계 기간은 유효하지 않은 SR로 이어집니다.
파업 후 가격 인하가 스톱 로드를 유발할 수 있습니다.
진입 후 가격 변동은 더 큰 손실을 가져옵니다.
해결책은 다음과 같습니다.
지연을 줄이기 위해 통계 기간을 적절히 단축합니다.
SR를 예측하기 위해 더 많은 요소를 결합합니다.
다른 기간의 테스트 안정성
합리적인 스톱 로스 레벨을 설정하세요
단일 손실을 제한하기 위해 위치 크기를 사용하십시오.
전략은 아래의 측면에서 최적화 될 수 있습니다:
SR를 예측하기 위해 기계 학습을 사용해서 브레이크아웃 신호의 성공률을 향상시킵니다.
브레이크오웃 신호의 타당성을 확인하기 위해 CONF 볼륨을 결합합니다. 높은 오픈 인테리스는 브레이크오웃을 더 설득력있게 만듭니다.
SR의 통계를 서로 다른 주기에 기초하여 분류하여 SR의 효율성을 향상시킵니다.
이윤에 대한 포지션을 추가하고, 수익/손실 균형을 맞추기 위해 트레일 스톱을 설정합니다. 이윤을 잠금하는 동안 더 많은 이익을 얻습니다.
트렌드를 결정하기 위해 MA를 결합하고, 트렌드가 없는 맹목적인 장기/단순을 피합니다.
결론적으로, 이것은 견고한 트렌드 추적 전략입니다. 트렌드 방향을 결정하고 적절한 위험 통제를 하는 데 높은 정확성을 가지고 있습니다. 그러나 지연은 모든 긴/단 신호에서 이익을 얻는 것을 불가능하게 만듭니다. 따라서 경험이 많은 양 트레이더에게 자신의 전략과 결합 할 수 있습니다. 통계 기간을 최적화하고 다른 지표 또는 모델을 통합함으로써 효율적인 트렌드 추적 전략이 될 수 있습니다.
/*backtest start: 2023-11-25 00:00:00 end: 2023-12-25 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("SR TREND STRATEGY", shorttitle="SR TREND", overlay=true, calc_on_order_fills=true) //based on by synapticEx SR indicator https://www.tradingview.com/script/O0F675Kv-Nebula-Advanced-Dynamic-Support-Resistance/ length = input(title="SR lookbak length", type=input.integer, defval=21) h = bar_index>5 and high[5]<high[4] and high[4]<high[3] and high[3]>high[2] and high[2]>high[1] ? 1 : 0 l = bar_index>5 and low[5]>low[4] and low[4]>low[3] and low[3]<low[2] and low[2]<low[1] ? 1 : 0 ln = sum(l, length) hn = sum(h, length) hval = h>0 ? high[3] : 0 lval = l>0 ? low[3] : 0 lsum = sum(lval, length) hsum = sum(hval, length) r = ln>0 and hn>0 ? abs((hsum/hn) - (lsum/ln)): 0 float lvalc = na float lvalr = na float hvalc = na float hvalr = na lvalc := lval and r>0 ? lval : lvalc[1] lvalr := lval and r>0 ? lval+r : lvalr[1] hvalc := hval and r>0 ? hval : hvalc[1] hvalr := hval and r>0 ? hval-r : hvalr[1] int trend=0 trend:=close > lvalr and close > hvalr ? 1 : close < lvalr and close < hvalr ? -1 : trend[1] strategy.close("Long", when=trend==-1) strategy.close("Short", when=trend==1) strategy.entry("Long", strategy.long, when=trend==1 and close>hvalc) strategy.entry("Short", strategy.short, when=trend==-1 and close<lvalc) int long=0 int short=0 long:= trend==1 and close>hvalc ? 1 : trend==-1 ? -1 : long[1] short:= trend==-1 and close<lvalc ? 1 : trend==1 ? -1 : short[1] barcolor(long>0? color.green : short>0? color.red : trend>0? color.white: trend<0 ? color.orange : color.blue)