← К каталогу
Исходный код · ID 4394

Quantum Flow Scanner

quantum flow.pine
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Индикатор Quantum Flow Scanner для TradingView анализирует рыночные данные для определения направления тренда и силы движения. Он использует скользящие средние быстрой и медленной длины для выявления кроссоверов, а также динамические каналы на основе ATR для оценки волатильности.

Для расчета силы сигнала применяется комплексный подход: учитываются объемы, структура свечей, позиция цены относительно канала и согласованность с более высоким таймфреймом. Результат отображается в виде процентной оценки направленности.

Индикатор отображает линии средних, верхнюю и нижнюю границы канала, а также маркеры обнаруженных сигналов. Поддерживается автоматическое определение таймфрейма и вывод таблицы с базовой статистикой по обнаруженным сделкам.

Настройки программы

НастройкаОписание
fastLen Fast Period — Период быстрой скользящей средней
slowLen Slow Period — Период медленной скользящей средней
patternLen Pattern Recognition Length — Длина для распознавания паттерна
atrLen ATR Length — Период расчета ATR
distMult Distance Multiplier — Множитель расстояния для канала
clusterSize Cluster Size — Размер кластера для анализа импульса
showMid Show Midline — Отображение средней линии
showUpper Show Upper Band — Отображение верхней границы канала
showLower Show Lower Band — Отображение нижней границы канала
showFill Show Channel Fill — Отображение заливки канала
showBg Background Trend Color — Фоновая окраска в цвет тренда
bullColor Bull Color — Цвет для бычьих сигналов
bearColor Bear Color — Цвет для медвежьих сигналов
showMarkers Show Detection Markers — Отображение маркеров обнаружения
showPct Show Strength % — Отображение процента силы сигнала
htfInput Higher Timeframe (blank = auto) — Старший таймфрейм для анализа
slPoints Stop Loss (points) — Размер стоп-лосса в пунктах
tpPoints Take Profit (points) — Размер тейк-профита в пунктах
showTable Show Performance Table — Отображение таблицы статистики
Получить полный код

Поиск по коду файла

indicator("Quantum Flow Scanner", overlay=true, max_labels_count=300, max_lines_count=50)

grpTrend = "Trend Detection"
fastLen    = input.int(9, "Fast Period", minval=1, maxval=200, group=grpTrend)
slowLen    = input.int(21, "Slow Period", minval=1, maxval=500, group=grpTrend)
patternLen = input.int(14, "Pattern Recognition Length", minval=5, maxval=50, group=grpTrend)

grpBand = "Dynamic Bands"
atrLen      = input.int(14, "ATR Length", minval=1, maxval=200, group=grpBand)
distMult    = input.float(2.5, "Distance Multiplier", minval=1.0, maxval=10.0, step=0.1, group=grpBand)
clusterSize = input.int(5, "Cluster Size", minval=1, maxval=15, group=grpBand)
showMid     = input.bool(true, "Show Midline", group=grpBand)
showUpper   = input.bool(true, "Show Upper Band", group=grpBand)
showLower   = input.bool(true, "Show Lower Band", group=grpBand)
showFill    = input.bool(true, "Show Channel Fill", group=grpBand)
showBg      = input.bool(true, "Background Trend Color", group=grpBand)

grpDisp = "Display"
bullColor    = input.color(color.new(color.teal, 0), "Bull Color", group=grpDisp)
bearColor    = input.color(color.new(color.orange, 0), "Bear Color", group=grpDisp)
showMarkers  = input.bool(true, "Show Detection Markers", group=grpDisp)
showPct      = input.bool(true, "Show Strength %", group=grpDisp)

grpHtf = "Higher Timeframe"
htfInput = input.timeframe("", "Higher Timeframe (blank = auto)", group=grpHtf)

grpPerf = "Performance Tracking"
slPoints   = input.float(10.0, "Stop Loss (points)", minval=0.01, group=grpPerf)
tpPoints   = input.float(20.0, "Take Profit (points)", minval=0.01, group=grpPerf)
showTable  = input.bool(true, "Show Performance Table", group=grpPerf)

fastMA  = ta.ema(close, fastLen)
slowMA  = ta.ema(close, slowLen)
atrVal  = ta.atr(atrLen)
midline = ta.ema(hlc3, slowLen)
bandWidth = atrVal * distMult
upperBand = midline + bandWidth
lowerBand = midline - bandWidth

trendUp  = fastMA > slowMA
bullCross = ta.crossover(fastMA, slowMA)
bearCross = ta.crossunder(fastMA, slowMA)

upCnt = 0
for i = 1 to patternLen
    if close[i - 1] > close[i]
        upCnt += 1
patternScore = upCnt / patternLen

clusterUp = 0
for i = 0 to (clusterSize - 1)
    if fastMA[i] > fastMA[i + 1]
        clusterUp += 1
clusterFactor = clusterUp / clusterSize

distFactor = bandWidth != 0 ? math.min(math.abs(close - midline) / bandWidth, 1.0) : 0.0

barsSinceCross = trendUp ? ta.barssince(bullCross) : ta.barssince(bearCross)
trendDurFactor = math.min(nz(barsSinceCross, 0) / patternLen, 1.0)

atrAvg = ta.sma(atrVal, 50)
volFactor = atrAvg != 0 ? math.min(atrVal / atrAvg, 1.5) / 1.5 : 0.5

htf = htfInput != "" ? htfInput : (timeframe.isseconds ? "5" : timeframe.isminutes ? str.tostring(math.min(timeframe.multiplier * 4, 240)) : timeframe.isdaily ? "W" : "M")
[htfFast, htfSlow] = request.security(syminfo.tickerid, htf, [ta.ema(close, fastLen), ta.ema(close, slowLen)], gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_off)
htfBull = htfFast > htfSlow
htfFactorBull = htfBull ? 1.0 : 0.0
htfFactorBear = htfBull ? 0.0 : 1.0

volAvg = ta.sma(volume, 20)
volFactorVolume = volAvg != 0 ? math.min(volume / volAvg, 2.0) / 2.0 : 0.5

rangeVal = high - low
bodyVal  = math.abs(close - open)
candleFactor = rangeVal != 0 ? bodyVal / rangeVal : 0.0

hh = ta.highest(high, patternLen)
ll = ta.lowest(low, patternLen)
swingRange = hh - ll
swingPosBull = swingRange != 0 ? (close - ll) / swingRange : 0.5
swingPosBear = swingRange != 0 ? (hh - close) / swingRange : 0.5

bullFactors = (volFactor + clusterFactor + distFactor + trendDurFactor + htfFactorBull + volFactorVolume + candleFactor + swingPosBull) / 8.0
bearFactors = (volFactor + (1 - clusterFactor) + distFactor + trendDurFactor + htfFactorBear + volFactorVolume + candleFactor + swingPosBear) / 8.0

bullStrength = 25 + bullFactors * (92 - 25)
bearStrength = 25 + bearFactors * (92 - 25)

bullDetect = bullCross and close > midline
bearDetect = bearCross and close < midline

plot(showMid ? midline : na, "Midline", color=color.new(color.gray, 20))
upperPlot = plot(showUpper ? upperBand : na, "Upper Band", color=color.new(bullColor, 40))
lowerPlot = plot(showLower ? lowerBand : na, "Lower Band", color=color.new(bearColor, 

Показано первые 50% кода (символов: 7063)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
706,30₽ ≈ $8.63