Quantitative Qualitative Estimation
"Quantitative Qualitative Estimation QQE" by KivancOzbilgic, MPL-2.0. Ported to FloScript by FloSignals; modifications under MPL-2.0. Original: Quantitative Qualitative Estimation QQE (v1.0), read 2026-10-12T16:04:58.315Z; source language v4.
Licence: Mozilla Public License 2.0 (MPL-2.0) — full text. The source is published with it, modifications included, under the same licence.
Quantitative Qualitative Estimation QQE by KivancOzbilgic, ported from Pine v4. Pane indicator with 3 plots, 2 marker series, 2 fills, alerts and 5 inputs.
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © KivancOzbilgic
// ------------------------------------------------------------------------------------------------
// Original author: KivancOzbilgic
// Original title: Quantitative Qualitative Estimation QQE
// Licence: MPL-2.0 (the header above is the original notice, kept verbatim)
// Pine version: 4
// Fetched: 2026-10-12
// Ported to FloScript by FloSignals; modifications under MPL-2.0.
// Converter: @flosignals/floscript 0.1.0, strict mode, score 100/100
// ------------------------------------------------------------------------------------------------
//@floscript=1
//@version=5
// Converted by the FloScript converter from a Pine-compatible v4 source.
indicator("Quantitative Qualitative Estimation", shorttitle="QQE", precision=4, timeframe="")
src = input(close)
length = input.int(14, "RSI Length", minval=1)
SSF = input.int(5, "SF RSI SMoothing Factor", minval=1)
showsignals = input.bool(title="Show Crossing Signals?", defval=true)
highlighting = input.bool(title="Highlighter On/Off ?", defval=true)
RSII = ta.ema(ta.rsi(src, length), SSF)
TR = math.abs(RSII - RSII[1])
wwalpha = 1 / length
WWMA = 0.0
WWMA := wwalpha * TR + (1 - wwalpha) * nz(WWMA[1])
ATRRSI = 0.0
ATRRSI := wwalpha * WWMA + (1 - wwalpha) * nz(ATRRSI[1])
QQEF = ta.ema(ta.rsi(src, length), SSF)
QUP = QQEF + ATRRSI * 4.236
QDN = QQEF - ATRRSI * 4.236
QQES = 0.0
QQES := QUP < nz(QQES[1]) ? QUP : QQEF > nz(QQES[1]) and QQEF[1] < nz(QQES[1]) ? QDN : QDN > nz(QQES[1]) ? QDN : QQEF < nz(QQES[1]) and QQEF[1] > nz(QQES[1]) ? QUP : nz(QQES[1])
QQF = plot(QQEF, "FAST", color.maroon, 2)
QQS = plot(QQES, "SLOW", color=color.blue, linewidth=1)
plot(50, color=color.gray, style=plot.style_circles)
longFillColor = highlighting ? (QQEF > QQES ? color.green : na) : na
shortFillColor = highlighting ? (QQEF < QQES ? color.red : na) : na
fill(QQF, QQS, title="UpTrend Highligter", color=longFillColor)
fill(QQF, QQS, title="DownTrend Highligter", color=shortFillColor)
buySignalr = ta.crossover(QQEF, QQES)
plotshape(buySignalr and showsignals ? QQES * 0.995 : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(color.green, 0), textcolor=color.white)
sellSignallr = ta.crossunder(QQEF, QQES)
plotshape(sellSignallr and showsignals ? QQES * 1.005 : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.red, 0), textcolor=color.white)
alertcondition(ta.cross(QQEF, QQES), title="Cross Alert", message="QQE Crossing Signal!")
alertcondition(ta.crossover(QQEF, QQES), title="Crossover Alarm", message="QQE BUY SIGNAL!")
alertcondition(ta.crossunder(QQEF, QQES), title="Crossunder Alarm", message="QQE SELL SIGNAL!")
alertcondition(ta.crossover(QQEF, 50), title="Cross 50 Up Alert", message="QQE FAST Crossing 50 UP!")
alertcondition(ta.crossunder(QQEF, 50), title="Cross 50 Down Alert", message="QQE FAST Crossing 50 DOWN!")
This file is under the Mozilla Public License 2.0; it is a port of the original by KivancOzbilgic, with the original licence header kept and the changes made for FloScript noted in the file.
- v2
Library refresh 2026-10-14
- v1
Library refresh 2026-10-12
Disclaimer. Scripts are written and published by members, or ported by FloSignals from open-source originals, and are their authors' own work and opinion. FloSignals does not review them for correctness and nothing in a script is financial advice or a recommendation to buy or sell anything — read the Risk Disclaimer. Posting here is under the Community Rules; a script that is not the poster's to post can be reported as the Copyright & Takedowns page says.

Comments (0)
No comments yet. Members can leave one.