
RSI 해파리 트렌드 전략은 RSI 지표에 기반한 해파리 지표의 조합으로 트렌드의 진입과 퇴출을 판단한다. 그것은 세 개의 평균을 사용한다. 해파리의 상위 해파리, 치아선, 그리고 입술선, 서로 다른 주기의 RSI를 사용하여 구성한다.
RSI 해파리 트렌드 전략은 RSI 지표를 사용하여 해파리 지표의 세 가지 이동 평균을 구성합니다. 구체적인 설정은 다음과 같습니다:
신호의 판단 논리는 다음과 같습니다.
다중선 신호: 치아선 위에 입술선을 입었을 때, 동시에 치아선 위에 턱선 위에 턱선 위에 턱선 위에 턱선 위에 턱선 위에 턱선 위에 턱선 위에 턱선 위에 턱선 위에 턱선 위에 턱선 위에 턱선 위에 턱선 위에 턱선 위에 턱선 위에 턱선 위에 턱선 위에
공백 신호: 치아선 아래로 입술선을 통과하고, 동시에 상강선 아래로 치아선을 통과하면 공백한다.
이 전략은 동시에 중지 조건과 중단 조건을 설정합니다:
RSI 해킹 트렌드 전략은 다음과 같은 장점이 있습니다.
RSI 해킹 트렌드 전략에는 다음과 같은 위험도 있습니다.
치아선과 입술선의 교차는 가짜 돌파가 발생할 수 있으며, 불필요한 손실을 초래한다. 가짜 돌파의 확률을 줄이기 위해 주기 변수를 적절히 조정할 수 있다.
스톱 손실 설정이 너무 급진적일 수 있으며, 불필요한 스톱 손실의 확률이 높습니다. 스톱 손실 범위를 적절히 완화하거나, 스톱 손실 활성화의 전제 조건으로 다른 조건을 추가할 수 있습니다.
만약 상황이 급격히 악화되어 손해가 발생하거나 보증금이 제대로 효과를 발휘하지 못한다면, 인적 개입이 필요하며, 손해가 제때 중단된다.
다중공간 전환이 자주되면 거래비 부담이 더 크다. 적절한 진입 조건이 완화되어 불필요한 반복이 줄어들 수 있다.
RSI 해킹 트렌드 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.
라인의 파라미터 설정을 최적화하고, 사이클 파라미터를 조정하여 최적의 파라미터 조합을 찾습니다.
새로운 거래량 지표와 같은 필터링 신호와 같은 입력 조건 논리를 최적화합니다.
현황과 보증금 수준에 더 잘 대응할 수 있도록 스톱 스톱 전략 최적화
비정상적인 행위의 노출을 방지하기 위한 긴급 사건 처리 메커니즘을 강화
포지션 개시 알고리즘을 늘리고, 단독 투자금의 비율을 조절하고, 위험을 회피한다.
RSI 낚시 트렌드 전략은 전체적으로 신뢰할 수 있고, 사용하기 쉬운 트렌드 추적 전략이다. 그것은 낚시 지표를 사용하여 트렌드 방향을 판단하고, RSI 지표와 함께 참조 소수점을 설정하여, 트렌드를 효과적으로 고정하고 합리적인 출구점을 설정할 수 있다. 또한, 전략 자체는 강한 유연성과 확장성을 가지고 있으며, 실내 적용 및 후속 최적화를 할 가치가 있다.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// @version=3
// RSI Alligator
// Forked from Author: Reza Akhavan
// Updated by Khalid Salomão
strategy("RSI Alligator Strategy", overlay=false, pyramiding=0, default_qty_type=strategy.cash, default_qty_value=25000, initial_capital=25000, commission_type=strategy.commission.percent, commission_value=0.15, slippage=3)
// === TA LOGIC ===
overBought = input(70, minval=0, maxval=100, title="Over bought")
overSold = input(30, minval=0, maxval=100, title="Over sold")
jawPeriods = input(5, minval=1, title="Jaw Periods")
jawOffset = input(0, minval=0, title="Jaw Offset")
teethPeriods = input(13, minval=1, title="Teeth Periods")
teethOffset = input(0, minval=0, title="Teeth Offset")
lipsPeriods = input(34, minval=1, title="Lips Periods")
lipsOffset = input(0, minval=0, title="Lips Offset")
jaws = rsi(close, jawPeriods)
teeth = rsi(close, teethPeriods)
lips = rsi(close, lipsPeriods)
plot(jaws, color=green, offset=jawOffset, title="Jaw")
plot(teeth, color=red, offset=teethOffset, title="Teeth")
plot(lips, color=blue, offset=lipsOffset, title="Lips")
//
// === Signal logic ===
//
LONG_SIGNAL_BOOLEAN = crossover(teeth, lips) and jaws > teeth
SHORT_SIGNAL_BOOLEAN = crossunder(teeth, lips) and jaws < teeth
// === INPUT BACKTEST DATE RANGE ===
strategyType = input(defval="Long Only", options=["Long & Short", "Long Only", "Short Only"])
FromMonth = input(defval = 7, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2018, title = "From Year", minval = 2017)
ToMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 2020, title = "To Year", minval = 2017)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
window() => true
// === STRATEGY BUY / SELL ENTRIES ===
// TODO: update the placeholder LONG_SIGNAL_BOOLEAN and SHORT_SIGNAL_BOOLEAN to signal
// long and short entries
buy() => window() and LONG_SIGNAL_BOOLEAN
sell() => window() and SHORT_SIGNAL_BOOLEAN
if buy()
if (strategyType == "Short Only")
strategy.close("Short")
else
strategy.entry("Long", strategy.long, comment="Long")
if sell()
if (strategyType == "Long Only")
strategy.close("Long")
else
strategy.entry("Short", strategy.short, comment="Short")
// === BACKTESTING: EXIT strategy ===
sl_inp = input(10, title='Stop Loss %', type=float)/100
tp_inp = input(90, title='Take Profit %', type=float)/100
stop_level = strategy.position_avg_price * (1 - sl_inp)
take_level = strategy.position_avg_price * (1 + tp_inp)
strategy.exit("Stop Loss/Profit", "Long", stop=stop_level, limit=take_level)