Умная стратегия охлаждения пены

RSI VOLUME momentum
Дата создания: 2025-10-16 14:38:54 Последнее изменение: 2025-10-16 14:38:54
Копировать: 7 Количество просмотров: 192
2
Подписаться
319
Подписчики

Умная стратегия охлаждения пены Умная стратегия охлаждения пены

Что это за план Сен-Сен?

Знаете ли вы? Эта стратегия похожа на супер спокойного “пузырькового детектива”! Когда рынок взлетит как сумасшедший, он не будет идти в ногу с ветром, а будет терпеливо ждать момента, когда пузырь лопнет. Как когда видишь безумно богатого человека в кругу друзей, ты знаешь, что он может скоро разориться.

🔍 Открытие ключевой логики стратегии

Внимание!В этой стратегии есть два очень умных момента входа:

  1. Модуль охлажденияКогда RSI поднимается выше 70 или когда объем торгов увеличивается в 1,5 раза, стратегия будет помечена как “пузырь” и затем будет терпеливо ждать, пока RSI опустится ниже 60 и будет считаться пустым.
  2. Новая модель высокой ловушкиЕсли цена достигает 20-циклического максимума, но нет сигналов о появлении пузыря, то следует сделать прямой дисконт.

Это как ждать автобуса, не каждый должен сесть в автобус, нужно ждать нужную группу!

Сколько коров в зоне риска?

Пришло руководство к выходу из ямы!Самая мощная часть этой стратегии - это ее “система предупреждения”:

  • Если вы уже делали пустые дела, но вдруг обнаружили, что вновь начались пузыри, немедленно сбегайте!
  • Стоп-стоп на 2%, стоп-лосс на 6%, риск-прибыль на 1:3.
  • Есть специальная “зона запрета на вакуумирование”, чтобы избежать эксплуатации в опасные часы.

Визуальный интерфейс очень дружелюбный.

Этот график стратегий выглядит лучше, чем интерфейс iPhone!

  • Оранжевый фон = Пузырь в процессе, не входите.
  • Синий фон = пустое пространство после пузыря, пришла возможность 💙
  • Красный фон = запрещенная зона для вакансий, честно говоря.
  • Различные маленькие иконки отмечают ключевые точки.

Какой из них подходит для вас?

Если вы такой трейдер, то эта стратегия для вас:

  • Рационалисты не любят преследовать и убивать.
  • Инвесторы ценностей, которые верят в “быстрое падение, быстрее прибыль”
  • Умные люди, которые любят сохранять спокойствие, когда другие жадные.

Помните, что на рынке никогда не бывает недостатка в возможностях, недостает мудрости терпеливо ждать хороших возможностей! ✨

Исходный код стратегии
/*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")