이 전략은 스토카스틱 RSI, EMA 크로스오버 및 VMACD를 통합하여 시장 반전 지점을 식별하며 하락 추세 반전이 임박 할 때 가장 잘 수행됩니다. 조건이 충족되면 구매 신호를 생성합니다.
이 전략은 주로 다음의 지표의 조합에 의존합니다.
스토카스틱 RSI가 과판 지역에서 반등되면 빠른 EMA가 느린 EMA를 넘어서고 동시에 VMACD가 상승하기 시작하면 구매 신호가 생성됩니다. 또한 단기 가격이 10 기간 SMA를 넘으면 구매 보조 신호로 사용됩니다.
이 전략은 이러한 지표의 변화를 실시간으로 추적하고, 고정된 룩백 기간 동안 SMA, EMA 및 기타 정보를 계산합니다. 구매 조건이 활성화되면 고정된 수의 계약으로 구매 및 오픈 포지션을 수행합니다. 그 후 5% 마감 또는 SMA 라인 이하의 가격과 같은 스톱 로스 조건이 활성화되면 스톱 로스로 포지션은 종료됩니다.
이 전략은 여러 지표를 결합하고 시장 전환 기회를 효과적으로 식별 할 수 있습니다. 주요 장점은 다음과 같습니다.
요약하자면, 이 전략은 반전 신호를 효과적으로 포착하고, 어느 정도 하락한 후 긴 포지션을 설정하고, 이로써 이익을 얻을 수 있습니다.
이 전략은 어느 정도 우위를 점하고 있음에도 불구하고 다음과 같은 위험 요소도 있습니다.
위험 을 줄일 수 있는 몇 가지 방법:
전략에 최적화 될 수 있는 주요 분야:
전체적으로 VMACD 웨이브파이더 전략과 VRSI-EMA 크로스오버는 하락 추세 반전 기회를 잡을 수 있습니다. 반전을위한 최적의 타이밍을 결정하기 위해 여러 지표를 결합하여 효과적으로 구매 신호를 생성합니다. 그러나 개선해야 할 몇 가지 영역이 남아 있습니다. 더 이상 최적화되면 라이브 거래에서 전략의 성능이 더 좋을 수 있습니다. 여러 지표의 융합에 기반한 양적 전략의 전형적인 예입니다.
/*backtest start: 2022-11-14 00:00:00 end: 2023-11-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Wavefinder+", overlay=true) length = input(20) confirmBars = input(2) price = close slow = input(12, "Short period") fast = input(26, "Long period") signal = input(9, "Smoothing period") maFast = ema( volume * close, fast ) / ema( volume, fast ) maSlow = ema( volume * close, slow ) / ema( volume, slow ) da = maSlow - maFast maSignal = ema( da, signal ) dm=da-maSignal source = close lengthRSI = input(14, minval=8), lengthStoch = input(14, minval=5) smoothK = input(3,minval=3), smoothD = input(3,minval=3) OverSold = input(25), OverBought = input(75) rsi1 = rsi(source, lengthRSI) rsi2= rsi(low, 20) k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK) d = sma(k, smoothD) k1= sma(stoch(rsi2, rsi2, rsi2, lengthStoch), smoothK) d1= sma(k1, smoothD) delta=k-d1 ma = ema(low, length) ema5= ema(price,20) sma= sma(price,10) bcond = price < ma lcond = price> ema5 bcount = 0 lcount= 0 bcount := bcond ? nz(bcount[1]) + 1 : 0 lcount := lcond ? nz(lcount[1]) + 1 : 0 if (lcount>1 and change(k)>3 and k>d and k<55 and rising(dm,1)) or ( k[1]-k[2]<-2 and k-k[1]>5 and k>35 and k<80) or (ma-sma>0.05*sma and rising(sma,3) and rising(dm,2)) strategy.entry("Long", strategy.long, qty=10000/close) if (bcount == confirmBars) strategy.close("Long") if close<0.99*sma strategy.close("Long") plot(0.99*sma) plot(ma) //hline(OverSold,color=blue) //hline(OverBought,color=blue) //plot(d, color=red) //plot(k, color=green,title="k-line") //(close-close[3]<-0.05*close[3]) or (close-close[2]<-0.05*close[2]) or (close-close[2]<-0.05*close[2]) or (close-close[4]<-0.05*close[4]) or //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)