
이 전략은 암호화폐를 대상으로 하는 지적 에너지화 하위점 반전 거래 전략이다. 이 전략은 다중 시간 프레임 기술과 자기 적응 RSI 지표를 사용하여 시장의 가능한 단기 하위점을 판단하고 하위점 근처에 반전 입구를 하여 초과 수익을 얻는다.
우선, 이 전략은 변화량과 거래량을 계산하여 RSI를 조정하여 시장의 단기 하위점을 판단합니다. 그리고 다중 시간 프레임 기술과 결합하여 더 큰 수준에서 하위점 신호를 결정합니다. RSI 지표선이 0 수준에서 아래로 통과 할 때 구매 신호를 생성합니다.
구체적으로, 적응 RSI 지표의 계산 방법은 다음과 같습니다: 먼저 각 K 선의 변화를 계산하고, 그 다음 K 선의 거래량을 계산하고, 그 다음 변화량을 K 선의 거래량으로 곱하여 그 K 선의 정량력을 얻습니다. 정량력을 RSI로 계산하고, N 주기의 평균값을 취하여 적응 RSI 지표를 얻습니다. 이 지표는 시장의 낮은 지점을 명확하게 판단합니다.
이러한 기반에서 이 전략은 다중 시간 프레임 기술을 도입하여 더 높은 수준의 프레임에서 신호를 판단하여 단기 시장 소음으로 방해받지 않도록합니다. 상위 수준의 평균이 낮은 지점에서 회전하면 이 전략의 구매 시점으로 판단합니다.
이 전략의 가장 큰 장점은 RSI 지표의 적응을 사용하여 시장의 단기 저점을 판단하는 데 있습니다. 이것은 저점 반전 거래에 효과적인 신호를 제공합니다. 또한, 다중 시간 프레임 기술의 추가는 단기 시장 소음으로 방해받지 않도록 신호의 품질을 향상시킵니다.
전통적인 RSI 지표에 비해, 적응형 RSI 지표에는 정량적인 힘의 계산이 추가되어, 빠르게 변화하는 암호화폐 시장에 더 민감하게 반응할 수 있으며, 시장의 낮은 지점을 더 일찍, 더 정확하게 판단할 수 있으며, 이는 낮은 지점 반전 거래의 선초를 제공한다.
또한, 이 전략은 트렌드 추적과 역전 거래의 장점을 모두 갖는다. 추세가 명확하지 않은 시장에서 역전 거래를 활용하여 이익을 얻을 수 있다. 그리고 명확한 황소 시장에서는 트렌드 운영을 추적할 수 있다.
이 전략의 주요 위험은 낮은 점 판단의 정확성이 100% 보장되지 않는다는 것입니다. 시장은 단기간에 종종 엄청난 비합리적인 변동이 있습니다. 낮은 점이 계속 탐색되면 큰 손실 위험이 있습니다.
또한, 다중 시간 프레임 사이에 오차가 발생할 수 있습니다. 높은 시간 프레임 신호가 지연되면 거래 손실이 발생할 수 있습니다.
위험을 제어하기 위해, 이 전략은 비교적 보수적인 손해 중지 메커니즘을 채택하고, 세트 스톱을 설정하여 점차적으로 수익을 최적화한다. 또한 RSI에 적응한 파라미터를 적절히 조정하여 낮은 점 판단의 정확성을 최적화 할 수 있다.
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
RSI 지표의 파라미터를 최적화하여 시장의 낮은 점에 대한 판단 정확도를 높인다. 다른 주기적 파라미터를 시도할 수 있다.
다른 지표들을 추가하여 Confirmation를 하여, 잘못된 신호를 피한다. 예를 들어 합성 교통량 지표 등이다.
손실을 막는 메커니즘을 최적화하고, 손실을 줄이는 비율을 보장하는 전제 하에, 적절한 손실을 막는 폭을 완화하여 더 많은 추세 수익을 얻습니다.
최적화 시간 프레임의 선택, 더 큰 수준에서 신호의 신뢰성을 보장한다. 매일, 주간 등 더 높은 수준의 평균선을 테스트할 수 있다.
이 전략의 효과를 다른 암호화폐 품종에서 테스트하고, 최적의 품종을 선택한다.
이 지능형 하위점 역전 전략은 RSI 지표와 다중 시간 프레임 기술을 적응하여 시장의 가능한 단기 하위점을 판단한다. 이 역전 거래의 특성으로 인해 불확실한 상황에서 초과 수익을 얻을 수 있다. 동시에, 명확한 트렌드 행세를 추적 할 수 있다. 이 전략은 지속적인 최적화를 통해 더 신뢰할 수있는 거래 신호를 얻을 수 있으며, 장기적으로 안정적인 수익을 얻을 수 있다.
/*backtest
start: 2023-11-07 00:00:00
end: 2023-12-07 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// © theCrypster 2020
//@version=4
strategy(title = "Low Scanner strategy crypto", overlay = false, pyramiding=1,initial_capital = 1000, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.075)
strat_dir_input = input(title="Strategy Direction", defval="long", options=["long", "short", "all"])
strat_dir_value = strat_dir_input == "long" ? strategy.direction.long : strat_dir_input == "short" ? strategy.direction.short : strategy.direction.all
strategy.risk.allow_entry_in(strat_dir_value)
leng=1
p1=close[1]
min=input(10)
len55 = timeframe.isintraday and timeframe.multiplier >= 1 ?
min / timeframe.multiplier * 7 :
timeframe.isintraday and timeframe.multiplier < 60 ?
60 / timeframe.multiplier * 24 * 7 : 7
//taken from https://www.tradingview.com/script/Ql1FjjfX-security-free-MTF-example-JD/
tf3 = input("60", type=input.resolution)
ti = change( time(tf3) ) != 0
T_c = fixnan( ti ? close : na )
vrsi = rsi(cum(change(T_c) * volume), leng)
pp=wma(vrsi,len55)
d=(vrsi[1]-pp[1])
min1 =input(1)
len100 = timeframe.isintraday and timeframe.multiplier >= 1 ?
min1 / timeframe.multiplier * 7 :
timeframe.isintraday and timeframe.multiplier < 60 ?
60 / timeframe.multiplier * 24 * 7 : 7
x=ema(d,len100)
//
zx=x/-1
col=zx > 0? color.lime : color.orange
plot(zx,color=col,linewidth=1)
//
tf10 = input("60", title = "Timeframe", type = input.resolution, options = ["1", "5", "15", "30", "60","120", "240","360","720", "D", "W"])
length = input(24, title = "Period", type = input.integer)
shift = input(1, title = "Shift", type = input.integer)
hma(_src, _length)=>
wma((2 * wma(_src, _length / 2)) - wma(_src, _length), round(sqrt(_length)))
hma3(_src, _length)=>
p = length/2
wma(wma(close,p/3)*3 - wma(close,p/2) - wma(close,p),p)
a = security(syminfo.tickerid, tf10, hma(close, length))
b =security(syminfo.tickerid, tf10, hma3(close[1], length)[shift])
//plot(a,color=color.gray)
//plot(b,color=color.yellow)
close_price = close[0]
len = input(25)
linear_reg = linreg(close_price, len, 0)
//plot(linear_reg, color=color.blue, title="LR", linewidth=3)
buy=crossover(linear_reg, b)
sell=crossunder(linear_reg, b)
//
l = crossover(zx,0) or buy
if l
strategy.entry("buy", strategy.long)
per(pcnt) =>
strategy.position_size != 0 ? round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
stoploss=input(title=" stop loss", defval=10, minval=0.01)
los = per(stoploss)
q1=input(title=" qty_percent1", defval=25, minval=1)
q2=input(title=" qty_percent2", defval=25, minval=1)
q3=input(title=" qty_percent3", defval=25, minval=1)
tp1=input(title=" Take profit1", defval=1, minval=0.01)
tp2=input(title=" Take profit2", defval=2, minval=0.01)
tp3=input(title=" Take profit3", defval=3, minval=0.01)
tp4=input(title=" Take profit4", defval=5, minval=0.01)
strategy.exit("x1", qty_percent = q1, profit = per(tp1), loss = los)
strategy.exit("x2", qty_percent = q2, profit = per(tp2), loss = los)
strategy.exit("x3", qty_percent = q3, profit = per(tp3), loss = los)
strategy.exit("x4", profit = per(tp4), loss = los)