IV is Implied Volatility -
Implied volatility (IV) is the options market’s estimate of how much a stock might move in the future. It is not a direction call. High IV does not mean “stock should go up” or “stock should go down.” It means the market is pricing a larger expected move.
For stock trading, IV matters because it tells you how much uncertainty, event risk, and demand for protection/speculation is embedded in options. Even if you only trade shares, IV helps you judge whether the market is calm, nervous, complacent, or bracing for a catalyst.
The clean way to think about IV: it is the price of uncertainty.
And yes The Linda is my take on LBR 3/10 oscillator - about the same really
Implied volatility (IV) is the options market’s estimate of how much a stock might move in the future. It is not a direction call. High IV does not mean “stock should go up” or “stock should go down.” It means the market is pricing a larger expected move.
For stock trading, IV matters because it tells you how much uncertainty, event risk, and demand for protection/speculation is embedded in options. Even if you only trade shares, IV helps you judge whether the market is calm, nervous, complacent, or bracing for a catalyst.
The clean way to think about IV: it is the price of uncertainty.
And yes The Linda is my take on LBR 3/10 oscillator - about the same really
Code:
declare lower;
# =========================
# StochasticSlow 4x10 RedCloud - Linda
# ThinkScript Conversion
# =========================
input kLength = 4;
input dSmoothing = 10;
# Calculate %K
def lowestLow = Lowest(low, kLength);
def highestHigh = Highest(high, kLength);
# Prevent division by zero
def rangea = highestHigh - lowestLow;
def kRaw =
if rangea != 0 then
100 * (close - lowestLow) / rangea
else
0;
# Wilder smoothing
def kSlow = WildersAverage(kRaw, dSmoothing);
def dLine = WildersAverage(kSlow, dSmoothing);
# =========================
# %D Color Logic
# =========================
plot K = kSlow;
K.SetLineWeight(3);
K.SetDefaultColor(CreateColor(44, 164, 182));
plot D = dLine;
D.SetLineWeight(4);
D.AssignValueColor(
if dLine > dLine[1]
then Color.BLUE
else Color.YELLOW
);
# =========================
# Horizontal Levels
# =========================
plot Level50 = 50;
Level50.SetDefaultColor(Color.WHITE);
Level50.SetLineWeight(2);
plot Level0 = 0;
Level0.SetDefaultColor(Color.BLACK);
Level0.SetLineWeight(2);
# =========================
# CLOUD BETWEEN K & D
# =========================
AddCloud(
K,
D,
Color.GREEN,
CreateColor(225, 30, 218)
);
# =========================
# RED CLOUD BELOW 50
# when BOTH are below 50
# =========================
AddCloud(
if dLine < 50 and kSlow < 50 then Level50 else Double.NaN,
Level0,
CreateColor(199, 29, 29),
CreateColor(199, 29, 29)
);
# =========================
# YELLOW CLOUD
# when K < 50 and D >= 50
# =========================
AddCloud(
if kSlow < 50 and dLine >= 50 then Level50 else Double.NaN,
Level0,
Color.YELLOW,
Color.YELLOW
);
AddCloud(
if kSlow > 50 and dLine <= 50 then Level50 else Double.NaN,
Level0,
Color.VIOLET,
Color.VIOLET
);
#=========================
# SIMPLE CALL / PUT SIGNALS
#=========================
def D_Blue =
dLine > dLine[1];
def D_Yellow =
dLine <= dLine[1];
def RecentBlue =
D_Blue or D_Blue[1] or D_Blue[2];
def RecentYellow =
D_Yellow or D_Yellow[1] or D_Yellow[2];
def CallSignal =
kSlow crosses above dLine and
RecentBlue;
def PutSignal =
kSlow crosses below dLine and
RecentYellow;
AddVerticalLine(
CallSignal,
"C",
Color.LIGHT_GREEN,
Curve.MEDIUM_DASH
);
AddVerticalLine(
PutSignal,
"P",
Color.LIGHT_RED,
Curve.MEDIUM_DASH
);
plot CallArrow =
if CallSignal
then kSlow
else Double.NaN;
CallArrow.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
CallArrow.SetDefaultColor(Color.GREEN);
CallArrow.SetLineWeight(3);
plot PutArrow =
if PutSignal
then kSlow
else Double.NaN;
PutArrow.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);
PutArrow.SetDefaultColor(Color.RED);
PutArrow.SetLineWeight(3);
#=========================
# LABELS
#=========================
AddLabel(
yes,
"K: " + Round(kSlow,1),
if kSlow > 50 then Color.GREEN else Color.RED
);
AddLabel(
yes,
"D: " + Round(dLine,1),
if dLine > 50 then Color.GREEN else Color.RED
);
AddLabel(
yes,
if kSlow > dLine then "MOMENTUM: BULLISH"
else "MOMENTUM: BEARISH",
if kSlow > dLine then Color.GREEN else Color.RED
);
AddLabel(
yes,
if dLine > dLine[1] then "TREND: IMPROVING"
else "TREND: WEAKENING",
if dLine > dLine[1]
then Color.CYAN
else Color.YELLOW
);
AddLabel(
yes,
if dLine > 50 and kSlow > 50 then "REGIME: BULL"
else if dLine < 50 and kSlow < 50 then "REGIME: BEAR"
else "REGIME: TRANSITION",
if dLine > 50 and kSlow > 50 then Color.GREEN
else if dLine < 50 and kSlow < 50 then Color.RED
else Color.ORANGE
);
AddLabel(
yes,
if dLine > 50 and kSlow > dLine then "ACTION: BUY PULLBACKS"
else if dLine < 50 and kSlow < dLine then "ACTION: SELL RALLIES"
else "ACTION: WAIT",
if dLine > 50 and kSlow > dLine then Color.GREEN
else if dLine < 50 and kSlow < dLine then Color.RED
else Color.GRAY
);
AddLabel(
yes,
if dLine > 50 and
kSlow > dLine and
dLine > dLine[1]
then "A+ LONG"
else if dLine < 50 and
kSlow < dLine and
dLine < dLine[1]
then "A+ SHORT"
else "NO EDGE",
if dLine > 50 and
kSlow > dLine and
dLine > dLine[1]
then Color.GREEN
else if dLine < 50 and
kSlow < dLine and
dLine < dLine[1]
then Color.RED
else Color.GRAY
);
AddLabel(
yes,
if (kSlow - dLine) > 15 then "THRUST: EXTREME BULL"
else if (kSlow - dLine) > 8 then "THRUST: STRONG BULL"
else if (kSlow - dLine) > 0 then "THRUST: BULL"
else if (kSlow - dLine) < -15 then "THRUST: EXTREME BEAR"
else if (kSlow - dLine) < -8 then "THRUST: STRONG BEAR"
else if (kSlow - dLine) < 0 then "THRUST: BEAR"
else "THRUST: NEUTRAL",
if (kSlow - dLine) > 15 then Color.GREEN
else if (kSlow - dLine) > 8 then CreateColor(0,200,0)
else if (kSlow - dLine) > 0 then Color.DARK_GREEN
else if (kSlow - dLine) < -15 then Color.RED
else if (kSlow - dLine) < -8 then CreateColor(220,0,0)
else if (kSlow - dLine) < 0 then Color.DARK_RED
else Color.GRAY
);
def Braid =
AbsValue(kSlow - dLine) < 5 and
AbsValue(kSlow - 50) < 10;
AddLabel(
yes,
if Braid then "BRAID: CONSOLIDATION"
else "",
Color.GRAY
);
#=========================
# DSMA TREND STATE
#=========================
input fastLength = 21;
input slowLength = 55;
def FastDSMA = ExpAverage(close, fastLength);
def SlowDSMA = ExpAverage(close, slowLength);
def Separation = FastDSMA - SlowDSMA;
def RMSBase =
Sqrt(Average(Sqr(Separation), 50));
def TrendScore =
if RMSBase != 0
then Separation / RMSBase
else 0;
def StrongBull =
TrendScore > 1.5;
def Bull =
TrendScore > 0.25 and TrendScore <= 1.5;
def StrongBear =
TrendScore < -1.5;
def Bear =
TrendScore < -0.25 and TrendScore >= -1.5;
def Neutral =
AbsValue(TrendScore) <= 0.25;
AddLabel(
yes,
if StrongBull then "DSMA ACTION: BUY CALLS"
else if Bull then "DSMA ACTION: BUY PULLBACKS"
else if StrongBear then "DSMA ACTION: TREND SHORTS"
else if Bear then "DSMA ACTION: SELL RALLIES"
else "DSMA ACTION: WAIT",
if StrongBull then Color.CYAN
else if Bull then Color.GREEN
else if StrongBear then Color.MAGENTA
else if Bear then Color.RED
else Color.GRAY
);
Last edited by a moderator: