I was just messing around, asking AI for prompts so I could practice coding them, and ended up with this relatively simple but interesting snippet. I wanted to see if anyone could build on it. The logic fires a buy or sell when price moves from one extreme to the other within two bars. I’ve been testing it on the /MES 5-minute chart, and the behavior has been interesting.
mod note:
This oscillator shows how strongly each candle is actually moving price, not just how big the bar looks. By comparing the candle’s body to its true range, the script identifies when momentum becomes extremely efficient.
When the market flips from inefficient to efficient in the opposite direction, it prints a dot—green for bullish flips, red for bearish flips. These flips often mark the start of short‑term directional bursts, making it a clean, momentum reversal tool.
Here is the code:
mod note:
This oscillator shows how strongly each candle is actually moving price, not just how big the bar looks. By comparing the candle’s body to its true range, the script identifies when momentum becomes extremely efficient.
When the market flips from inefficient to efficient in the opposite direction, it prints a dot—green for bullish flips, red for bearish flips. These flips often mark the start of short‑term directional bursts, making it a clean, momentum reversal tool.
Here is the code:
Ruby:
declare lower;
input highline = 0.65;
input lowline = -0.35
def c = close;
def o = open;
def h = high;
def l = low;
def tr = TrueRange(high, close, low);
def efficiency = (c - o) / tr;
def bullFlip = (efficiency[1] < -0.35 or efficiency[2] < -0.35) and efficiency >= 0.65;
def bearFlip = (efficiency[1] > 0.65 or efficiency[2] > 0.65) and efficiency <= -0.35;
plot Eff = efficiency;
Eff.SetDefaultColor(Color.GRAY);
plot BullDot = if bullFlip then efficiency else Double.NaN;
BullDot.SetPaintingStrategy(PaintingStrategy.POINTS);
BullDot.SetDefaultColor(Color.GREEN);
BullDot.SetLineWeight(4);
plot BearDot = if bearFlip then efficiency else Double.NaN;
BearDot.SetPaintingStrategy(PaintingStrategy.POINTS);
BearDot.SetDefaultColor(Color.RED);
BearDot.SetLineWeight(4);
plot lowLineP = lowline;
plot highLineP = highline;
lowLineP.SetDefaultColor(Color.DARK_GRAY);
highLineP.SetDefaultColor(Color.DARK_GRAY);
Last edited by a moderator: