이 전략은 주요 반전 기회를 식별하기 위해 여러 개의 바닥 패턴 지표를 결합하고, 스톱 로스 전략을 따르는 트렌드를 채택하여 스톱 로스를 초과하는 이윤을 목표로합니다.
이 전략은 주로 아래와 같은 지표를 사용하여 하위 반전을 결정합니다.
하위 감수성 지표 (Noro
의향 지표의 확실성 (Certitude of Volition Index, CVI): 상승/하락 분위기의 변화를 결정합니다.
최종 사이클 신호 (Ultimate Cycle Signal, UCS): 이동 평균 이하의 과잉 판매를 감지합니다.
상대적 강도 지수 (RSI): 과잉 판매 상황을 식별합니다.
패턴 조합: 촛불, 핀 바 및 다른 바닥 패턴을 포함합니다.
이 전략은 여러 바닥 지표를 결합하여 바닥 패턴의 수가 매개 변수 설정을 충족하면 구매 신호를 생성합니다. 거짓 브레이크를 필터하기 위해 RSI는 과판 상태에서만 구매를 유발하는 데 사용됩니다.
사용자는 각 하위 지표의 사용 및 매개 변수를 사용자 정의 할 수 있으며, 높은 유연성을 제공합니다. SMA 필터는 하락 추세로 구매를 피합니다.
여러 지표를 사용하여 정확도를 향상
사용자 정의 가능한 매개 변수는 다양한 제품에 적합합니다.
SMA 필터는 최고 구매를 방지합니다.
선택적 인 빨간 촛불은 위험을 줄일 수 있습니다.
경고는 실시간 모니터링을 허용합니다.
여러 지표가 바닥을 놓칠 수 있습니다.
아래쪽 패턴은 항상 반전되지 않습니다.
부피가 역전을 지원하는지 지켜봐야 합니다.
다양한 제품에 대한 매개 변수를 최적화
낮은 비용 기준에 위치 크기를 추가
수익을 확보하기 위해 손해를 멈추는 것을 실행하십시오.
이 전략은 여러 지표로 바닥을 효과적으로 식별하여 스톱 로스를 따르는 트렌드로 위험을 제어합니다. 그러나 볼륨 지원은 모니터링이 필요합니다. 사용자는 제품 특성에 따라 매개 변수를 최적화 할 수 있습니다.
/*backtest start: 2022-10-11 00:00:00 end: 2023-10-17 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // the original indicator is Noro's BottomSensivity v0.6 //@version=4 strategy("Noro's BottomSensivity v0.6 strategy + rsi + Alarm", shorttitle="Bottom 0.6 StRsiAlarm", overlay=true) overSold = input(35) overBought = input(70) botsens = input(defval = 3, minval = 1, maxval = 4, title = "Bottom-Sensivity") smalen = input(defval = 25, minval = 20, maxval = 200, title = "SMA Length") bars = input(defval = 3, minval = 2, maxval = 4, title = "Bars of Locomotive") useloc = input(true, title = "Use bottom-pattern Locomotive?") usepin = input(true, title = "Use bottom-pattern Pin-bar?") usecvi = input(true, title = "Use bottom-indicator CVI?") useucs = input(true, title = "Use bottom-indicator UCS?") usevix = input(true, title = "Use bottom-indicator WVF?") usersi = input(true, title = "Use bottom-indicator RSI?") usered = input(false, title = "Only red candles?") usesma = input(true, title = "Use SMA Filter?") showsma = input(false, title = "Show SMA Filter?") //SMA Filter sma = sma(close, smalen) colsma = showsma == true ? red : na plot(sma, color = colsma) //VixFix method //Start of ChrisMoody's code pd = 22 bbl = 20 mult = 2 lb = 50 ph = .85 pl = 1.01 hp = false sd = false wvf = ((highest(close, pd)-low)/(highest(close, pd)))*100 sDev = mult * stdev(wvf, bbl) midLine = sma(wvf, bbl) lowerBand = midLine - sDev upperBand = midLine + sDev rangeHigh = (highest(wvf, lb)) * ph rangeLow = (lowest(wvf, lb)) * pl //End of ChrisMoody's code //Locomotive mmethod bar = close > open ? 1 : close < open ? -1 : 0 locob = bar == 1 and bar[1] == -1 and bar[2] == -1 and (bar[3] == -1 or bars < 3) and (bar[4] == -1 or bars < 4) ? 1 : 0 //PIN BAR body = abs(close - open) upshadow = open > close? (high - open) : (high - close) downshadow = open > close ? (close - low) : (open - low) pinbar = open[1] > close[1] ? (body[1] > body ? (downshadow > 0.5 * body ? (downshadow > 2 * upshadow ? 1 : 0 ) : 0 ) : 0 ) : 0 //CVI method //Start of LazyBear's code ValC=sma(hl2, 3) bull=-.51 bear=.43 vol=sma(atr(3), 3) cvi = (close-ValC) / (vol*sqrt(3)) cb= cvi <= bull ? green : cvi >=bear ? red : cvi > bull ? blue : cvi < bear ? blue : na bull1 = cvi <= bull bear1 = cvi >= bear bull2 = bull1[1] and not bull1 bear2 = bear1[1] and not bear1 //End of LazyBear's code //UCS method //Start of UCS's code ll = lowest(low, 5) hh = highest(high, 5) diff = hh - ll rdiff = close - (hh+ll)/2 avgrel = ema(ema(rdiff,3),3) avgdiff = ema(ema(diff,3),3) mom = ((close - close[3])/close[3])*1000 SMI = avgdiff != 0 ? (avgrel/(avgdiff/2)*100) : 0 SMIsignal = ema(SMI,3) ucslong = SMI < -35 and mom > 0 and mom[1] < 0 ? 1 : 0 //End of UCS's code //RSI method //Chris Moody's code up = rma(max(change(close), 0), 2) down = rma(-min(change(close), 0), 2) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) rsib = rsi < 10 ? 1 : 0 //Chris Moody's code //sum locobot = useloc == false ? 0 : locob vixfixbot = usevix == false ? 0 : wvf >= upperBand or wvf >= rangeHigh ? 1 : 0 cvibot = usecvi == false ? 0 : bull2 == true ? 1 : 0 ucsbot = useucs == false ? 0 : ucslong == 1 ? 1 : 0 rsibot = usersi == false ? 0 : rsib pinbot = usepin == false ? 0 : pinbar score = vixfixbot + locobot + cvibot + ucsbot + rsibot + pinbot //arrows bottom = usered == false ? usesma == false ? score >= botsens ? 1 : 0 : high < sma and score >= botsens ? 1 : 0 : usesma == false ? score >= botsens and close < open ? 1 : 0 : high < sma and score >= botsens and close < open ? 1 : 0 plotarrow(bottom == 1 ? 1 : na, title="Buy arrow", colorup=lime, maxheight=60, minheight=50, transp=0) data = bottom == 1 plotchar(data, char=" ", text="BUY!", location=location.belowbar, color=green, size=size.small) //Market buy and exit strategy.entry("BUY!", strategy.long, when =(bottom == 1) and(rsi(close,14)<overSold)) strategy.close("BUY!", when = (crossunder(rsi(close,14), overBought))) alarm = bottom == 1 and(rsi(close,14)<overSold) alertcondition(alarm == 1,title="BUY+RSI",message="BUY+RSI")