스마트 폼 냉각 전략

RSI VOLUME momentum
생성 날짜: 2025-10-16 14:38:54 마지막으로 수정됨: 2025-10-16 14:38:54
복사: 7 클릭수: 192
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

스마트 폼 냉각 전략 스마트 폼 냉각 전략

, 이건 신세안의 전략이냐?

아세요? 이 전략은 마치 초자연적인 “버블 탐정”과 같습니다. 시장이 피처럼 급격히 상승할 때, 동풍을 따라오지 않고, 버블이 터지는 순간을 참을성 있게 기다립니다. 마치 친구들 사이에서 엄청나게 부자가 된 사람을 보면, 곧 “파산”할지도 모른다는 걸 알죠.

🔍 정책 핵심 논리 공개

비중을 맞추세요!이 전략은 두 가지 아주 똑똑한 시점을 가지고 있습니다.

  1. 스포크 냉각 모드RSI가 70 이상으로 상승하거나 거래량이 1.5 배로 급증하면 전략은 “버블 기간”으로 표시되며 RSI가 60 이하로 떨어질 때까지 기다립니다.
  2. 새로운 고층 함정 모드[가격이 20주기 최고치를 기록하지만 거품 신호가 없는 경우, 직접 공백을 씁니다.]

버스를 기다리는 것처럼, 모든 버스가 탑승하는 것이 아니라, 올바른 버스를 기다리는 것!

얼마나 많은 소들이 위험에 처해있나요?

구덩이 안내서가 왔어요!이 전략의 가장 강력한 부분은 ‘예고 시스템’입니다.

  • 만약 당신이 이미 공백을 하고 있는데 갑자기 다시 거품이 생기기 시작한다면, 당장 도망쳐라!
  • 스톱 스은 2%, 스톱 로스트는 6%, 리스크 수익률은 1:3, 수학적인 기대값은 니다.
  • “공백 금지 구역”이 있고, 위험한 시간에 작동하는 것을 방지합니다.

시각적 인터페이스가 너무 친근합니다.

이 전략의 그래프는 아이폰 인터페이스보다 더 멋집니다!

  • 오렌지색 배경 = 거품이 발생하고 있습니다.
  • 파란색 배경 = 거품이 난 후 빈 구역, 기회는 왔다 💙
  • 빨간색 배경 = 공백이 금지된 지역, 정직하게 기다립니다.
  • 작은 아이콘들이 중요한 지점을 표시하고 있습니다.

어떤 종류의 이 당신에게 적합할까요?

만약 당신이 이런 거래자라면, 이 전략은 당신을 위한 것입니다.

  • 이성적인 사람들은 실패한 사람들을 쫓는 것을 좋아하지 않습니다.
  • ‘빨리 올수록 빨리 떨어질 것’을 믿는 가치투자자
  • 다른 사람들이 탐욕을 품을 때 침착하게 지내는 똑똑한 사람

기억하세요: 시장에는 기회의 부족이 없습니다. 기회에 대한 인내심과 지혜가 부족합니다!✨

전략 소스 코드
/*backtest
start: 2025-09-15 00:00:00
end: 2025-10-14 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT","balance":500000}]
*/

//@version=5
strategy("Pump-Smart Shorting Strategy", overlay=true)

// Inputs
lookbackPeriod = input.int(20, "Lookback Period for New High", minval=5)
minProfitPerc  = input.float(0.02, "Take Profit %", minval=0.001)
stopLossPerc   = input.float(0.06, "Stop Loss %", minval=0.001)
hedgeTokens    = input.int(1, "Hedge Tokens")

// Pump detection inputs
rsiPeriod = input.int(14, "RSI Period")
rsiHigh   = input.float(70, "Pump RSI ≥")
rsiCool   = input.float(60, "Pump cool-off RSI ≤")
volMult   = input.float(1.5, "Volume Pump Multiplier")
pctUp     = input.float(0.05, "1-bar Up % for Pump")
barsWait  = input.int(0, "Bars to wait after pump ends", minval=0, maxval=10)

// Tech
rsi = ta.rsi(close, rsiPeriod)
avgVol = ta.sma(volume, 20)
oneBarUp = (close - close[1]) / close[1]

// Pump on if any strong up-move pattern
pumpOn = (rsi >= rsiHigh) or (volume > avgVol * volMult and oneBarUp > pctUp)

// Track pump state with var and transitions
var bool wasPump = false
pumpStart = not wasPump and pumpOn
pumpEnd   = wasPump and not pumpOn

// Update state each bar
wasPump := pumpOn

// Count bars since pump ended
var int barsSincePumpEnd = 10000
barsSincePumpEnd := pumpEnd ? 0 : math.min(10000, barsSincePumpEnd + 1)

// Define "pump ended and cooled" condition
cooled = (rsi <= rsiCool) and (oneBarUp <= pctUp/2 or volume <= avgVol * (volMult * 0.8))

// Immediate short signal when pump finishes and cooled (with optional wait)
shortAfterPump = (barsSincePumpEnd >= barsWait) and cooled and not pumpOn and strategy.position_size == 0

// Also allow shorts on fresh new highs when not pumping (optional, keep for more entries)
isNewHigh = high > ta.highest(high, lookbackPeriod)[1]
shortOnPeak = isNewHigh and not pumpOn and strategy.position_size == 0

// Define conditions where we DON'T short (for red background)
noShortZone = pumpOn or (isNewHigh and pumpOn) or (barsSincePumpEnd < barsWait) or not cooled

// Preemptive close if pump turns on while short
var float shortEntry = na
inShort = strategy.position_size < 0 and not na(shortEntry)
if inShort and pumpOn
    strategy.close("Short")
    shortEntry := na

// Entry rules: short either right after pump ends OR on new high when not pumping
if (shortAfterPump or shortOnPeak) and strategy.position_size == 0
    strategy.entry("Short", strategy.short, qty=hedgeTokens)
    shortEntry := na

// Track entry price
if strategy.position_size < 0 and na(shortEntry)
    shortEntry := strategy.position_avg_price
if strategy.position_size == 0
    shortEntry := na
inShort := strategy.position_size < 0 and not na(shortEntry)

// TP/SL
tp = shortEntry * (1 - minProfitPerc)
sl = shortEntry * (1 + stopLossPerc)
exitTP = inShort and close <= tp
exitSL = inShort and close >= sl
if exitTP
    strategy.close("Short")
if exitSL
    strategy.close("Short")

// Visuals - REMOVED TEXT FROM ARROWS
plotshape(pumpStart, style=shape.circle, color=color.orange, location=location.abovebar, size=size.tiny)
plotshape(pumpEnd, style=shape.circle, color=color.teal, location=location.abovebar, size=size.tiny)
plotshape(shortAfterPump, style=shape.triangledown, color=color.blue, location=location.abovebar, size=size.small)
plotshape(shortOnPeak, style=shape.triangledown, color=color.red, location=location.abovebar, size=size.tiny)

plot(inShort ? shortEntry : na, color=color.blue, linewidth=2, title="Short Entry")
plot(inShort ? tp : na, color=color.green, linewidth=2, title="TP")
plot(inShort ? sl : na, color=color.red, linewidth=2, title="SL")

// Background colors - ADDED RED NO-SHORT ZONES
bgcolor(pumpOn ? color.new(color.orange, 92) : na, title="Pump Zone")
bgcolor(shortAfterPump ? color.new(color.blue, 92) : na, title="Post-Pump Short Zone")
bgcolor(noShortZone and not pumpOn ? color.new(color.red, 95) : na, title="No Short Zone")