
이 전략은 RSI 지표를 이용한 단선 거래의 전략이다. RSI 지표와 윌리엄스어 지표를 결합하여 RSI 지표가 과매매 또는 과매매 영역에 진입했을 때 역전 거래하는, 보다 보수적인 단선 거래 전략에 속한다.
이 전략은 다음과 같은 몇 가지 원칙에 기초하고 있습니다.
해파리 거래법을 사용해서 시장이 명백하게 반전될 때만 진입하고, 좀 더 보수적인 거래 방식을 취한다.
RSI 지표를 사용하여 시장의 과매매 현상을 판단한다. RSI 지표선이 과매구역에 진입했을 때 (부정 60 분기선 이상) 또는 과매구역에 진입했을 때 (부정 40 분기선 이하) 시장이 역전되는 중요한 지점에 있음을 나타냅니다. 이 때 역전 거래가 이루어진다.
윌리엄스어 지표와 결합하여 시장의 흐름을 판단한다.어 지표가 세 개의 평행선을 표시할 때만 공백을 고려한다. (빨간 입술선, 백신선, 청선) 아래로 배열할 때만 공백을 고려한다.
RSI 지표의 RSI를 사용하여 RSI 지표 자체의 과매매 현상을 판단하여 이중 필터링 효과를 만듭니다. RSI 지표 선이 과매매 영역에 들어갔을 때만 거래 신호가 발산됩니다. 동시에 RSI 지표의 RSI도 과매매 영역에 들어갑니다.
정지선과 정지선을 설정한다. 가격이 반전되면 정지선이나 정지선에 도달할 때 청산한다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
시장이 뚜렷하게 반전할 때만 입문하는 건전한 해양 거래 전략을 사용하면, 시장이 흔들릴 때 방향을 잃는 큰 위험을 피할 수 있습니다.
RSI 지표를 사용하여 시장의 전환점을 판단합니다. 지표는 간단하고 명확하며 쉽게 작동합니다. RSI의 RSI 설정은 휘파람을 피하고, 이중 필터는 신호의 신뢰성을 향상시킵니다.
어 지표와 결합하여 트렌드 방향을 판단하여 역전 거래를 피한다. 어 지표는 보조 조건으로 필터링 효과를 추가한다.
스톱 스톱 손실 전략을 설정하여 수익을 고정하고 위험을 제어하십시오.
매개 변수를 쉽게 최적화할 수 있다. RSI의 매개 변수와 출전 조건은 다른 시장에 따라 조정, 최적화 전략이 가능하다.
이 전략에는 몇 가지 위험도 있습니다.
RSI 지표가 가짜 신호를 발산할 확률이 있다. RSI 지표는 잘못된 오버 바이 오버 셀 신호를 발산할 수 있다.
스톱포스트를 너무 많이 설정하면 손실이 커질 수 있다. 스톱포스트를 적절히 축소하여 단일 손실을 줄여야 한다.
반전이 RSI 오버 바이 오버 셀 영역에서 반드시 발생하지 않는다. 시장 구조의 변화는 반전점의 변화를 초래할 수 있으며, 적절한 때에 파라미터를 조정한다.
거래 횟수가 적을 수 있고, 장기간 거래가 없는 상황이 있다. 거래 횟수를 증가시키기 위해 적절한 진입 조건을 완화할 수 있다.
시장은 장기간 지속되는 상승 또는 하락으로 인해 단선 거래가 곤경에 처할 수 있습니다. 적시에 포지션 주기를 조정하고 거래 주기를 연장 또는 단축해야합니다.
이 전략은 다음과 같은 방향으로 최적화될 수 있습니다.
RSI의 매개 변수를 최적화하고, 시장에 맞는 오버 바이 지역과 오버 셀 영역의 범위를 조정한다.
어 지표의 매개 변수를 조정하여 트렌드 방향의 정확성을 최적화합니다.
정지 손실을 최적화하여 최대한의 회수 제어와 더 많은 수익을 확보합니다.
KDJ, MACD 등과 같은 다른 지표와 결합하여 신호 정확도를 향상시킵니다.
자동 중지 기능과 추적 중지 기능을 추가하여 단독 손실을 더 잘 제어합니다.
포지션 관리를 최적화하고, 다른 시장 조건에 따라 포지션 크기를 조정하고, 위험을 제어한다.
거래 시기를 최적화하고, 트렌드가 더 뚜렷한 시간대에 거래하십시오.
이 전략은 전체적으로 좀 더 안정적인 단선 거래 전략이다. 이 전략은 좀 더 보수적인 해수욕 거래 전략을 채택하고, 동시에 RSI 지표를 사용하여 반전점을 판단하고, 연어 지표를 보조하여 트렌드 방향을 판단하여, 상하와 같은 고위험 거래를 효과적으로 피할 수 있으며, 안정적인 수익을 잠금 할 수 있다.
/*backtest
start: 2023-11-06 00:00:00
end: 2023-11-07 20:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mohanee
//@version=4
strategy(title="RSI of Ultimate Oscillator [SHORT Selling] Strategy", shorttitle="RSIofUO" , overlay=false, pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=20, initial_capital=10000, currency=currency.USD) //default_qty_value=10, default_qty_type=strategy.fixed,
//Ultimate Oscillator logic copied from TradingView builtin indicator
/////////////////////////////////////////////////////////////////////////////////
length1 = input(5, minval=1), length2 = input(10, minval=1), length3 = input(15, minval=1)
rsiUOLength = input(5, title="RSI UO length", minval=1)
sellLine = input (60, title="Sell at RSIofUO")
coverLine = input (75, title="Cover at RSIofUO")
riskCapital = input(title="Risk % of capital", defval=10, minval=1)
stopLoss=input(3,title="Stop Loss",minval=1)
showUO=input(false, "show Ultimate Oscialltor")
average(bp, tr_, length) => sum(bp, length) / sum(tr_, length)
high_ = max(high, close[1])
low_ = min(low, close[1])
bp = close - low_
tr_ = high_ - low_
avg7 = average(bp, tr_, length1)
avg14 = average(bp, tr_, length2)
avg28 = average(bp, tr_, length3)
out = 100 * (4*avg7 + 2*avg14 + avg28)/7
//Ultimate Oscillator
/////////////////////////////////////////////////////////////////////////////////
//Willimas Alligator copied from TradingView built in Indicator
/////////////////////////////////////////////////////////////////////////////////
smma(src, length) =>
smma = 0.0
smma := na(smma[1]) ? sma(src, length) : (smma[1] * (length - 1) + src) / length
smma
//moving averages logic copied from Willimas Alligator -- builtin indicator in TradingView
sma1=smma(hl2,10)
sma2=smma(hl2,20)
sma3=smma(hl2,50)
//Willimas Alligator
/////////////////////////////////////////////////////////////////////////////////
//drawings
/////////////////////////////////////////////////////////////////////////////////
hline(sellLine, title="Middle Line 60 [Short Here]", color=color.red , linestyle=hline.style_solid)
obLevelPlot = hline(75, title="Overbought", color=color.blue , linestyle=hline.style_dashed)
osLevelPlot = hline(25, title="Oversold", color=color.blue, linestyle=hline.style_dashed)
fill(obLevelPlot, osLevelPlot, title="Background", color=color.blue, transp=90)
rsiUO = rsi(out,rsiUOLength)
ultPlot=plot(showUO==true? out : na, color=color.green, title="Oscillator")
plot(rsiUO, title = "rsiUO" , color=color.purple)
//drawings
/////////////////////////////////////////////////////////////////////////////////
//Strategy Logic
/////////////////////////////////////////////////////////////////////////////////
//Entry--
//Echeck how many units can be purchased based on risk manage ment and stop loss
qty1 = (strategy.equity * riskCapital / 100 ) / (close*stopLoss/100)
//check if cash is sufficient to buy qty1 , if capital not available use the available capital only
qty1:= (qty1 * close >= strategy.equity ) ? (strategy.equity / close) : qty1
strategy.entry(id="SERSIofUO", long=false, qty=qty1, when = sma1<=sma2 and sma2 < sma3 and close<sma2 and crossunder(rsiUO,sellLine) )
//strategy.entry(id="SERSiofUO", long=false, when = sma1< sma2 and crossunder(rsiUO,60) )
barcolor(abs(strategy.position_size)>=1 ? color.purple : na )
bgcolor(abs(strategy.position_size)>=1 ? color.purple : na , transp=70)
//partial exit
strategy.close(id="SERSIofUO", comment="PExit", qty=strategy.position_size/3, when=abs(strategy.position_size)>=1 and close< strategy.position_avg_price and crossover(rsiUO,30) )
strategy.close(id="SERSIofUO", comment="CloseAll", when=abs(strategy.position_size)>=1 and crossover(rsiUO,coverLine) )
//Strategy Logic
/////////////////////////////////////////////////////////////////////////////////