F W B SB (Ʌi)
F W B SB (Ʌi)
▄▄▄▄▄▄▄▄▄▄
//▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░▌ ▐░▌ ▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌
▐░░░░░░░░░░▌
//▐░█▀▀▀▀▀▀▀▀▀ ▀▀▀▀█░█▀▀▀▀ ▐░▌ ▐░▌ ▐░█▀▀▀▀▀▀▀█░▌ ▀▀▀▀█░█▀▀▀▀
▐░█▀▀▀▀▀▀▀█░▌
//▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌
▐░▌
//▐░█▄▄▄▄▄▄▄▄▄ ▐░▌ ▐░▌ ▐░▌ ▐░█▄▄▄▄▄▄▄█░▌ ▐░▌ ▐░▌
▐░▌
//▐░░░░░░░░░░░▌ ▐░▌ ▐░▌ ▐░▌ ▐░░░░░░░░░░░▌ ▐░▌ ▐░▌
▐░▌
// ▀▀▀▀▀▀▀▀▀█░▌ ▐░▌ ▐░▌ ▐░▌ ▐░█▀▀▀▀▀▀▀▀▀ ▐░▌ ▐░▌
▐░▌
// ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌
▐░▌
// ▄▄▄▄▄▄▄▄▄█░▌ ▄ ▐░▌ ▄ ▐░█▄▄▄▄▄▄▄█░▌ ▄ ▐░▌ ▄ ▄▄▄▄█░█▄▄▄▄ ▄
▐░█▄▄▄▄▄▄▄█░▌▄
//▐░░░░░░░░░░░▌▐░▌ ▐░▌▐░▌ ▐░░░░░░░░░░░▌▐░▌▐░▌▐░▌
▐░░░░░░░░░░░▌▐░▌▐░░░░░░░░░░▌▐░▌
// ▀▀▀▀▀▀▀▀▀▀▀ ▀ ▀ ▀ ▀▀▀▀▀▀▀▀▀▀▀ ▀ ▀ ▀ ▀▀▀▀▀▀▀▀▀▀▀ ▀
▀▀▀▀▀▀▀▀▀▀ ▀
//
// ▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄
▄
//▐░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░▌
▐░▌
//▐░█▀▀▀▀▀▀▀█░▌▀▀▀▀█░█▀▀▀▀ ▀▀▀▀█░█▀▀▀▀ ▐░█▀▀▀▀▀▀▀▀▀ ▐░█▀▀▀▀▀▀▀█░▌ ▀▀▀▀█░█▀▀▀▀
▐░▌░▌ ▐░▌
//▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌
▐░▌▐░▌ ▐░▌
//▐░█▄▄▄▄▄▄▄█░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌
▐░▌ ▐░▌
//▐░░░░░░░░░░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌
▐░▌ ▐░▌
//▐░█▀▀▀▀▀▀▀█░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌
▐░▌ ▐░▌
//▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌
▐░▌▐░▌
//▐░█▄▄▄▄▄▄▄█░▌▄▄▄▄█░█▄▄▄▄ ▐░▌ ▐░█▄▄▄▄▄▄▄▄▄ ▐░█▄▄▄▄▄▄▄█░▌ ▄▄▄▄█░█▄▄▄▄ ▐░▌
▐░▐░▌
//▐░░░░░░░░░░▌▐░░░░░░░░░░░▌ ▐░▌ ▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░▌
▐░░▌
// ▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀ ▀ ▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀ ▀
▀▀
//
// S.UPER T.REND U.LTIMATE P.ROJECT I.NTELLIGENT D.ESIGN
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0
at https://mozilla.org/MPL/2.0/
// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0
International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/
// Over 1000 indicator were referenced, credit goes to EACH AND EVERY CREATOR ON
TRADINGVIEW. It is impossible to list everyone. Thus, everyone gets credit.
// Extra Credit to Fib, Wyc, Bol, all band together over MFT price prediction
tools, credit to WyckoffMode, Austimize, gabrielrtakeda, Zeiierman PVSRA, Robert J
Hoffman, plasmapug, KIVANC, Quantvue; and modified by Stupid_Bitcoin 2024
// The summary of this code is work done by @ Stupid_Bitcoin 2024 and beyond.
// S.T.U.P.I.D. Donations ~ paypal ~ djyourstory@gmail.com
// A Market Maker and Casino are identical. They do not change the game.
// They understand your indicator, or your mind-set will keep changing.
// The Human Brain can not make a security call to the asset, but AI can.
// A majority of popular indicators are old, regardless of ratings.
// Many of these indicators can not upgrade into Version 5 of Pine Script.
// Before indicator design the 13 TEMA, 66 DEMA, created a tested trading
foundation.
//@version=5
indicator("F.W.B. Bands 💪🏻 SB[ɅI]", overlay=true, max_bars_back = 5000)
string GROUP_LABELS = 'Labels'
bool showLabelsPriceScaleInput = input.bool(false, 'Show Labels on Price
Scale.', tooltip="", group=GROUP_LABELS)
bool showPriceRayInput = input.bool(false, 'Show Price on Fractal
Rays.', tooltip="", group=GROUP_LABELS)
// options
labelDisplay = showLabelsPriceScaleInput ? display.all : display.pane // ,
editable = false, display=labelDisplay)
//------------------------------------------------------------------------------
color_1 = vold0 ? cold0 : vold1 ? cold1 : vold2 ? cold2 : vold3 ? cold3 : vold4 ?
cold4 : vold5 ? cold5 : volu0 ? colu0 : volu1 ? colu1 : volu2 ? colu2 : volu3 ?
colu3 : volu4 ? colu4 : volu5 ? colu5 : na
plotcandle(open, high, low, close, title=' Vector Candle', color=(open < close) ?
color_1 : color_1, wickcolor=color_1, bordercolor=color_1, editable = false,
display=labelDisplay)
//
var START_OFFSET = 50
var END_OFFSET = 100
//------------------------------------------------------------------------------
dev01 = mult01 * ta.stdev(src, length)
dev02 = mult02 * ta.stdev(src, length)
dev03 = mult03 * ta.stdev(src, length)
dev04 = mult04 * ta.stdev(src, length)
dev05 = mult05 * ta.stdev(src, length)
dev06 = mult06 * ta.stdev(src, length)
upper01 = basis + dev01
lower01 = basis - dev01
upper02 = basis + dev02
lower02 = basis - dev02
upper03 = basis + dev03
lower03 = basis - dev03
upper04 = basis + dev04
lower04 = basis - dev04
upper05 = basis + dev05
lower05 = basis - dev05
upper06 = basis + dev06
lower06 = basis - dev06
// <inputs>
string GROUP_GENERAL = 'General'
string textSizeInput = input.string(title='Text Size',
defval=DEFAULT_TABLE_SIZE, options=[size.tiny, size.small, size.normal,
size.large], group=GROUP_GENERAL)
string GROUP_RSI_LEVELS = 'RSI Levels · Settings'
int preOversoldLevelInput = input.int(26, 'Pre-oversold Level',
minval=1, maxval=49, group=GROUP_RSI_LEVELS)
int preOverboughtLevelInput = input.int(52, 'Pre-overbought Level',
minval=51, maxval=100, group=GROUP_RSI_LEVELS)
bool showPreOverLevelsInput = input.bool(true, 'Show "Pre-over"
Levels.', tooltip='pre-oversold / pre-overbought', group=GROUP_RSI_LEVELS)
//
fn_requestFractal(string period, expression) =>
request.security(syminfo.tickerid, period, expression, gaps=barmerge.gaps_off)
//
fn_plotRay(float y, string label, color color, int length=9) =>
lb = label.new(x=bar_index + length, y=y, text=label, color=color.rgb(0, 0, 0,
100), textcolor=color, style=label.style_label_left, size=textSizeInput)
ln = line.new(x1=bar_index, y1=y, x2=label.get_x(lb) + 1, y2=y,
style=fractalRsiRayStyleInput, color=color)
label.delete(lb[1])
line.delete(ln[1])
//
fn_plotRsiLevelRay(simple string period, simple int level, color color) =>
fractalRsiUpLvl = fn_requestFractal(period, tk.rsiDown())
fractalRsiDownLvl = fn_requestFractal(period, tk.rsiUp())
hasFractalRsiLevel = not na(fractalRsiUpLvl) and not na(fractalRsiDownLvl)
rsiLevel = tk.rsiLevel(level, fractalRsiSourceInput, fractalRsiLengthInput,
fractalRsiUpLvl, fractalRsiDownLvl)
prefix = level < 50 ? fractalRsiOversoldPrefixInput :
fractalRsiOverboughtPrefixInput
suffix = level < 50 ? fractalRsiOversoldSuffixInput :
fractalRsiOverboughtSuffixInput
priceLabel = showPriceRayInput ? str.format(' · {0,number,' +
str.tostring(syminfo.mintick) + '}', rsiLevel) : ''
fn_plotRay(hasFractalRsiLevel ? rsiLevel : na, prefix + ' ' +
tk.labelizeTimeFrame(period) + priceLabel + ' ' + suffix , color,
length=fractalRsiRayLengthInput)
//
// <calculations>
tf = timeframe.in_seconds()
// upperband
LVL_70 = tk.rsiLevel(70)
LVL_68 = tk.rsiLevel(68)
LVL_66 = tk.rsiLevel(66)
LVL_64 = tk.rsiLevel(64)
LVL_62 = tk.rsiLevel(62)
LVL_60 = tk.rsiLevel(60)
PRE_OVERBOUGHT_LVL = tk.rsiLevel(preOverboughtLevelInput)
// lowerband
PRE_OVERSOLD_LVL = tk.rsiLevel(preOversoldLevelInput)
LVL_30 = tk.rsiLevel(30)
LVL_28 = tk.rsiLevel(28)
LVL_26 = tk.rsiLevel(26)
LVL_24 = tk.rsiLevel(24)
LVL_22 = tk.rsiLevel(22)
LVL_20 = tk.rsiLevel(20)
// upperband
PLOT_70 = plot(LVL_70, title="Level 70 · Overbought", color=color.new(color.teal,
55), linewidth=1, editable = false, display=labelDisplay)
PLOT_68 = plot(LVL_68, title="Level 68", color=color.new(color.purple, 75),
linewidth=1, editable = false, display=labelDisplay)
PLOT_66 = plot(LVL_66, title="Level 66", color=color.new(color.purple, 75),
linewidth=1, editable = false, display=labelDisplay)
PLOT_64 = plot(LVL_64, title="Level 64", color=color.new(color.purple, 75),
linewidth=1, editable = false, display=labelDisplay)
PLOT_62 = plot(LVL_62, title="Level 62", color=color.new(color.purple, 75),
linewidth=1, editable = false, display=labelDisplay)
PLOT_60 = plot(LVL_60, title="Level 60", color=color.new(color.teal, 55),
linewidth=1, editable = false, display=labelDisplay)
fill(PLOT_70, PLOT_60, title="Upperband Background", color=color.new(color.purple,
95))
// lowerband
PLOT_30 = plot(LVL_30, title="Level 30 · Oversold", color=color.new(color.purple,
55), linewidth=1, display=labelDisplay)
PLOT_28 = plot(LVL_28, title="Level 28", color=color.new(color.teal, 75),
linewidth=1, editable = false, display=labelDisplay)
PLOT_26 = plot(LVL_26, title="Level 26", color=color.new(color.teal, 75),
linewidth=1, editable = false, display=labelDisplay)
PLOT_24 = plot(LVL_24, title="Level 24", color=color.new(color.teal, 75),
linewidth=1, editable = false, display=labelDisplay)
PLOT_22 = plot(LVL_22, title="Level 22", color=color.new(color.teal, 75),
linewidth=1, editable = false, display=labelDisplay)
PLOT_20 = plot(LVL_20, title="Level 20", color=color.new(color.purple, 55),
linewidth=1, editable = false, display=labelDisplay)
fill(PLOT_30, PLOT_20, title="Lowerband Background", color=color.new(color.purple,
95))
// 'pre-over'
PRE_OVERBOUGHT_PLOT = plot(showPreOverLevelsInput ? PRE_OVERBOUGHT_LVL : na,
title="Pre-overbought Level", color=color.new(color.teal, 55), linewidth=1,
display=display.pane)
PRE_OVERSOLD_PLOT = plot(showPreOverLevelsInput ? PRE_OVERSOLD_LVL : na,
title="Pre-oversold Level", color=color.new(color.teal, 95), linewidth=1,
display=display.pane)
fill(PRE_OVERBOUGHT_PLOT, PLOT_30, title="Pre-overbought Background",
color=color.new(color.white, 98))
fill(PRE_OVERSOLD_PLOT, PLOT_60, title="Pre-oversold Background",
color=color.new(color.white, 98))
//
// fractal rsi levels
bool visibilityRule_1m = tf != 1 * MINUTE and tf <=
fn_fractalVisibilityRule(fractalRayVisRuleInput_1m)
fn_plotRsiLevelRay('1', fractalRsiOversoldLvlInput, visibilityRule_1m ?
fractalRsiRayColorInput : TRANSPARENT)
fn_plotRsiLevelRay('1', fractalRsiOverboughtLvlInput, visibilityRule_1m ?
fractalRsiRayColorInput : TRANSPARENT)