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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.