PUMPFUNUSDT trade ideas
PUMPUSDT Showing Strong Accumulation StructurePUMPUSDT is developing a compelling base formation, suggesting a possible imminent rally. Price is currently reacting within a key accumulation zone, where early positioning remains strategic. The structure hints at underlying strength, with momentum gradually shifting in favor of bulls.
If the current support zone holds, the setup favors a multi-leg rally. Immediate targets have been mapped for short-term profit-taking, while extended projections align with the final breakout objectives.
Plan: Accumulate within the marked zone and monitor price reaction closely. A break above the immediate neckline will validate continuation toward midterm and final targets.
Big Gains Ahead As Pump .fun Eyes 0.0041 Breakout MoveHello✌️
Let’s analyze pump .fun’s price action both technically and fundamentally 📈.
🔍Fundamental analysis:
PUMP. FUN is shifting focus to curated CTO tokens with revenue-sharing, but real success depends on turning hype-driven traders into long-term ecosystem users 🔄
📊Technical analysis:
There are strong indications that this may not be the final leg of the move for BYBIT:PUMPUSDT 📈 A further upside of at least 25 percent remains on the table, with 0.0041 as the next key target.
✨We put love into every post!
Your support inspires us 💛 Drop a comment we’d love to hear from you! Thanks, Mad Whale
PUMPUSDT Diamond Pattern PUMPUSDT has been consolidating within a diamond chart pattern on the 4 hour timeframe, following a prolonged downtrend. This type of structure signals potential reversal when occurring after a decline.
Diamond Formation: Price is compressing inside converging and diverging trendlines, creating a symmetrical diamond pattern.
Volume Profile Support: Significant volume support is visible in the $0.00240–$0.00250 range, which may act as a strong demand zone.
EMA Resistance: 50 EMA is currently positioned above the price, serving as dynamic resistance.
Breakout Potential: A breakout above the diamond resistance, especially with increased volume, could target the $0.005 –$0.007 zone, representing a major upside move.
Cheers
Hexa
NYSE:PUMP BYBIT:PUMPUSDT
PUMP Long 5xEntry $0.003057
Long 5x
Entry at bounce off 20EMA on hourly
SL $0.002740
Its a big SL and will move up to $0.003050 once it breaks about the 200EMA on the hourly
1st Target $0.003821, Sell 25% which is trend line, then B/E
Than let it run and add to trade on pullback while keeping B/E
It has lots of room to run and can hold for few weeks
Risk 6/10 as it has big SL and its volatile
Risk goes to 0/10 when B/E
PUMP - back to fun?Hoping to get that internal sweep at 24; in any case I have a small feeling that this corrects a bit higher soon.
Not gonna buy it here at local highs of course, it would be equal distance to first tp and stop, I don't like it.
so either we sweep or come back into discount at least, or I buy on the s/r flip after taking out tp1. much more difficult to execute of course
$PUMP forming structure on the 2H timeframePrice is currently moving within an ascending channel, showing consistent higher-lows and higher-highs — a sign of bullish structure building 📈
The next move depends on whether NYSE:PUMP breaks above the upper trendline or breaks down below support ⚠️
A confirmed breakout could trigger momentum to the upside, while a failure to hold structure may lead to a short-term reversal.
Keep this setup on your radar as volatility picks up 👀
Not financial advice — DYOR! BINANCE:PUMPUSDT.P
Pumpdotfun short to $0.002785Thought I shared this earlier. Shorted pumpdotfun . Aiming for $0.002785
It pumped up a bit...no pun intended but structrally its relatively high and likely to correct down again before continuation up.
DTT strategy applied, learn more about it on my x profile.
Sl: $0.003291....if want to hop on now can use 0.032 sl, a bit tigher to give roughly 1-2 RR and still provide good invalidation.
From Hype to Hesitation: What’s Next for Pump Fun ($PUMP)?Today, I want to break down the recent developments and fundamentals of Pump fun ( BYBIT:PUMPUSDT ) and its token PUMP — a project that initially launched with strong hype but is now facing serious investor concerns .
What is Pump fun?
Pump fun is a memecoin launchpad that allows users to launch and trade memecoins in a gamified, simplified environment. The idea was to create a frictionless way for anyone to generate and speculate on meme tokens, leveraging viral growth and community culture.
Its native token, PUMP , was introduced via an ICO priced at $0.004, with 12.5% of the total 1 trillion supply offered during the sale.
Latest Updates – Past 24 Hours Recap
PUMP Crashes Over 50% After ICO :
The token initially spiked to $0.0068 on launch day (July 16) , but has now dropped over 50%.
This is roughly 14% below its ICO price , creating concerns for short-term investors.
Founder Confirms No Airdrop Anytime Soon:
In a livestream with ThreadGuy , project founder Alon Cohen confirmed:
“ The airdrop is not going to be taking place in the immediate future. ”
While the team still plans to deliver an airdrop, Alon emphasized it must be well-executed and meaningful, not rushed for hype.
The current focus is on long-term growth and ecosystem sustainability, not short-term incentives.
Mixed Investor Sentiment:
High-profile trader Machi Big Brother ( Jeffrey Huang ) reportedly increased his long position in PUMP — even though he’s down over $5.8M on his position.
Meanwhile, two wallets linked to private sale investors dumped over 1.2B PUMP at $0.003 , taking a combined loss of $1.19M.
Declining Volume and Market Cap:
Trading volume has dropped significantly.
PUMP has lost over 40% of its value in the past 7 days.
Short-term holders appear uncertain, while the project team asks for patience and long-term vision.
Fundamental Outlook:
Pump fun’s future now heavily depends on:
The real utility of the platform as a meme coin incubator.
The team’s ability to regain trust after delaying the airdrop.
Whether new features or hype can revive volume and user engagement.
-------------------------------
Now, let's examine the PUMP token from a technical analysis perspective
From the outset, I must say that due to the small number of candlesticks that create the PUMP token, technical analysis may be a bit difficult , but we will use technical analysis tools to analyze this token.
The PUMP token seems to be moving in a descending channel since the beginning of its correction (over -50%) until now, we need a second price bottom to confirm the descending channel.
I expect the PUMP token to rise from the Potential Reversal Zone(PRZ) and near the Support lines to $0.0029(+15%) . PUMP Token increase can also be from the bottom of the ascending channel .
Second target: the upper line of the ascending channel.
Cumulative Long Liquidation Leverage: $0.002810-$0.002530
Cumulative Short Liquidation Leverage: $0.003498-$0.00327
Note: Stop Loss(SL): $0.002391
Please respect each other's ideas and express them politely if you agree or disagree.
Pump fun Analyze (PUMPUSDT), 1-hour time frame.
Be sure to follow the updated ideas.
Do not forget to put a Stop loss for your positions (For every position you want to open).
Please follow your strategy and updates; this is just my Idea, and I will gladly see your ideas in this post.
Please do not forget the ✅' like '✅ button 🙏😊 & Share it with your friends; thanks, and Trade safe.
PUMP/USDT: Whales Buy the Dip as Price Holds Key LevelBINANCE:PUMPUSDT.P price has taken a steep 18% hit in the last 24 hours, but the 2-hour chart shows BINANCE:PUMPUSDT.P price action clinging to a critical Fibonacci support near $0.00259. The token is still trading inside an ascending channel, hinting that the bullish structure hasn’t fully broken yet.
Whales have been scooping up the dip aggressively, adding 5.4 billion PUMP tokens over the past week (a 35.8% jump in their holdings). Despite retail selling pushing netflows positive intraday, big wallets continue to absorb supply. Daily accumulation is also up 3.2% in the last 24 hours, reinforcing the demand floor near current levels.
Meanwhile, long positions dominate the liquidation setup, with $7.88 billion in longs versus just $3.6 billion in shorts. If BINANCE:PUMPUSDT.P price bounces, a cascade of short liquidations could amplify the recovery rally. But failure to defend $0.00259 risks opening the door to $0.00241, putting bulls on the back foot.
For now, the $0.00259–$0.00260 zone is the make-or-break level. Holding above keeps BINANCE:PUMPUSDT.P price inside the bullish channel, setting up a potential retest of $0.00284–$0.00294. A breakdown, however, could flip sentiment sharply bearish.
PUMP | Watching for Base ConfirmationThe sharp downtrend is showing signs of exhaustion as price starts to consolidate and build a potential range.
If we see a sweep and reclaim of the range low, that would confirm the start of a new accumulation phase and signal a potential reversal.
The invalidation for any long attempt is a confirmed breakdown below the deviation or the origin of the reclaim.
Plan:
Wait for a clean sweep and reclaim of the range low to trigger a long entry.
Target resistance levels above, with stops set below the reclaim origin.
The Pump coin is now showing an upward trend | Live AnalysisPump ▶️
The Pump coin has now touched its All Time Low.🕯
The coin is now showing an upward trend.👀
🛫 a Descending Triangle is currently forming a breakout on the 1H chart.
🛫 Making a Ranging Channel on the 4 H Char
🛫 Make A CHoCH (1H)
🛫 Bullish OB (1H)
🛫 Buy Tag (1 H)
🛫 Making Golden Cross (1 H
PUMP | #4h #long — Watching for Breakout Confirmation Early signals for a reversal, but not rushing in.
Some clear bullish divergence on the 4h RSI — first positive sign after an extended downtrend. Price can pop from here, but my plan is to wait for a break and hold above the 4h Order Block + MSS zone (red box) before taking any long entry.
Confirmation is key — I only want to get involved if we reclaim this area with momentum.
Scenario:
If we get a strong breakout and close above the red OB + MSS zone, that’s the first entry trigger for a potential trend reversal.
Until then — standing aside, letting the setup prove itself.
Reasoning:
Bullish RSI divergence often marks the beginning of a reversal, but without a structural breakout, the move can easily fail.
Patience pays off in these high-risk, low-liquidity coins.
PUMP / USDT : Looking Bullish PUMP/USDT Analysis:
PUMP/USDT shows strong bullish potential after breaking out of consolidation. A retest to the box area is likely before a breakout from the trendline resistance. Once the trendline is broken, expect a major rally with a 40-50% potential upside.
Key Levels:
Support: Consolidation Box
Resistance: Trendline
Wait for confirmation of the trendline breakout before entering. Always manage risk with a stop-loss and stay patient for a clear move. The setup looks promising for a solid bullish rally!
Kamal//@version=5
strategy("EMA crossover + RSI filter (Long/Sell) — Simple", overlay=true,
default_qty_type=strategy.percent_of_equity, default_qty_value=10, initial_capital=10000)
// ======= INPUTS (قابل تغییر) =======
fastLen = input.int(9, "Fast EMA length")
slowLen = input.int(21, "Slow EMA length")
rsiLen = input.int(14, "RSI length")
rsiLongMin= input.int(45, "Min RSI for Long (filter)")
rsiShortMax= input.int(55, "Max RSI for Short (filter)")
useShorts = input.bool(false,"Allow Shorts? (if OFF: only close longs on sell)")
atrLen = input.int(14, "ATR length (for SL)")
atrMult = input.float(2.0,"ATR multiplier (for SL)")
takeProfitR = input.float(1.5, "Take Profit (x ATR)", step=0.1)
tradeSizePct = input.float(10, "Position size (% equity)", step=0.1)
// ======= INDICATORS =======
emaFast = ta.ema(close, fastLen)
emaSlow = ta.ema(close, slowLen)
rsiVal = ta.rsi(close, rsiLen)
atrVal = ta.atr(atrLen)
// plot EMAs
plot(emaFast, title="EMA Fast", linewidth=2)
plot(emaSlow, title="EMA Slow", linewidth=2)
// ======= SIGNALS =======
// Long signal: EMA fast cross above slow AND RSI above filter
longSignal = ta.crossover(emaFast, emaSlow) and (rsiVal >= rsiLongMin)
// Sell/Short signal: EMA fast cross below slow AND RSI below filter
shortSignal = ta.crossunder(emaFast, emaSlow) and (rsiVal <= rsiShortMax)
// ======= ENTRY / EXIT =======
// position sizing
strategy.risk.allow_entry_in(strategy.direction.long)
strategy.risk.allow_entry_in(strategy.direction.short)
strategy.order_info(true)
strategy.exit_on_close(true)
strategy.set_max_bars_back(math.max(fastLen, slowLen, rsiLen, atrLen))
// compute SL and TP price levels (absolute)
longStopPrice = close - atrVal * atrMult
longTPPrice = close + atrVal * takeProfitR
shortStopPrice = close + atrVal * atrMult
shortTPPrice = close - atrVal * takeProfitR
// manage position sizing
strategy.risk.allow_entry_in(strategy.direction.long)
strategy.risk.allow_entry_in(strategy.direction.short)
strategy.order_info(true)
strategy.entry("Long", strategy.long, qty_percent=tradeSizePct, when=longSignal)
if useShorts
strategy.entry("Short", strategy.short, qty_percent=tradeSizePct, when=shortSignal)
else
// اگر شورت فعال نیست، سیگنال شورت فقط باعث بستن لانگ میشود
if shortSignal
strategy.close("Long", comment="CloseLong_on_ShortSignal")
// exits for entries (only if the position exists)
// apply TP/SL with strategy.exit (referencing entry id)
strategy.exit("Long_exit", from_entry="Long", stop=longStopPrice, limit=longTPPrice)
if useShorts
strategy.exit("Short_exit", from_entry="Short", stop=shortStopPrice, limit=shortTPPrice)
// ======= VISUAL =======
plotshape(longSignal, title="Long Signal", location=location.belowbar, color=color.new(color.green,0), style=shape.labelup, text="LONG")
plotshape(shortSignal, title="Sell/Short Signal", location=location.abovebar, color=color.new(color.red,0), style=shape.labeldown, text="SELL")
// RSI panel
rsiPlot = plot(rsiVal, title="RSI", display=display.none) // hide in price pane
h1 = hline(50, "RSI 50", color=color.gray, linestyle=hline.style_dotted)
// ======= ALERTS =======
alertcondition(longSignal, title="Long Signal", message="EMA crossover + RSI => LONG")
alertcondition(shortSignal, title="Sell Signal", message="EMA crossover + RSI => SELL/SHORT")
// ======= INFO (print small label) =======
var table info = table.new(position.bottom_right, 1, 1)
if barstate.islast
table.cell(info, 0, 0, text="EMA: " + str.tostring(fastLen) + "/" + str.tostring(slowLen)
+ " RSI:" + str.tostring(rsiLen) + " ATRx:" + str.tostring(atrMult),
text_color=color.white, bgcolor=color.new(color.blue,60))
Ami//@version=5
indicator("EMA + RSI Signals (Light)", overlay=true)
// ==== Inputs ====
fastLen = input.int(9, "Fast EMA length")
slowLen = input.int(21, "Slow EMA length")
rsiLen = input.int(14, "RSI length")
rsiLongMin= input.int(45, "Min RSI for Long")
rsiShortMax= input.int(55, "Max RSI for Sell")
// ==== Calculations ====
emaFast = ta.ema(close, fastLen)
emaSlow = ta.ema(close, slowLen)
rsiVal = ta.rsi(close, rsiLen)
// ==== Signals ====
longSignal = ta.crossover(emaFast, emaSlow) and (rsiVal >= rsiLongMin)
sellSignal = ta.crossunder(emaFast, emaSlow) and (rsiVal <= rsiShortMax)
// ==== Plot EMAs ====
plot(emaFast, color=color.green, linewidth=2)
plot(emaSlow, color=color.red, linewidth=2)
// ==== Plot Signals ====
plotshape(longSignal, title="Long", location=location.belowbar, color=color.green, style=shape.labelup, text="LONG")
plotshape(sellSignal, title="Sell", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// ==== Alerts ====
alertcondition(longSignal, title="Long Alert", message="LONG signal triggered")
alertcondition(sellSignal, title="Sell Alert", message="SELL signal triggered")
Kami//@version=5
indicator("EMA + RSI Signals (Light)", overlay=true)
// ==== Inputs ====
fastLen = input.int(9, "Fast EMA length")
slowLen = input.int(21, "Slow EMA length")
rsiLen = input.int(14, "RSI length")
rsiLongMin= input.int(45, "Min RSI for Long")
rsiShortMax= input.int(55, "Max RSI for Sell")
// ==== Calculations ====
emaFast = ta.ema(close, fastLen)
emaSlow = ta.ema(close, slowLen)
rsiVal = ta.rsi(close, rsiLen)
// ==== Signals ====
longSignal = ta.crossover(emaFast, emaSlow) and (rsiVal >= rsiLongMin)
sellSignal = ta.crossunder(emaFast, emaSlow) and (rsiVal <= rsiShortMax)
// ==== Plot EMAs ====
plot(emaFast, color=color.green, linewidth=2)
plot(emaSlow, color=color.red, linewidth=2)
// ==== Plot Signals ====
plotshape(longSignal, title="Long", location=location.belowbar, color=color.green, style=shape.labelup, text="LONG")
plotshape(sellSignal, title="Sell", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// ==== Alerts ====
alertcondition(longSignal, title="Long Alert", message="LONG signal triggered")
alertcondition(sellSignal, title="Sell Alert", message="SELL signal triggered")
Kami//@version=5
strategy("EMA crossover + RSI filter (Long/Sell) — Simple", overlay=true,
default_qty_type=strategy.percent_of_equity, default_qty_value=10, initial_capital=10000)
// ======= INPUTS (قابل تغییر) =======
fastLen = input.int(9, "Fast EMA length")
slowLen = input.int(21, "Slow EMA length")
rsiLen = input.int(14, "RSI length")
rsiLongMin= input.int(45, "Min RSI for Long (filter)")
rsiShortMax= input.int(55, "Max RSI for Short (filter)")
useShorts = input.bool(false,"Allow Shorts? (if OFF: only close longs on sell)")
atrLen = input.int(14, "ATR length (for SL)")
atrMult = input.float(2.0,"ATR multiplier (for SL)")
takeProfitR = input.float(1.5, "Take Profit (x ATR)", step=0.1)
tradeSizePct = input.float(10, "Position size (% equity)", step=0.1)
// ======= INDICATORS =======
emaFast = ta.ema(close, fastLen)
emaSlow = ta.ema(close, slowLen)
rsiVal = ta.rsi(close, rsiLen)
atrVal = ta.atr(atrLen)
// plot EMAs
plot(emaFast, title="EMA Fast", linewidth=2)
plot(emaSlow, title="EMA Slow", linewidth=2)
// ======= SIGNALS =======
// Long signal: EMA fast cross above slow AND RSI above filter
longSignal = ta.crossover(emaFast, emaSlow) and (rsiVal >= rsiLongMin)
// Sell/Short signal: EMA fast cross below slow AND RSI below filter
shortSignal = ta.crossunder(emaFast, emaSlow) and (rsiVal <= rsiShortMax)
// ======= ENTRY / EXIT =======
// position sizing
strategy.risk.allow_entry_in(strategy.direction.long)
strategy.risk.allow_entry_in(strategy.direction.short)
strategy.order_info(true)
strategy.exit_on_close(true)
strategy.set_max_bars_back(math.max(fastLen, slowLen, rsiLen, atrLen))
// compute SL and TP price levels (absolute)
longStopPrice = close - atrVal * atrMult
longTPPrice = close + atrVal * takeProfitR
shortStopPrice = close + atrVal * atrMult
shortTPPrice = close - atrVal * takeProfitR
// manage position sizing
strategy.risk.allow_entry_in(strategy.direction.long)
strategy.risk.allow_entry_in(strategy.direction.short)
strategy.order_info(true)
strategy.entry("Long", strategy.long, qty_percent=tradeSizePct, when=longSignal)
if useShorts
strategy.entry("Short", strategy.short, qty_percent=tradeSizePct, when=shortSignal)
else
// اگر شورت فعال نیست، سیگنال شورت فقط باعث بستن لانگ میشود
if shortSignal
strategy.close("Long", comment="CloseLong_on_ShortSignal")
// exits for entries (only if the position exists)
// apply TP/SL with strategy.exit (referencing entry id)
strategy.exit("Long_exit", from_entry="Long", stop=longStopPrice, limit=longTPPrice)
if useShorts
strategy.exit("Short_exit", from_entry="Short", stop=shortStopPrice, limit=shortTPPrice)
// ======= VISUAL =======
plotshape(longSignal, title="Long Signal", location=location.belowbar, color=color.new(color.green,0), style=shape.labelup, text="LONG")
plotshape(shortSignal, title="Sell/Short Signal", location=location.abovebar, color=color.new(color.red,0), style=shape.labeldown, text="SELL")
// RSI panel
rsiPlot = plot(rsiVal, title="RSI", display=display.none) // hide in price pane
h1 = hline(50, "RSI 50", color=color.gray, linestyle=hline.style_dotted)
// ======= ALERTS =======
alertcondition(longSignal, title="Long Signal", message="EMA crossover + RSI => LONG")
alertcondition(shortSignal, title="Sell Signal", message="EMA crossover + RSI => SELL/SHORT")
// ======= INFO (print small label) =======
var table info = table.new(position.bottom_right, 1, 1)
if barstate.islast
table.cell(info, 0, 0, text="EMA: " + str.tostring(fastLen) + "/" + str.tostring(slowLen)
+ " RSI:" + str.tostring(rsiLen) + " ATRx:" + str.tostring(atrMult),
text_color=color.white, bgcolor=color.new(color.blue,60))
//@version=5 strategy("EMA crossover + RSI filter (Long/Sell) — //@version=5
strategy("EMA crossover + RSI filter (Long/Sell) — Simple", overlay=true,
default_qty_type=strategy.percent_of_equity, default_qty_value=10, initial_capital=10000)
// ======= INPUTS (قابل تغییر) =======
fastLen = input.int(9, "Fast EMA length")
slowLen = input.int(21, "Slow EMA length")
rsiLen = input.int(14, "RSI length")
rsiLongMin= input.int(45, "Min RSI for Long (filter)")
rsiShortMax= input.int(55, "Max RSI for Short (filter)")
useShorts = input.bool(false,"Allow Shorts? (if OFF: only close longs on sell)")
atrLen = input.int(14, "ATR length (for SL)")
atrMult = input.float(2.0,"ATR multiplier (for SL)")
takeProfitR = input.float(1.5, "Take Profit (x ATR)", step=0.1)
tradeSizePct = input.float(10, "Position size (% equity)", step=0.1)
// ======= INDICATORS =======
emaFast = ta.ema(close, fastLen)
emaSlow = ta.ema(close, slowLen)
rsiVal = ta.rsi(close, rsiLen)
atrVal = ta.atr(atrLen)
// plot EMAs
plot(emaFast, title="EMA Fast", linewidth=2)
plot(emaSlow, title="EMA Slow", linewidth=2)
// ======= SIGNALS =======
// Long signal: EMA fast cross above slow AND RSI above filter
longSignal = ta.crossover(emaFast, emaSlow) and (rsiVal >= rsiLongMin)
// Sell/Short signal: EMA fast cross below slow AND RSI below filter
shortSignal = ta.crossunder(emaFast, emaSlow) and (rsiVal <= rsiShortMax)
// ======= ENTRY / EXIT =======
// position sizing
strategy.risk.allow_entry_in(strategy.direction.long)
strategy.risk.allow_entry_in(strategy.direction.short)
strategy.order_info(true)
strategy.exit_on_close(true)
strategy.set_max_bars_back(math.max(fastLen, slowLen, rsiLen, atrLen))
// compute SL and TP price levels (absolute)
longStopPrice = close - atrVal * atrMult
longTPPrice = close + atrVal * takeProfitR
shortStopPrice = close + atrVal * atrMult
shortTPPrice = close - atrVal * takeProfitR
// manage position sizing
strategy.risk.allow_entry_in(strategy.direction.long)
strategy.risk.allow_entry_in(strategy.direction.short)
strategy.order_info(true)
strategy.entry("Long", strategy.long, qty_percent=tradeSizePct, when=longSignal)
if useShorts
strategy.entry("Short", strategy.short, qty_percent=tradeSizePct, when=shortSignal)
else
// اگر شورت فعال نیست، سیگنال شورت فقط باعث بستن لانگ میشود
if shortSignal
strategy.close("Long", comment="CloseLong_on_ShortSignal")
// exits for entries (only if the position exists)
// apply TP/SL with strategy.exit (referencing entry id)
strategy.exit("Long_exit", from_entry="Long", stop=longStopPrice, limit=longTPPrice)
if useShorts
strategy.exit("Short_exit", from_entry="Short", stop=shortStopPrice, limit=shortTPPrice)
// ======= VISUAL =======
plotshape(longSignal, title="Long Signal", location=location.belowbar, color=color.new(color.green,0), style=shape.labelup, text="LONG")
plotshape(shortSignal, title="Sell/Short Signal", location=location.abovebar, color=color.new(color.red,0), style=shape.labeldown, text="SELL")
// RSI panel
rsiPlot = plot(rsiVal, title="RSI", display=display.none) // hide in price pane
h1 = hline(50, "RSI 50", color=color.gray, linestyle=hline.style_dotted)
// ======= ALERTS =======
alertcondition(longSignal, title="Long Signal", message="EMA crossover + RSI => LONG")
alertcondition(shortSignal, title="Sell Signal", message="EMA crossover + RSI => SELL/SHORT")
// ======= INFO (print small label) =======
var table info = table.new(position.bottom_right, 1, 1)
if barstate.islast
table.cell(info, 0, 0, text="EMA: " + str.tostring(fastLen) + "/" + str.tostring(slowLen)
+ " RSI:" + str.tostring(rsiLen) + " ATRx:" + str.tostring(atrMult),
text_color=color.white, bgcolor=color.new(color.blue,60))