Custom Indicator · RSI Short Grid: Research Exploration in the Early Stages of Market Decline

CN
16 hours ago

In 2025, as the cryptocurrency market experiences increased volatility, have you ever thought about how to use systematic tools to capture that wave of "initial adjustment" when the market first shows signs of fatigue and begins to decline? Today, I will share a set of research indicators—RSI Short Grid. This focuses on the early stages of market weakness, not high-frequency trading, but rather using RSI to confirm momentum exhaustion before laying out a short grid.

Custom Indicator · RSI Short Grid: Research Exploration in the Early Stages of Market Decline_aicoin_Image1

1. What is RSI? Why is it "most valuable" in the early stages of market decline?

RSI (Relative Strength Index) is a classic momentum oscillator indicator invented by J. Welles Wilder in 1978, used to measure the "relative strength" of price increases and decreases. It calculates the average gain over the past N candlesticks (default 14 periods) divided by the average loss, then multiplied by 100, resulting in a value that fluctuates between 0-100.

  • Core Formula: RSI = 100 - (100 / (1 + RS)), where RS = Average Gain / Average Loss.
  • Classic Interpretation: >70 is overbought (potential sell), <30 is oversold (potential buy). However, in a trending market, it can become "blunted"—for example, in the early stages of a decline, when RSI falls from a high position but is not yet extremely oversold, the signal is most sensitive.

Why is it most valuable in the early stages of decline?

Bear market divergence (new price highs but RSI not reaching new highs) signals momentum exhaustion, indicating a weakening trend. In the initial pullback of BTC, RSI often drops from 70 to the 50-60 range, usually accompanied by shrinking trading volume, confirming "initial selling pressure." The traditional "buy the dip at 30" approach is too passive; waiting for RSI to return to neutral + divergence is the starting point for the short grid. Imagine: BTC weekly RSI dropping from 85 to 55 signals an initial decline.

2. Core Principle of RSI Grid: "Asymmetric Capture" Under Momentum Exhaustion

Grid trading is originally an automated tool for ranging markets: setting sell/buy grids within a price range, buying low and selling high during fluctuations. However, in an initial decline, fixed grids can be easily "penetrated"—prices accelerate downward, and adding positions cannot keep up.

The core of the RSI short grid? Use RSI to confirm momentum weakening, then the grid captures the continuation of the initial pullback.

Principle:

  • RSI Filters Initial Fatigue: Only open shorts when RSI falls from overbought (60-70 range) + bear market divergence (high price but low RSI), avoiding false rebounds.
  • Grid Magnifies Adjustments: Dynamically add positions (adjust spacing using ATR), adding one grid for every 1.5x ATR drop, with position increments (5%→8%→12%…, total position <70%).
  • Why the Integration is Effective: When RSI >70, "sometimes the pump is just beginning," but falling below 50 = bear control confirmation. Zignaly's 2025 grid guide suggests starting the grid at neutral RSI (40-60), suitable for initial fluctuations. In short: RSI signals "initial momentum decline," while the grid captures the "initial selling pressure wave." It’s not purely short (which risks rebounds and stop-losses), nor is it holding (which risks missing adjustments). In the 2025 ETF pullback and geopolitical risks, this set acts like a "weakness amplifier."

3. Custom Indicator · RSI Short Grid · Signal Effectiveness

Custom Indicator · RSI Short Grid: Research Exploration in the Early Stages of Market Decline_aicoin_Image2

(Image OKX-BTCUSDT Perpetual Contract 4-hour Cycle)

Custom Indicator · RSI Short Grid: Research Exploration in the Early Stages of Market Decline_aicoin_Image3
(Image OKX-ETHUSDT Perpetual Contract 4-hour Cycle)

4. Custom Indicator · Script Source Code

// @version=2
// Create your custom script here
// Neutral grid for contracts (short above benchmark price, long below benchmark price), currently 10 grids above and below (total 20 grids), hardcoded in the code.

// Set to long or short: 1 - only long, 2 - only short
order_type = 2

// Set take profit ratio, 0.3 means 30%
win_rate = 0.3

// Get the 14-day ATR value from the daily line
atr_value = atr(security(syminfo.tickerid, '1d',close[1]), 14, 1, 'SMMA');

// Calculate rsi6
rsi6 = rsi(close, 6)

// RSI standard value for opening positions
rsiorderstatus = 70

// Determine if conditions for opening long or short are met
var short_state = false

var highprice = 0 var lowprice = 0

ratio = 1.0 // Position size ratio

amount0 = 0.1 // Initial amount
amount1 = amount0 * ratio
amount2 = amount1 * ratio
amount3 = amount2 * ratio
amount4 = amount3 * ratio
amount5 = amount4 * ratio
amount6 = amount5 * ratio
amount7 = amount6 * ratio
amount8 = amount7 * ratio
amount9 = amount8 * ratio
amount10 = amount9 * ratio
amount11 = amount10 * ratio
amount12 = amount11 * ratio
amount13 = amount12 * ratio
amount14 = amount13 * ratio
amount15 = amount14 * ratio
amount16 = amount15 * ratio
amount17 = amount16 * ratio
amount18 = amount17 * ratio
amount19 = amount18 * ratio

// Whether the corresponding short position has been opened, true means a position has been opened.
var shortstatus0 = false var shortstatus1 = false
var shortstatus2 = false var shortstatus3 = false
var shortstatus4 = false var shortstatus5 = false
var shortstatus6 = false var shortstatus7 = false
var shortstatus8 = false var shortstatus9 = false
var shortstatus10 = false var shortstatus11 = false
var shortstatus12 = false var shortstatus13 = false
var shortstatus14 = false var shortstatus15 = false
var shortstatus16 = false var shortstatus17 = false
var shortstatus18 = false var shortstatus19 = false

var shortprices0 = 0 var shortprices1 = 0
var shortprices2 = 0 var shortprices3 = 0
var shortprices4 = 0 var shortprices5 = 0
var shortprices6 = 0 var shortprices7 = 0
var shortprices8 = 0 var shortprices9 = 0
var shortprices10 = 0 var shortprices11 = 0
var shortprices12 = 0 var shortprices13 = 0
var shortprices14 = 0 var shortprices15 = 0
var shortprices16 = 0 var shortprices17 = 0
var shortprices18 = 0 var shortprices19 = 0

var shortwinprices0 = 0
var shortwinprices1 = 0
var shortwinprices2 = 0
var shortwinprices3 = 0
var shortwinprices4 = 0
var shortwinprices5 = 0
var shortwinprices6 = 0
var shortwinprices7 = 0
var shortwinprices8 = 0
var shortwinprices9 = 0
var shortwinprices10 = 0
var shortwinprices11 = 0
var shortwinprices12 = 0
var shortwinprices13 = 0
var shortwinprices14 = 0
var shortwinprices15 = 0
var shortwinprices16 = 0
var shortwinprices17 = 0
var shortwinprices18 = 0
var shortwinprices19 = 0

var base_price = 0

var stopshort0 = false var stopshort1 = false
var stopshort2 = false var stopshort3 = false
var stopshort4 = false var stopshort5 = false
var stopshort6 = false var stopshort7 = false
var stopshort8 = false var stopshort9 = false
var stopshort10 = false var stopshort11 = false
var stopshort12 = false var stopshort13 = false
var stopshort14 = false var stopshort15 = false
var stopshort16 = false var stopshort17 = false
var stopshort18 = false var stopshort19 = false

// Long RSI grid
if(crossup(rsi6, rsiorderstatus) and ( ordertype == 0 or ordertype == 2) ){
short_state := true

diffprice = ceil(atrvalue)
lowprice := close highprice := lowprice + diffprice

// Check if there are existing open positions, execute direct closing
stopshort0 := shortstatus0
stopshort1 := shortstatus1
stopshort2 := shortstatus2
stopshort3 := shortstatus3
stopshort4 := shortstatus4
stopshort5 := shortstatus5
stopshort6 := shortstatus6
stopshort7 := shortstatus7
stopshort8 := shortstatus8
stopshort9 := shortstatus9
stopshort10 := shortstatus10
stopshort11 := shortstatus11
stopshort12 := shortstatus12
stopshort13 := shortstatus13
stopshort14 := shortstatus14
stopshort15 := shortstatus15
stopshort16 := shortstatus16
stopshort17 := shortstatus17
stopshort18 := shortstatus18
stopshort19 := shortstatus19

baseprice := lowprice

// The gap for each grid, 0.01 means 1%.
gap = (highprice - lowprice)/20/base_price

// Organize new grid
shortprices0 := baseprice * (1 + gap * 1)
shortprices1 := baseprice * (1 + gap * 2)
shortprices2 := baseprice * (1 + gap * 3)
shortprices3 := baseprice * (1 + gap * 4)
shortprices4 := baseprice * (1 + gap * 5)
shortprices5 := baseprice * (1 + gap * 6)
shortprices6 := baseprice * (1 + gap * 7)
shortprices7 := baseprice * (1 + gap * 8)
shortprices8 := baseprice * (1 + gap * 9)
shortprices9 := baseprice * (1 + gap * 10)
shortprices10 := baseprice * (1 + gap * 11)
shortprices11 := baseprice * (1 + gap * 12)
shortprices12 := baseprice * (1 + gap * 13)
shortprices13 := baseprice * (1 + gap * 14)
shortprices14 := baseprice * (1 + gap * 15)
shortprices15 := baseprice * (1 + gap * 16)
shortprices16 := baseprice * (1 + gap * 17)
shortprices17 := baseprice * (1 + gap * 18)
shortprices18 := baseprice * (1 + gap * 19)
shortprices19 := baseprice * (1 + gap * 20)

&nbsp; &nbsp;// Take profit prices  
&nbsp; &nbsp;short_win_prices0 := short_prices0 * (1 - win_rate)  
&nbsp; &nbsp;short_win_prices1 := short_prices1 * (1 - win_rate)  
&nbsp; &nbsp;short_win_prices2 := short_prices2 * (1 - win_rate)  
&nbsp; &nbsp;short_win_prices3 := short_prices3 * (1 - win_rate)  
&nbsp; &nbsp;short_win_prices4 := short_prices4 * (1 - win_rate)  
&nbsp; &nbsp;short_win_prices5 := short_prices5 * (1 - win_rate)  
&nbsp; &nbsp;short_win_prices6 := short_prices6 * (1 - win_rate)  
&nbsp; &nbsp;short_win_prices7 := short_prices7 * (1 - win_rate)  
&nbsp; &nbsp;short_win_prices8 := short_prices8 * (1 - win_rate)  
&nbsp; &nbsp;short_win_prices9 := short_prices9 * (1 - win_rate)  
&nbsp; &nbsp;short_win_prices10 := short_prices10 * (1 - win_rate)  
&nbsp; &nbsp;short_win_prices11 := short_prices11 * (1 - win_rate)  
&nbsp; &nbsp;short_win_prices12 := short_prices12 * (1 - win_rate)  
&nbsp; &nbsp;short_win_prices13 := short_prices13 * (1 - win_rate)  
&nbsp; &nbsp;short_win_prices14 := short_prices14 * (1 - win_rate)  
&nbsp; &nbsp;short_win_prices15 := short_prices15 * (1 - win_rate)  
&nbsp; &nbsp;short_win_prices16 := short_prices16 * (1 - win_rate)  
&nbsp; &nbsp;short_win_prices17 := short_prices17 * (1 - win_rate)  
&nbsp; &nbsp;short_win_prices18 := short_prices18 * (1 - win_rate)  
&nbsp; &nbsp;short_win_prices19 := short_prices19 * (1 - win_rate)  

}else if(rsi6 < rsi_order_status){  
&nbsp; &nbsp;short_state := false  
}  

// Long exit conditions  
exit_short0 = (close < short_win_prices0 or stop_short0) and short_status0  
exit_short1 = (close < short_win_prices1 or stop_short1) and short_status1  
exit_short2 = (close < short_win_prices2 or stop_short2) and short_status2  
exit_short3 = (close < short_win_prices3 or stop_short3) and short_status3  
exit_short4 = (close < short_win_prices4 or stop_short4) and short_status4  
exit_short5 = (close < short_win_prices5 or stop_short5) and short_status5  
exit_short6 = (close < short_win_prices6 or stop_short6) and short_status6  
exit_short7 = (close < short_win_prices7 or stop_short7) and short_status7  
exit_short8 = (close < short_win_prices8 or stop_short8) and short_status8  
exit_short9 = (close < short_win_prices9 or stop_short9) and short_status9  
exit_short10 = (close < short_win_prices10 or stop_short10) and short_status10  
exit_short11 = (close < short_win_prices11 or stop_short11) and short_status11  
exit_short12 = (close < short_win_prices12 or stop_short12) and short_status12  
exit_short13 = (close < short_win_prices13 or stop_short13) and short_status13  
exit_short14 = (close < short_win_prices14 or stop_short14) and short_status14  
exit_short15 = (close < short_win_prices15 or stop_short15) and short_status15  
exit_short16 = (close < short_win_prices16 or stop_short16) and short_status16  
exit_short17 = (close < short_win_prices17 or stop_short17) and short_status17  
exit_short18 = (close < short_win_prices18 or stop_short18) and short_status18  
exit_short19 = (close < short_win_prices19 or stop_short19) and short_status19  

exitShortAmount(exitshort0, id='exitshort0', price='market', amount=amount0)
exitShortAmount(exitshort1, id='exitshort1', price='market', amount=amount1)
exitShortAmount(exitshort2, id='exitshort2', price='market', amount=amount2)
exitShortAmount(exitshort3, id='exitshort3', price='market', amount=amount3)
exitShortAmount(exitshort4, id='exitshort4', price='market', amount=amount4)
exitShortAmount(exitshort5, id='exitshort5', price='market', amount=amount5)
exitShortAmount(exitshort6, id='exitshort6', price='market', amount=amount6)
exitShortAmount(exitshort7, id='exitshort7', price='market', amount=amount7)
exitShortAmount(exitshort8, id='exitshort8', price='market', amount=amount8)
exitShortAmount(exitshort9, id='exitshort9', price='market', amount=amount9)
exitShortAmount(exitshort10, id='exitshort10', price='market', amount=amount10)
exitShortAmount(exitshort11, id='exitshort11', price='market', amount=amount11)
exitShortAmount(exitshort12, id='exitshort12', price='market', amount=amount12)
exitShortAmount(exitshort13, id='exitshort13', price='market', amount=amount13)
exitShortAmount(exitshort14, id='exitshort14', price='market', amount=amount14)
exitShortAmount(exitshort15, id='exitshort15', price='market', amount=amount15)
exitShortAmount(exitshort16, id='exitshort16', price='market', amount=amount16)
exitShortAmount(exitshort17, id='exitshort17', price='market', amount=amount17)
exitShortAmount(exitshort18, id='exitshort18', price='market', amount=amount18)
exitShortAmount(exitshort19, id='exitshort19', price='market', amount=amount19)

plotText(exitshort0, title='exitshort0', text='Exit Short 0', refSeries=low, bgColor='green', color='white', fontSize=14, placement='bottom', display=true)
plotText(exitshort1, title='exitshort1', text='Exit Short 1', refSeries=low, bgColor='green', color='white', fontSize=14, placement='bottom', display=true)
plotText(exitshort2, title='exitshort2', text='Exit Short 2', refSeries=low, bgColor='green', color='white', fontSize=14, placement='bottom', display=true)
plotText(exitshort3, title='exitshort3', text='Exit Short 3', refSeries=low, bgColor='green', color='white', fontSize=14, placement='bottom', display=true)
plotText(exitshort4, title='exitshort4', text='Exit Short 4', refSeries=low, bgColor='green', color='white', fontSize=14, placement='bottom', display=true)
plotText(exitshort5, title='exitshort5', text='Exit Short 5', refSeries=low, bgColor='green', color='white', fontSize=14, placement='bottom', display=true)
plotText(exitshort6, title='exitshort6', text='Exit Short 6', refSeries=low, bgColor='green', color='white', fontSize=14, placement='bottom', display=true)
plotText(exitshort7, title='exitshort7', text='Exit Short 7', refSeries=low, bgColor='green', color='white', fontSize=14, placement='bottom', display=true)
plotText(exitshort8, title='exitshort8', text='Exit Short 8', refSeries=low, bgColor='green', color='white', fontSize=14, placement='bottom', display=true)
plotText(exitshort9, title='exitshort9', text='Exit Short 9', refSeries=low, bgColor='green', color='white', fontSize=14, placement='bottom', display=true)
plotText(exitshort10, title='exitshort10', text='Exit Short 10', refSeries=low, bgColor='green', color='white', fontSize=14, placement='bottom', display=true)
plotText(exitshort11, title='exitshort11', text='Exit Short 11', refSeries=low, bgColor='green', color='white', fontSize=14, placement='bottom', display=true)
plotText(exitshort12, title='exitshort12', text='Exit Short 12', refSeries=low, bgColor='green', color='white', fontSize=14, placement='bottom', display=true)
plotText(exitshort13, title='exitshort13', text='Exit Short 13', refSeries=low, bgColor='green', color='white', fontSize=14, placement='bottom', display=true)
plotText(exitshort14, title='exitshort14', text='Exit Short 14', refSeries=low, bgColor='green', color='white', fontSize=14, placement='bottom', display=true)
plotText(exitshort15, title='exitshort15', text='Exit Short 15', refSeries=low, bgColor='green', color='white', fontSize=14, placement='bottom', display=true)
plotText(exitshort16, title='exitshort16', text='Exit Short 16', refSeries=low, bgColor='green', color='white', fontSize=14, placement='bottom', display=true)
plotText(exitshort17, title='exitshort17', text='Exit Short 17', refSeries=low, bgColor='green', color='white', fontSize=14, placement='bottom', display=true)
plotText(exitshort18, title='exitshort18', text='Exit Short 18', refSeries=low, bgColor='green', color='white', fontSize=14, placement='bottom', display=true)
plotText(exitshort19, title='exitshort19', text='Exit Short 19', refSeries=low, bgColor='green', color='white', fontSize=14, placement='bottom', display=true)

if (exitshort0) { shortstatus0 := false
}

if (exitshort1) { shortstatus1 := false
}

if (exitshort2) { shortstatus2 := false
}

if (exitshort3) { shortstatus3 := false
}

if (exitshort4) { shortstatus4 := false
}

if (exitshort5) { shortstatus5 := false
}

if (exitshort6) { shortstatus6 := false
}

if (exitshort7) { shortstatus7 := false
}

if (exitshort8) { shortstatus8 := false
}

if (exitshort9) { shortstatus9 := false
}

if (exitshort10) { shortstatus10 := false
}

if (exitshort11) { shortstatus11 := false
}

if (exitshort12) { shortstatus12 := false
}

if (exitshort13) { shortstatus13 := false
}

if (exitshort14) { shortstatus14 := false
}

if (exitshort15) { shortstatus15 := false
}

if (exitshort16) { shortstatus16 := false
}

if (exitshort17) { shortstatus17 := false
}

if (exitshort18) { shortstatus18 := false
}

if (exitshort19) { shortstatus19 := false
}

// Exit mechanism
if (stopshort0) { stopshort0 := false
}

if (stopshort1) { stopshort1 := false
}

if (stopshort2) { stopshort2 := false
}

if (stopshort3) { stopshort3 := false
}

if (stopshort4) { stopshort4 := false
}

if (stopshort5) { stopshort5 := false
}

if (stopshort6) { stopshort6 := false
}

if (stopshort7) { stopshort7 := false
}

if (stopshort8) { stopshort8 := false
}

if (stopshort9) { stopshort9 := false
}

if (stopshort10) { stopshort10 := false
}

if (stopshort11) { stopshort11 := false
}

if (stopshort12) { stopshort12 := false
}

if (stopshort13) { stopshort13 := false
}

if (stopshort14) { stopshort14 := false
}

if (stopshort15) { stopshort15 := false
}

if (stopshort16) { stopshort16 := false
}

if (stopshort17) { stopshort17 := false
}

if (stopshort18) { stopshort18 := false
}

if (stopshort19) { stopshort19 := false
}

// Short entry conditions
short0 = close > shortprices0 and not shortstatus0 and shortstate short1 = close > shortprices1 and not shortstatus1 and shortstate
short2 = close > shortprices2 and not shortstatus2 and shortstate short3 = close > shortprices3 and not shortstatus3 and shortstate
short4 = close > shortprices4 and not shortstatus4 and shortstate short5 = close > shortprices5 and not shortstatus5 and shortstate
short6 = close > shortprices6 and not shortstatus6 and shortstate short7 = close > shortprices7 and not shortstatus7 and shortstate
short8 = close > shortprices8 and not shortstatus8 and shortstate short9 = close > shortprices9 and not shortstatus9 and shortstate
short10 = close > shortprices10 and not shortstatus10 and shortstate short11 = close > shortprices11 and not shortstatus11 and shortstate
short12 = close > shortprices12 and not shortstatus12 and shortstate short13 = close > shortprices13 and not shortstatus13 and shortstate
short14 = close > shortprices14 and not shortstatus14 and shortstate short15 = close > shortprices15 and not shortstatus15 and shortstate
short16 = close > shortprices16 and not shortstatus16 and shortstate short17 = close > shortprices17 and not shortstatus17 and shortstate
short18 = close > shortprices18 and not shortstatus18 and shortstate short19 = close > shortprices19 and not shortstatus19 and shortstate

enterShortAmount(short0, id = 'short0', price = 'market', amount = amount0)
enterShortAmount(short1, id = 'short1', price = 'market', amount = amount1)
enterShortAmount(short2, id = 'short2', price = 'market', amount = amount2)
enterShortAmount(short3, id = 'short3', price = 'market', amount = amount3)
enterShortAmount(short4, id = 'short4', price = 'market', amount = amount4)
enterShortAmount(short5, id = 'short5', price = 'market', amount = amount5)
enterShortAmount(short6, id = 'short6', price = 'market', amount = amount6)
enterShortAmount(short7, id = 'short7', price = 'market', amount = amount7)
enterShortAmount(short8, id = 'short8', price = 'market', amount = amount8)
enterShortAmount(short9, id = 'short9', price = 'market', amount = amount9)
enterShortAmount(short10, id = 'short10', price = 'market', amount = amount10)
enterShortAmount(short11, id = 'short11', price = 'market', amount = amount11)
enterShortAmount(short12, id = 'short12', price = 'market', amount = amount12)
enterShortAmount(short13, id = 'short13', price = 'market', amount = amount13)
enterShortAmount(short14, id = 'short14', price = 'market', amount = amount14)
enterShortAmount(short15, id = 'short15', price = 'market', amount = amount15)
enterShortAmount(short16, id = 'short16', price = 'market', amount = amount16)
enterShortAmount(short17, id = 'short17', price = 'market', amount = amount17)
enterShortAmount(short18, id = 'short18', price = 'market', amount = amount18)
enterShortAmount(short19, id = 'short19', price = 'market', amount = amount19)

plotText(short0, title='short0', text='Short 0', refSeries=high, bgColor='red', color='white', fontSize=14, placement='top', display=true)
plotText(short1, title='short1', text='Short 1', refSeries=high, bgColor='red', color='white', fontSize=14, placement='top', display=true)
plotText(short2, title='short2', text='Short 2', refSeries=high, bgColor='red', color='white', fontSize=14, placement='top', display=true)
plotText(short3, title='short3', text='Short 3', refSeries=high, bgColor='red', color='white', fontSize=14, placement='top', display=true)
plotText(short4, title='short4', text='Short 4', refSeries=high, bgColor='red', color='white', fontSize=14, placement='top', display=true)
plotText(short5, title='short5', text='Short 5', refSeries=high, bgColor='red', color='white', fontSize=14, placement='top', display=true)
plotText(short6, title='short6', text='Short 6', refSeries=high, bgColor='red', color='white', fontSize=14, placement='top', display=true)
plotText(short7, title='short7', text='Short 7', refSeries=high, bgColor='red', color='white', fontSize=14, placement='top', display=true)
plotText(short8, title='short8', text='Short 8', refSeries=high, bgColor='red', color='white', fontSize=14, placement='top', display=true)
plotText(short9, title='short9', text='Short 9', refSeries=high, bgColor='red', color='white', fontSize=14, placement='top', display=true)
plotText(short10, title='short10', text='Short 10', refSeries=high, bgColor='red', color='white', fontSize=14, placement='top', display=true)
plotText(short11, title='short11', text='Short 11', refSeries=high, bgColor='red', color='white', fontSize=14, placement='top', display=true)
plotText(short12, title='short12', text='Short 12', refSeries=high, bgColor='red', color='white', fontSize=14, placement='top', display=true)
plotText(short13, title='short13', text='Short 13', refSeries=high, bgColor='red', color='white', fontSize=14, placement='top', display=true)
plotText(short14, title='short14', text='Short 14', refSeries=high, bgColor='red', color='white', fontSize=14, placement='top', display=true)
plotText(short15, title='short15', text='Short 15', refSeries=high, bgColor='red', color='white', fontSize=14, placement='top', display=true)
plotText(short16, title='short16', text='Short 16', refSeries=high, bgColor='red', color='white', fontSize=14, placement='top', display=true)
plotText(short17, title='short17', text='Short 17', refSeries=high, bgColor='red', color='white', fontSize=14, placement='top', display=true)
plotText(short18, title='short18', text='Short 18', refSeries=high, bgColor='red', color='white', fontSize=14, placement='top', display=true)
plotText(short19, title='short19', text='Short 19', refSeries=high, bgColor='red', color='white', fontSize=14, placement='top', display=true)

if short0 {
short_status0 := true
}

if short1 {
short_status1 := true
}

if short2 {
short_status2 := true
}

if short3 {
short_status3 := true
}

if short4 {
short_status4 := true
}

if short5 {
short_status5 := true
}

if short6 {
short_status6 := true
}

if short7 {
short_status7 := true
}

if short8 {
short_status8 := true
}

if short9 {
short_status9 := true
}

if short10 {
short_status10 := true
}

if short11 {
short_status11 := true
}

if short12 {
short_status12 := true
}

if short13 {
short_status13 := true
}

if short14 {
short_status14 := true
}

if short15 {
short_status15 := true
}

if short16 {
short_status16 := true
}

if short17 {
short_status17 := true
}

if short18 {
short_status18 := true
}

if short19 {
short_status19 := true
}

5. Summary: Wait for RSI to weaken, then grid layout - the "Cautious Tool" for 2026

RSI short grid is not omnipotent; it only explores the "initial momentum decline" at the beginning of a market downturn. The market oscillates 80% of the time and weakens 20% of the time, but the initial adjustment is the most captureable.

The core? Patiently wait for signals (RSI pullback + divergence), dynamically control risk with grids, keep total positions <70%, and clear when RSI <40.

As 2025 comes to a close, 2026 begins! Stay alert and use this custom indicator system to explore opportunities in a declining market. Trading involves risks; proceed with caution.

Join our community to discuss and grow stronger together!

Official Telegram community: t.me/aicoincn

AiCoin Chinese Twitter: https://x.com/AiCoinzh

Group chat - Wealth Group:

https://www.aicoin.com/link/chat?cid=10013

免责声明:本文章仅代表作者个人观点,不代表本平台的立场和观点。本文章仅供信息分享,不构成对任何人的任何投资建议。用户与作者之间的任何争议,与本平台无关。如网页中刊载的文章或图片涉及侵权,请提供相关的权利证明和身份证明发送邮件到support@aicoin.com,本平台相关工作人员将会进行核查。

Share To
APP

X

Telegram

Facebook

Reddit

CopyLink