동적 지원 저항 파업 트렌드 전략

저자:차오장, 날짜: 2023-12-26 15:21:45
태그:

img

전반적인 설명

이 전략은 장기적 지원/저항 파열을 기반으로 트렌드 방향을 판단하고 지원/저항이 깨지면 입장을 입력한다. 2 바로 정상/밸리를 확인하여 2 바의 지연을 확인하는 지크잭을 사용하여 정상과 계곡을 정의한다. 정의된 기간 (21개의 기본값) 에 있는 정상과 계곡의 SMA 사이의 차이를 대체 SR 수준으로 계산한다. 이 아이디어는 synapticEx의 Nebula-Advanced-Dynamic-Support-Resistance 지표에서 유래한다. 저항이 깨지면 길게, 지원이 깨지면 짧게 간다.

전략 논리

이 전략은 트렌드와 거래 신호를 결정하기 위해 다음과 같은 논리를 사용합니다.

  1. 지그자그로 피크/밸리를 확인: 마지막 5 바에서 바 5 피크 < 바 4 피크 < 바 3 피크 > 바 2 피크 > 바 1 피크, 바 3 계곡은 최저 계곡으로 확인됩니다. 가장 높은 피크도 마찬가지로 확인합니다.

  2. 정해진 기간 (예정 21) 에 있는 h h < 0 및 ln > 0의 정점과 도곡의 수를 계산한다. hn>0 및 ln>0의 경우 h hsum/hn의 정점의 평균 수준과 lsum/ln의 도곡의 평균 수준을 계산한다. 그 차이 r는 대체 SR 수준으로 사용된다.

  3. 트렌드 방향을 결정하기 위해 닫기 가격과 동적 저항 lvalr 및 지원 hvalr를 비교합니다. 저항 또는 지원의 파업은 유효한 파업으로 간주됩니다.

  4. 저항의 유효한 파업이 발생했을 때 길게 이동합니다. 지원의 유효한 파업이 발생했을 때 짧게 이동합니다.

이점 분석

이 전략의 장점:

  1. 지그자그로 SR를 확인하면 정확도가 높고, 잘못된 탈출을 피할 수 있습니다.

  2. 장기적인 통계에 근거한 SR는 위험을 줄이기 위해 더 가치가 있습니다.

  3. 대안 SR는 파업 신호의 유효성을 향상시킵니다.

  4. 논리는 간단하고 이해하기 쉬워 양자 거래에 적합합니다.

  5. 사용자 정의 가능한 통계 기간은 다른 주기와 제품에 적합합니다.

위험 분석

이 전략의 위험:

  1. 지그자그로 2박스 지연이 가장 좋은 입문 지점을 놓칠 수 있습니다.

  2. 예측된 SR는 참고용일 뿐이고, 비정상적인 탈출은 여전히 일어날 수 있습니다.

  3. 부적절한 통계 기간은 유효하지 않은 SR로 이어집니다.

  4. 파업 후 가격 인하가 스톱 로드를 유발할 수 있습니다.

  5. 진입 후 가격 변동은 더 큰 손실을 가져옵니다.

해결책은 다음과 같습니다.

  1. 지연을 줄이기 위해 통계 기간을 적절히 단축합니다.

  2. SR를 예측하기 위해 더 많은 요소를 결합합니다.

  3. 다른 기간의 테스트 안정성

  4. 합리적인 스톱 로스 레벨을 설정하세요

  5. 단일 손실을 제한하기 위해 위치 크기를 사용하십시오.

최적화 방향

전략은 아래의 측면에서 최적화 될 수 있습니다:

  1. SR를 예측하기 위해 기계 학습을 사용해서 브레이크아웃 신호의 성공률을 향상시킵니다.

  2. 브레이크오웃 신호의 타당성을 확인하기 위해 CONF 볼륨을 결합합니다. 높은 오픈 인테리스는 브레이크오웃을 더 설득력있게 만듭니다.

  3. SR의 통계를 서로 다른 주기에 기초하여 분류하여 SR의 효율성을 향상시킵니다.

  4. 이윤에 대한 포지션을 추가하고, 수익/손실 균형을 맞추기 위해 트레일 스톱을 설정합니다. 이윤을 잠금하는 동안 더 많은 이익을 얻습니다.

  5. 트렌드를 결정하기 위해 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)

더 많은