3 Trigger Pillar System For ThinkOrSwim

justAnotherTrader

Active member
VIP
VIP Enthusiast

šŸ“ˆ Simple Buy Signal Script: "Reasonable Entry Finder"

J1l4bCs.png


Access to Chart: Chart Setup

Hey traders,
I’m sharing a straightforward script designed to help identify reasonable buy-in points based on three simple pillars:
  • āœ… Reasonable Strength – RSI not oversold, but showing some recovery potential
  • āœ… Reasonable Price – Price below Bollinger Band basis (but not in panic zone)
  • āœ… Reasonable Interest – Elevated relative volume to confirm trader participation
It’s not meant to be flashy or overloaded—just clean signals that help you keep your edge without noise.

🧠 Logic Behind the Setup
Buy Signal triggers when:
  • RSI < 40 (suggesting we’ve pulled back to a healthy zone)
  • Price is under the Bollinger Band basis (a technical discount)
  • Relative volume > 1.5x the average (indicating unusual interest)

Sell Signal (optional) fires when RSI > 60, price is extended above basis, and volume is also elevated.

šŸ·ļø Labels for Quick Visuals
  • RSI value + slope to catch subtle directional shifts
  • Bollinger Band zone (Buy/Sell/Neutral)
  • Relative volume label (Confirms/Neutral/Weak)
  • ā€œBuy Setup Confirmedā€ label when everything lines up

šŸ”½ Chart Display
  • Cyan up arrows = Confirmed buy setups
  • Magenta down arrows = Optional sell zones (if you want to test reversals or trim)

CASE STUDY:
The stock pictured is EVRG, they are a utility company and had two things hurt it recently which caused it to back off its uptrend. 1) They had some one times on their earnings report that reduced net income. Some of that was Higher Depreciation and Amortization because EVRG is investing heavily right now in infrastructure. Notable that this is not a cash reduction and a tax benefit. They also had reduced demand because of a rough winter. 2) The market overloaded Utilities as safe havens recently with the economic headwinds, so its natural that we are starting to see a bit of retrace due to sector rotation now that fears have subsided "some". Based off this I suggest EVRG is a good buy the dip company, but not yet. If you notice the chart below, you'll see the oval I put on the chart at current price levels. This means the stock is currently in a buy zone, also indicated by the label that is lit up green in the top left. It still has a weak RSI and volume is still low, once all 3 of this are working together then I would consider it a buy for a short term swing and possible long term defensive stock with a 5% dividend.

Code:
# === Inputs ===
input rsiLength = 14;
input rsiOverbought = 60;
input rsiOversold = 40;

input bbLength = 20;
input bbMult = 2.0;

input volLength = 20;
input relVolHigh = 1.5;
input relVolLow = 0.8;

input showLabels = yes;
input showArrows = yes;

# === RSI ===
def rsi = RSI(length = rsiLength);

# === Bollinger Bands ===
def basis = Average(close, bbLength);
def dev = bbMult * stdev(close, bbLength);
def upperBB = basis + dev;
def lowerBB = basis - dev;

# === Volume ===
def avgVol = Average(volume, volLength);
def relVol = if avgVol != 0 then volume / avgVol else 0;

# === Buy Condition ===
def buySignal = rsi < rsiOversold and high < basis and relVol > relVolHigh;

# === Sell Condition (Optional) ===
def sellSignal = rsi > rsiOverbought and low > basis and relVol > relVolHigh;

# === Label 1: RSI ===
def rsiSlope = rsi - rsi[1];
AddLabel(showLabels,
    "RSI: (" + Round(rsi, 1) + ", Slope: " +Round(rsiSlope, 1) +")",
    if rsi < rsiOversold then Color.GREEN
    else if rsi > rsiOverbought then Color.RED
    else Color.GRAY
);

# === Label 2: Bollinger Band Position ===
AddLabel(showLabels,
    if high < basis then "BB Buy Zone"
    else if low > basis then "BB Sell Zone"
    else "Price in Range",
    if high < basis then Color.GREEN
    else if low > basis then Color.RED
    else Color.GRAY
);

# === Label 3: Relative Volume ===
AddLabel(showLabels,
    if relVol > relVolHigh then "Volume Confirms"
    else if relVol < relVolLow then "Volume Weak – Wait"
    else "Neutral Volume",
    if relVol > relVolHigh then Color.GREEN
    else if relVol < relVolLow then Color.ORANGE
    else Color.GRAY
);

# === Label 4: Confluence ===
AddLabel(showLabels,
    if buySignal then "Buy Setup Confirmed"
    else "No Setup",
    if buySignal then Color.CYAN else Color.DARK_GRAY
);

# === Arrows ===
plot buyArrow = showArrows and buySignal;
buyArrow.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
buyArrow.SetDefaultColor(Color.CYAN);
buyArrow.SetLineWeight(3);

plot sellArrow = showArrows and sellSignal;
sellArrow.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_DOWN);
sellArrow.SetDefaultColor(Color.MAGENTA);
sellArrow.SetLineWeight(3);

Tips:
1)It helps to have bollinger bands on and RSI so you see whats going on. I also like the CMF as well
2) As with any indicator or system it requires a little common sense and not just pulling the trigger. This is a classical strategy, nothing ground breaking on it. IT just helps you not chase good opportunities
 
Last edited:

Join useThinkScript to post your question to a community of 21,000+ developers and traders.

Not the exact question you're looking for?

Start a new thread and receive assistance from our community.

87k+ Posts
346 Online
Create Post

The Market Trading Game Changer

Join 2,500+ subscribers inside the useThinkScript VIP Membership Club
  • Exclusive indicators
  • Proven strategies & setups
  • Private Discord community
  • ā€˜Buy The Dip’ signal alerts
  • Exclusive members-only content
  • Add-ons and resources
  • 1 full year of unlimited support

Frequently Asked Questions

What is useThinkScript?

useThinkScript is the #1 community of stock market investors using indicators and other tools to power their trading strategies. Traders of all skill levels use our forums to learn about scripting and indicators, help each other, and discover new ways to gain an edge in the markets.

How do I get started?

We get it. Our forum can be intimidating, if not overwhelming. With thousands of topics, tens of thousands of posts, our community has created an incredibly deep knowledge base for stock traders. No one can ever exhaust every resource provided on our site.

If you are new, or just looking for guidance, here are some helpful links to get you started.

What are the benefits of VIP Membership?
VIP members get exclusive access to these proven and tested premium indicators: Buy the Dip, Advanced Market Moves 2.0, Take Profit, and Volatility Trading Range. In addition, VIP members get access to over 50 VIP-only custom indicators, add-ons, and strategies, private VIP-only forums, private Discord channel to discuss trades and strategies in real-time, customer support, trade alerts, and much more. Learn all about VIP membership here.
How can I access the premium indicators?
To access the premium indicators, which are plug and play ready, sign up for VIP membership here.
Back
Top