이 전략은 클래식 피보트 포인트를 계산하고 현재 트렌드 방향을 결정하기 위해 RSI 지표를 사용하여 주식의 이중 트렌드를 추적합니다. 중장기 트렌드 거래에 적합합니다.
이 전략은 주로 두 가지 트렌드 추적을 달성하기 위해 다음 단계를 따르고 있습니다.
Pivot, S1, R1, S2, R2 등을 포함한 고전적인 Pivot 포인트를 계산합니다.
가격 트렌드 방향을 결정하기 위해 RSI 지표를 사용하십시오. RSI 80 이상은 과잉 구매 구역이며 20 이하는 과잉 판매 구역입니다.
일일 트렌드 방향을 판단합니다. 닫기 가격이 전날의 R2보다 크면 강한 트렌드입니다. 닫기 가격이 전날의 S2보다 작으면 약한 트렌드입니다.
Pivot 포인트와 RSI 지표를 결합하여 매일 트렌드 방향에 따라 오늘의 거래 결정을 내립니다.
만약 일일 트렌드가 강하다면 (Close > R2) Pivot 하에서 풀백 구매 포인트를 찾거나 S1 아래에서 구매하십시오.
일일 트렌드가 약한 경우 (결결 < S2) 피보트 이상 또는 R1 이상의 판매점을 검색합니다.
스톱 로스 포인트를 설정합니다. 강한 트렌드에서는 스톱 로스는 전날의 S1입니다. 약한 트렌드에서는 스톱 로스는 전날의 R1입니다.
이 전략은 중장기 트렌드를 피보트 포인트로 판단하고, 단기 트렌드와 엔트리 포인트를 결정하기 위해 RSI 등을 사용합니다. 이것은 중장기 거래에 적합한 가격의 이중 트렌드 추적을 허용합니다.
이 전략의 주요 장점은 다음과 같습니다.
중장기 동향과 단기 동향을 추적할 수 있고 시장 변화에 유연하게 적응할 수 있습니다.
피보트 포인트는 트렌드를 판단할 수 있고 중장기 트렌드를 효과적으로 결정할 수 있습니다.
RSI 등은 단기 초고/초판 수준을 판단하여 특정 입점 지점을 결정하는 데 도움을 줄 수 있습니다.
전략 규칙은 명확하고 간단하고 이해하기 쉽습니다.
위험 통제는 명확한 스톱 로스 포인트를 가지고 있습니다.
이 전략의 주요 위험은 다음과 같습니다.
피보트 포인트는 중장기 트렌드를 예측하는 데 실패 할 수 있습니다. 이 매개 변수를 조정하거나 다른 지표와 결합하여 개선 될 수 있습니다.
RSI 등은 잘못된 신호를 줄 수 있습니다. 매개 변수를 조정하거나 다른 지표와 함께 사용할 수 있습니다.
스톱 손실 포인트는 너무 임의적일 수 있으며 스톱 손실이 완전히 발생하지 않도록 할 수 없습니다. 버퍼 영역이 추가 될 수 있습니다.
전략적 인수율은 더 커질 수 있고 심리적 준비와 충분한 자본 지원이 필요합니다.
과도한 거래의 위험이 존재합니다. 과도한 거래를 피하기 위해 개시 조건을 조정할 수 있습니다.
이 전략은 다음과 같은 분야에서 최적화 될 수 있습니다.
다양한 매개 변수 조합을 시도하십시오. 예를 들어 RSI 매개 변수를 조정하고, 피보트 포인트 계산을 최적화하여 최적 매개 변수를 찾으십시오.
KDJ, MACD 등과 같은 다른 지표를 추가하거나 결합하여 신호를 더 정확하고 신뢰할 수 있습니다.
중지 손실 전략을 최적화 예를 들어 후속 중지 손실, 출구 중지 손실 등 중지 손실의 위험을 줄이기 위해.
단일 포지션 손실의 영향을 제한하기 위해 포지션 크기를 최적화하십시오.
과도한 거래를 피하기 위해 입시 조건을 최적화합니다. 필터를 추가 할 수 있습니다.
다른 제품에서 효과를 테스트하고 매개 변수를 조정합니다.
수익을 확보하기 위해 자동 수익 전략을 추가합니다.
이 전략은 피보트 포인트로 중장기 트렌드를 판단하고 단기 트렌드 및 엔트리 포인트를 결정하는 데 도움이되는 RSI 등을 사용하여 가격의 이중 트렌드 추적을 달성합니다. 전반적인 논리는 명확하고 합리적이며 중장기 거래에 잘 작동합니다. 그러나 잘못된 신호의 위험이 있습니다. 매개 변수, 엄격한 스톱 로스 제어 위험을 줄이기 위해 추가 최적화 및 적절한 포지션 사이징 제어. 지속적인 최적화와 개선으로 안정적인 투자 수익을 얻을 수 있습니다.
/*backtest start: 2023-10-01 00:00:00 end: 2023-10-31 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title="swing trade", shorttitle="vinay_swing", overlay=true) pf = input(false,title="Show Filtered Pivots") sd = input(true, title="Show Daily Pivots?") //moving average len = input(50, minval=1, title="Length") src = input(close, title="Source") out = ema(src, len) //RSI INPUT length = input( 7 ) overSold = input( 20 ) overBought = input( 80 ) price = close vrsi = rsi(price, length) // Classic Pivot pivot = (high + low + close ) / 3.0 // Filter Cr bull= pivot > (pivot + pivot[1]) / 2 + .0025 bear= pivot < (pivot + pivot[1]) / 2 - .0025 // Classic Pivots r1 = pf and bear ? pivot + (pivot - low) : pf and bull ? pivot + (high - low) : pivot + (pivot - low) s1 = pf and bull ? pivot - (high - pivot) : pf and bear ? pivot - (high - low) : pivot - (high - pivot) r2 = pf ? na : pivot + (high - low) s2 = pf ? na : pivot - (high - low) BC = (high + low) / 2.0 TC = (pivot - BC) + pivot //Pivot Average Calculation smaP = sma(pivot, 3) //Daily Pivots dtime_pivot = request.security(syminfo.tickerid, 'D', pivot[1]) dtime_pivotAvg = request.security(syminfo.tickerid, 'D', smaP[1]) dtime_r1 = request.security(syminfo.tickerid, 'D', r1[1]) dtime_s1 = request.security(syminfo.tickerid, 'D', s1[1]) dtime_r2 = request.security(syminfo.tickerid, 'D', r2[1]) dtime_s2 = request.security(syminfo.tickerid, 'D', s2[1]) dtime_BC = request.security(syminfo.tickerid, 'D', BC[1]) dtime_TC = request.security(syminfo.tickerid, 'D', TC[1]) offs_daily = 0 plot(sd and dtime_pivot ? dtime_pivot : na, title="Daily Pivot",style=circles, color=fuchsia,linewidth=1) plot(sd and dtime_r1 ? dtime_r1 : na, title="Daily R1",style=circles, color=#DC143C,linewidth=1) plot(sd and dtime_s1 ? dtime_s1 : na, title="Daily S1",style=circles, color=lime,linewidth=1) plot(sd and dtime_r2 ? dtime_r2 : na, title="Daily R2",style=circles, color=maroon,linewidth=1) plot(sd and dtime_s2 ? dtime_s2 : na, title="Daily S2",style=circles, color=#228B22,linewidth=1) plot(sd and dtime_BC ? dtime_BC : na, title="Daily BC",style=circles, color=black,linewidth=1) plot(sd and dtime_TC ? dtime_TC : na, title="Daily TC",style=circles, color=black,linewidth=1) bull1= (close > dtime_r2) bull2= (low < dtime_pivot) or (low < dtime_s1) bull3= dtime_pivot > dtime_pivot[1] bullishenglufing=bull2 and bull3 bullishenglufing1=bull1 and (close > out) and (crossover(vrsi, overBought)) longCondition = bull1[1] and ((low < dtime_TC) or (low < dtime_BC) or (low < dtime_s1)) bear1= (close < dtime_s2) bear2= (high > dtime_pivot) or (high < dtime_r1) bear3= dtime_pivot < dtime_pivot[1] bearishenglufing=bear2 and bear3 bearishenglufing1=bear1 and (close < out) and (crossunder(vrsi, overSold)) shortCondition = bear1[1] and ((high > dtime_BC) or (high > dtime_TC) or (high > dtime_r1)) plotshape(bullishenglufing, style = shape.triangleup, location = location.belowbar, color = green, size = size.tiny) plotshape(bearishenglufing, style = shape.triangledown, location = location.abovebar, color = red, size = size.tiny) if (longCondition) strategy.entry("My Long Entry Id", strategy.long) if (shortCondition) strategy.entry("My Short Entry Id", strategy.short)