LancerB-1B SonicDominance For ThinkOrSwim

Awesome - They are not actually the same class of indicator. They only look similar because both are smoothed and recursive.
This script is full of hidden constants:
  • 0.35
  • heartbeatSeconds
  • heartbeatLookback
  • entropyLength
Those will behave very differently between:
  • SPX
  • TSLA
  • futures
The Z-score engine answers the question "Are we stretched relative to today’s behavior and did momentum turn?” This new engine answers “Are we near a detected cycle swing and is the market orderly?” Those are different trading philosophies. They solve different problems. The z-score is designed to detect abnormal price location; (how far pressure is away from normal operating range and is it stretched). The other engine is designed to detect swing phase in a cyclical process, (what part of the rotation cycle you are in, and how chaotic the flow is.). Those are not interchangeable concepts, nor would I use them together. They could signal in the same areas but mean different things. In a broad sense, the Z is a trigger/timing layer (not to be used alone) and the other Environment / regime / swing suitability layer. In other words, one is on the ground the other high above looking down.

The new script is best for range trading, swing turning points and rhythm / oscillatory markets.

Not to be argumentative, but for newer and intermediate traders, one of the biggest challenges in technical analysis is learning that indicators which look similar on a chart often solve very different problems under the hood.
It’s easy to assume two tools are interchangeable simply because both “turn up and down” or plot stretch-like patterns.
As @useThinkScript , @merryDay , and others have pointed out many times, stacking too many overlapping or conceptually similar indicators in the name of confluence can actually be harmful.
Instead of improving decision quality, it often creates conflicting signals and leads to hesitation, paralysis by analysis, and missed executions.
Understanding what a tool is designed to measure, not just what it visually resembles; is far more important than how many indicators agree on a bar.

I have talked too much, and I do like the script and I think you need to continue to add to the database of good scripts for sure!!!!
You're right and with these as basis, its coded for a "the classless, non-interchangeable concept," the same method met by different hypothesis means, mine coded to access data for one on the ground (targeting) and using the other above looking down, targeting solid. And agreed, "stacking too many overlapping or conceptually similar indicators in the name of confluence can be harmful, so that any hesitation" to me is good. So mine seems more like a burrito and yours a taco?

Instead of improving decision quality, just take a trade and even though it often creates conflicting signals and leads to hesitation, most takes are profitable. A taco is like a burrito almost.

A Theory that runs parallel with the A_LethEffectGreekRiver_02 lower indicator.

z-score is not relative to me right now, I will put some time into reviewing that, thanks.
 

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

You're right and with these as basis, its coded for a "the classless, non-interchangeable concept," the same method met by different hypothesis means, mine coded to access data for one on the ground (targeting) and using the other above looking down, targeting solid. And agreed, "stacking too many overlapping or conceptually similar indicators in the name of confluence can be harmful, so that any hesitation" to me is good. So mine seems more like a burrito and yours a taco?

Instead of improving decision quality, just take a trade and even though it often creates conflicting signals and leads to hesitation, most takes are profitable. A taco is like a burrito almost.

A Theory that runs parallel with the A_LethEffectGreekRiver_02 lower indicator.

z-score is not relative to me right now, I will put some time into reviewing that, thanks.
Ah, oops, this is the script you should have accessed in the last message -> A_LetheEffectGreeekRiver_02
Code:
# Lethe Effect - Fading Memory Momentum Indicator
# Inspired by the Greek mythological River Lethe (forgetfulness)
# Lethe Effect - Hormonal Harmony Oscillator
# Inspired by the Greek River Lethe [forgetfulness/obscurity] old price impulses gently
# fade, restoring balance and harmony like equilibrium in the market
# AdeodatusTravelLink Series - Version 1.4 - December 2025

declare lower;

input length = 14;                  # Lookback for initial price impulse
input decay_factor = 0.85;          # Harmony decay rate (0.5-0.95; lower = faster return to equilibrium)
input overBoughtLevel = 70;         # Excessive excitement / disharmony high threshold
input overSoldLevel = 30;           # Excessive exhaustion / disharmony low threshold
input midLevel = 50;                # Perfect harmony / equilibrium line (renamed to avoid conflict)

def momentum = close - close[length];  # Raw impulse disrupting current balance

rec faded_momentum = if IsNaN(faded_momentum[1])
                     then momentum
                     else faded_momentum[1] * decay_factor + momentum * (1 - decay_factor);
                     # Gentle exponential fade – past disruptions lose influence, harmony restores

def maxAbs = Highest(AbsValue(momentum), length);
def normalized = if maxAbs != 0 then (faded_momentum / maxAbs * 50) + 50 else 50;
                     # Scaled 0-100 where 50 represents ideal hormonal harmony

plot LetheLine = normalized;
LetheLine.SetDefaultColor(Color.CYAN);
LetheLine.SetLineWeight(3);
LetheLine.SetStyle(Curve.FIRM);

plot MidLevelLine = midLevel;
MidLevelLine.SetDefaultColor(Color.WHITE);
MidLevelLine.SetStyle(Curve.LONG_DASH);

plot OverBought = overBoughtLevel;
plot OverSold = overSoldLevel;
OverBought.SetDefaultColor(Color.RED);
OverBought.SetStyle(Curve.SHORT_DASH);
OverSold.SetDefaultColor(Color.MAGENTA);
OverSold.SetStyle(Curve.SHORT_DASH);

# Clouds show states of disharmony (using valid ThinkScript colors)
AddCloud(LetheLine, OverBought, Color.DARK_RED, Color.DARK_RED);        # Over-excited disharmony
AddCloud(OverSold, LetheLine, Color.DARK_GRAY, Color.DARK_GRAY);        # Depleted disharmony (replaced DARK_MAGENTA)

# Gentle harmony-restoring signals
plot HarmonyBuy = if Crosses(normalized, overSoldLevel) then overSoldLevel else Double.NaN;
HarmonyBuy.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
HarmonyBuy.SetDefaultColor(Color.GREEN);
HarmonyBuy.SetLineWeight(4);

plot HarmonySell = if Crosses(normalized, overBoughtLevel, CrossingDirection.BELOW) then overBoughtLevel else Double.NaN;
HarmonySell.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);
HarmonySell.SetDefaultColor(Color.RED);
HarmonySell.SetLineWeight(4);

# Label reflects current state of harmony
AddLabel(yes, "Harmony: " + Round(normalized, 1),
         if normalized > overBoughtLevel then Color.RED
         else if normalized < overSoldLevel then Color.MAGENTA
         else if AbsValue(normalized - midLevel) < 5 then Color.WHITE
         else Color.GRAY);

# Additional label for proximity to perfect balance
AddLabel(yes, if AbsValue(normalized - midLevel) < 3 then "Perfect Harmony"
              else if AbsValue(normalized - midLevel) < 10 then "Near Harmony"
              else "Seeking Balance",
         if AbsValue(normalized - midLevel) < 10 then Color.WHITE else Color.GRAY);
 
Ah, oops, this is the script you should have accessed in the last message -> A_LetheEffectGreeekRiver_02
Code:
# Lethe Effect - Fading Memory Momentum Indicator
# Inspired by the Greek mythological River Lethe (forgetfulness)
# Lethe Effect - Hormonal Harmony Oscillator
# Inspired by the Greek River Lethe [forgetfulness/obscurity] old price impulses gently
# fade, restoring balance and harmony like equilibrium in the market
# AdeodatusTravelLink Series - Version 1.4 - December 2025

declare lower;

input length = 14;                  # Lookback for initial price impulse
input decay_factor = 0.85;          # Harmony decay rate (0.5-0.95; lower = faster return to equilibrium)
input overBoughtLevel = 70;         # Excessive excitement / disharmony high threshold
input overSoldLevel = 30;           # Excessive exhaustion / disharmony low threshold
input midLevel = 50;                # Perfect harmony / equilibrium line (renamed to avoid conflict)

def momentum = close - close[length];  # Raw impulse disrupting current balance

rec faded_momentum = if IsNaN(faded_momentum[1])
                     then momentum
                     else faded_momentum[1] * decay_factor + momentum * (1 - decay_factor);
                     # Gentle exponential fade – past disruptions lose influence, harmony restores

def maxAbs = Highest(AbsValue(momentum), length);
def normalized = if maxAbs != 0 then (faded_momentum / maxAbs * 50) + 50 else 50;
                     # Scaled 0-100 where 50 represents ideal hormonal harmony

plot LetheLine = normalized;
LetheLine.SetDefaultColor(Color.CYAN);
LetheLine.SetLineWeight(3);
LetheLine.SetStyle(Curve.FIRM);

plot MidLevelLine = midLevel;
MidLevelLine.SetDefaultColor(Color.WHITE);
MidLevelLine.SetStyle(Curve.LONG_DASH);

plot OverBought = overBoughtLevel;
plot OverSold = overSoldLevel;
OverBought.SetDefaultColor(Color.RED);
OverBought.SetStyle(Curve.SHORT_DASH);
OverSold.SetDefaultColor(Color.MAGENTA);
OverSold.SetStyle(Curve.SHORT_DASH);

# Clouds show states of disharmony (using valid ThinkScript colors)
AddCloud(LetheLine, OverBought, Color.DARK_RED, Color.DARK_RED);        # Over-excited disharmony
AddCloud(OverSold, LetheLine, Color.DARK_GRAY, Color.DARK_GRAY);        # Depleted disharmony (replaced DARK_MAGENTA)

# Gentle harmony-restoring signals
plot HarmonyBuy = if Crosses(normalized, overSoldLevel) then overSoldLevel else Double.NaN;
HarmonyBuy.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
HarmonyBuy.SetDefaultColor(Color.GREEN);
HarmonyBuy.SetLineWeight(4);

plot HarmonySell = if Crosses(normalized, overBoughtLevel, CrossingDirection.BELOW) then overBoughtLevel else Double.NaN;
HarmonySell.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);
HarmonySell.SetDefaultColor(Color.RED);
HarmonySell.SetLineWeight(4);

# Label reflects current state of harmony
AddLabel(yes, "Harmony: " + Round(normalized, 1),
         if normalized > overBoughtLevel then Color.RED
         else if normalized < overSoldLevel then Color.MAGENTA
         else if AbsValue(normalized - midLevel) < 5 then Color.WHITE
         else Color.GRAY);

# Additional label for proximity to perfect balance
AddLabel(yes, if AbsValue(normalized - midLevel) < 3 then "Perfect Harmony"
              else if AbsValue(normalized - midLevel) < 10 then "Near Harmony"
              else "Seeking Balance",
         if AbsValue(normalized - midLevel) < 10 then Color.WHITE else Color.GRAY);
2026-02-10-TOS_CHARTSA.png
 
Be careful with Oscillators as they over signal and usually falsely. Add some structure base criteria and they will keep you in your position until structure fails. As you can see you were getting some false signals and finally would have kept you out of a bullish yet grinding run of gaining 50% on the stock.
When Lethe Would Actually Be Useful is when:
  • MTF is Bear
  • SpreadATR crosses below compression
  • Expansion down begins
  • AND Lethe rolls over
That’s alignment. Alone? It’s noise.
With structure? It’s confirmation.
1771648172425.png
 

Similar threads

Not the exact question you're looking for?

Start a new thread and receive assistance from our community.

87k+ Posts
947 Online
Create Post

Similar threads

Similar threads

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