Money Flow Profile [LuxAlgo]
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «money flow profile [luxalgo]@lifeindreamsworld.pine» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор TradingView на Pine Script v5, предназначенный для визуального анализа распределения торговой активности и потоков денег по ценовым уровням за выбранный период. Отображает профиль объёма или денежного потока в виде горизонтальных строк разной длины, где длина строки отражает интенсивность торгов на конкретном ценовом уровне. Поддерживает несколько вариантов привязки периода расчёта: автоматически по таймфрейму, фиксированный диапазон, свинг-высокие и свинг-низкие, а также сессионные и календарные периоды. Индикатор предоставляет визуальные инструменты для оценки зон консолидации, уровней ликвидности и ценовых уровней значимости.
Настройки программы
| Настройка | Описание |
|---|---|
| tfIN | Период привязки — Определяет базовый период для расчёта профиля: автоматически по таймфрейму, фиксированный диапазон, свинг-высокие, свинг-низкие, сессия, день, неделя, месяц, квартал или год. |
| drpLN | Фиксированный период — Длина диапазона в барах, используемая при привязке к фиксированному диапазону. |
| ppLen | Длина обнаружения свингов — Количество баров для определения свинг-высоких и свинг-низких точек. |
| vpSRC | Источник профиля — Выбор источника данных для расчёта профиля: объём или денежный поток. |
| vpSH | Профиль объёма/денежного потока — Включает отображение основного профиля торговой активности по ценовым уровням. |
| vpHVC | Цвет узлов высокой торговой активности — Цвет строк, соответствующих ценовым уровням с наибольшей интенсивностью торгов. |
| vpHVT | Порог высоких узлов, % — Процентный порог для определения узлов высокой торговой активности. |
| vpAVC | Цвет узлов средней торговой активности — Цвет строк, соответствующих ценовым уровням со средней интенсивностью торгов. |
| vpLVC | Цвет узлов низкой торговой активности — Цвет строк, соответствующих ценовым уровням с наименьшей интенсивностью торгов. |
| vpLVT | Порог низких узлов, % — Процентный порог для определения узлов низкой торговой активности. |
| spSH | Профиль настроения — Включает отображение распределения бычьего и медвежьего давления по ценовым уровням. |
| spPTY | Метод полярности настроения — Метод определения направления потока: по полярности баров или по давлению покупки/продажи. |
| spBLC | Цвет бычьих узлов — Цвет для ценовых уровней с преобладающим бычьим давлением. |
| spBRC | Цвет медвежьих узлов — Цвет для ценовых уровней с преобладающим медвежьим давлением. |
| hmSH | Тепловая карта профиля — Включает наложение тепловой карты на основе данных профиля. |
| hmSRC | Источник тепловой карты — Выбор источника данных для тепловой карты: профиль объёма/денежного потока или профиль настроения. |
| hmTR | Прозрачность тепловой карты — Уровень прозрачности тепловой карты. |
| sdSH | Зоны ликвидности покупок и продаж — Включает отображение зон ликвидности со стороны покупателей и продавцов. |
| sdTH | Порог зон ликвидности, % — Процентный порог для определения границ зон ликвидности. |
| sdCR | Цвет узлов ликвидности покупок — Цвет для ценовых уровней с ликвидностью со стороны покупателей. |
| sdCS | Цвет узлов ликвидности продаж — Цвет для ценовых уровней с ликвидностью со стороны продавцов. |
| rpPC | Уровень значимости — Определяет способ маркировки уровня наибольшей торговой активности: развивающийся, последняя линия, последняя зона или без маркировки. |
| vaSH | Зоны консолидации — Включает отображение ценовых зон консолидации. |
| vaTH | Порог консолидации, % — Процентный порог для определения зон консолидации. |
| vaC | Цвет зон консолидации — Цвет заливки для зон консолидации. |
| spPC | Зона наивысшего настроения — Включает выделение ценовой зоны с наибольшим бычьим или медвежьим давлением. |
| rpPL | Ценовые уровни профиля — Включает отображение ценовых меток верхней и нижней границ профиля. |
| rpPLC | Цвет ценовых уровней — Цвет меток ценовых уровней профиля. |
| rpLS | Размер текста ценовых уровней — Размер текста для меток ценовых уровней. |
| rpBG | Фоновая заливка диапазона профиля — Включает заливку фона в диапазоне цен профиля. |
| rpBGC | Цвет фоновой заливки — Цвет заливки фона диапазона профиля. |
| rpNR | Количество строк — Количество строк в профиле для отображения распределения активности. |
| rpW | Ширина профиля, % — Ширина отображаемого профиля в процентах от графика. |
| vpLS | Размер текста профиля — Размер текста для подписей в профиле объёма/денежного потока. |
| vpHO | Горизонтальное смещение профиля — Горизонтальное смещение профиля относительно текущего бара. |
Поиск по коду файла
indicator("Money Flow Profile [LuxAlgo]", "LuxAlgo - Money Flow Profile", true, max_bars_back = 5000, max_boxes_count = 500, max_lines_count = 500)
disp = display.all - display.status_line
rpGR = 'Profile Generic Settings'
tfTP = 'The indicator resolution is set by the input of the Anchor Period.\n\n' +
'If the Anchor Period is set to AUTO, then the increased resolution is determined by the following algorithm:\n' +
' - for intraday resolutions up to 4 Hour, DAY (1D) is used\n - for intraday resolutions equal to 4 Hour, WEEK (1W) is used\n - for daily resolutions MONTH is used (1M)\n - for weekly resolution, 3-MONTH (3M) is used\n - for monthly resolution, 12-MONTH (12M) is used\n\n' +
'If the Anchor Period is set to Fixed Range then the period is defined in the \'Fixed Period\' option\n\n' +
'If the Anchor Period is set to Swing High or Swing Low then the length required to calculate Swing Levels is defined in the \'Swing Detection Length\' option'
tfIN = input.string('Fixed Range', ' Anchor Period', options=['Auto', 'Fixed Range', 'Swing High', 'Swing Low', 'Session', 'Day', 'Week', 'Month', 'Quarter', 'Year'], group = rpGR, tooltip = tfTP, display = disp)
drpTT = 'Applicable if the Anchor Period is set to \'Fixed Range\' then the period of the profile is defined with this option\n\npossible min value [10]'
drpLN = input.int(200, ' Fixed Period', minval = 10, maxval = 5000, step = 10, group = rpGR, tooltip = drpTT, display = disp)
ppTT = 'Applicable if the Anchor Period is set to \'Swing High\' or \'Swing Low\' then the length required to detect the Swing Levels is defined with this option\n\npossible min value [1]'
ppLen = input.int(47, " Swing Detection Length", minval = 1, group = rpGR, tooltip = ppTT, display = disp)
vpSRC = input.string('Volume', ' Profile Source', options = ['Volume', 'Money Flow'], group = rpGR, display = disp)
vpGR = 'Profile Presentation Settings'
vpTP = 'displays total trading activity/money flow (common interest, both buying and selling trading activity/money flow) over a specified time period at specific price levels\n\n' +
' - high traded node rows : high trading activity/money flow price levels - usually represents consolidation levels (value areas)\n' +
' - average traded node rows : average trading activity/money flow price levels\n' +
' - low traded node rows : low trading activity/money flow price levels - usually represents supply & demand levels or liquidity levels\n\n' +
'row lengths, indicates the amount of the traded activity/money flow at specific price levels'
vpSH = input.bool(true, 'Volume/Money Flow Profile', group = vpGR, tooltip = vpTP, display = disp)
vpHVC = input.color(color.new(#ffeb3b, 50), ' High Traded Nodes', inline = 'VP1', group = vpGR)
vpHVT = input.int(53, 'Threshold %' , minval = 50, maxval = 99 , step = 1,inline = 'VP1', group = vpGR, tooltip = 'option range [50-99]', display = disp) / 100
vpAVC = input.color(color.new(#2962ff, 50), ' Average Traded Nodes', group = vpGR)
vpLVC = input.color(color.new(#f23645, 50), ' Low Traded Nodes', inline = 'VP2', group = vpGR)
vpLVT = input.int(37, 'Threshold %' , minval = 10, maxval = 40 , step = 1,inline = 'VP2', group = vpGR, tooltip = 'option range [10-40]', display = disp) / 100
spTP = 'displays the sentiment, the dominat party over a specified time period at the specific price levels\n\n' +
' - bullish node rows : buying trading activity/money flow is higher\n' +
' - barish node rows : selling trading activity/money flow is higher\n\n' +
'row lengths, indicates the strength of the buyers/sellers at the specific price levels'
spSH = input.bool(true, 'Sentiment Profile', group = vpGR, tooltip = spTP)
spPTT = 'conditions used to calculate the up/down volume/money flow\n\n' +
'* bar polarity\n up => if close > open\n down => if close <= open\n\n' +
'* bar buying/selling pressure\n up => if (close - low) > (high - close)\n down => if (close - low) <= (high - close)'
spPT1 = 'Bar Polarity'
spPT2 = 'Bar Buying/Selling Pressure'
spPTY = input.string(spPT1, ' Sentiment Polarity Method', options = [spPT1, spPT2], group = vpGR, tooltip = spPTT, display = disp)
spBLC = input.color(color.new(#26a69a, 50), ' Bullish Nodes', inline = 'SP', group = vpGR)
spBRC = input.color(color.new(#ef5350, 50), 'Bearish Nodes', inline = 'SP', group = vpGR)
hmSH = input.bool(false, 'Profile Heatmap', group = vpGR, tooltip = 'tip : higher number of rows results with a better visuals')
hmSO1 = 'Volume/Money Flow Profile'
hmSRC = input.string(hmSO1, ' Heatmap Source', options = [hmSO1, 'Sentiment Profile'], group = vpGR, display = disp)
hmTR = input.int(73, ' Heatmap Transparency' , minval = 0, maxval = 100 , group = vpGR, display = disp)
sdGR = 'Buyside & Sellside Liquidity Zones'
sdTP = 'Typically refer to the resting orders in the market, such as limit orders, stop loss orders, and stop limit orders, which can be absorbed or targeted by banks or financial institutions. Those levels are also reffered as supply & demand levels in the market'
sdSH = input.bool(false, 'Buyside & Sellside Liquidity Zones', group = sdGR, tooltip = sdTP)
sdTH = input.int(13, ' Threshold %' , minval = 0, maxval = 31, group = sdGR, tooltip = 'possible threshold values [0-31]\n\nhigher values return wider areas', display = disp) / 100
sdCR = input.color(color.new(#0094FF, 81), ' Buyside Liquidity Nodes', inline='low2', group = sdGR)
sdCS = input.color(color.new(#ec1313, 81), 'Sellside Liquidity Nodes', inline='low2', group = sdGR)
othGR = 'Other Presentation Settings'
pcTP = 'displays the price level of the highest traded activity/money flow or the changes of the price levels with the highest traded activity/money flow'
rpPC = input.string('Last(Zone)', ' Level of Significance', options = ['Developing', 'Last(Line)', 'Last(Zone)', 'None'], inline='PoC', group = othGR, tooltip = pcTP, display = disp)
vaSH = input.bool(false, 'Consolidation Zones', group = othGR, display = disp)
vaTH = input.int(25, ' Consolidation Threshold %' , minval = 0, maxval = 100, inline = 'va', group = othGR, display = disp) / 100
vaC = input.color(color.new(#2962ff, 73), '', inline = 'va', group = othGR)
spTT = 'displays the price zone of the highest bullish or bearish sentiment zone'
spPC = input.bool(false, 'Highest Sentiment Zone', inline = 'spP', group = othGR, tooltip = spTT)
rpPL = input.bool(false, 'Profile Price Levels', inline = 'BBe', group = othGR)
rpPLC = input.color(color.new(#00bcd4, 0), '', inline = 'BBe', group = othGR)
rpLS = input.string('Small', "", options=['Tiny', 'Small', 'Normal'], inline = 'BBe', group = othGR, display = disp)
rpBG = input.bool(false, 'Profile Range Background Fill', inline = 'BG', group = othGR)
rpBGC = input.color(color.new(#00bcd4, 95), '', inline = 'BG', group = othGR)
otGR = 'Other Profile Settings'
rpNR = input.int(25, ' Number of Rows' , minval = 10, maxval = 100 ,step = 5, group = otGR, tooltip = 'option range [10-100]', display = disp)
rpW = input.int(13, ' Profile Width %', minval = 10, maxval = 50, group = otGR, tooltip = 'option range [10-50]', display = disp) / 100
vpLS = input.string('Auto', " Profile Text Size", options=['Auto', 'Tiny', 'Small'], group = otGR, display = disp)
vpHO = input.int(13, ' Profile Horizontal Offset', group = otGR, tooltip = 'option allows negative numbers as well, in case of a use the profiles will overlap with the price chart', display = disp)
type bar
float o = open
float h = high
float l = low
float c = close
float v = volume
int i = bar_index
type pivotPoint
int x = 0
float h = na
float h1 = na
float l = na
float l1 = na
bar b = bar.new()
var pivotPoint pp = pivotPoint.new()
rpVST = array.new_float(rpNR, 0.)
rpVSB = array.new_float(rpNR, 0.)
rpVSD = array.new_float(rpNR, 0.)
var dRP = array.new_box()
var pocPoints = array.new<chart.point>()
var polyline pocPolyline = na
var polyline spPolyline = na
var color llC = na
var color lsC = na
var int x2 = 0
var int pp_x = 0
var float pp_y = na
var bool pivotFound = false
f_drawLabelX(_x, _y, _text, _style, _textcolor, _size, _tooltip) =>
var lb = label.new(_x, _y, _text, xloc.bar_index, yloc.price, color(na), _style, _textcolor, _size, text.align_left, _tooltip)
lb.set_xy(_x, _y)
lb.set_text(_text)
lb.set_tooltip(_tooltip)
lb.set_textcolor(_textcolor)
f_drawLabelX2(_x, _y, _text, _style, _textcolor, _size, _textalign, _tooltip) =>
var lb = label.new(_x, _y, _text, xloc.bar_index, yloc.price, color(na), _style, _textcolor, _size, _textalign, _tooltip)
lb.set_xy(_x, _y)
lb.set_text(_text)
lb.set_tooltip(_tooltip)
lb.set_textcolor(_textcolor)
f_gTS(_t) =>
switch _t
'Tiny' => size.tiny
'Small' => size.small
'Normal' => size.normal
'Auto' => size.auto
bull = spPTY == spPT1 ? b.c > b.o : (b.c - b.l) > (b.h - b.c)
nzV = nz(b.v)
rpS = f_gTS(rpLS)
vpS = f_gTS(vpLS)
tfOT = tfIN == 'Session' or tfIN == 'Day' ? 'D' : tfIN == 'Week' ? 'W' : tfIN == 'Month' ? 'M' : tfIN == 'Quarter' ? '3M' : tfIN == 'Year' ? '12M' : timeframe.isintraday and timeframe.multiplier < 240 ? 'D' : timeframe.multiplier == 240 ? 'W' : timeframe.isdaily ? 'M' : timeframe.isweekly ? '3M' : '12M'
pp_h = ta.pivothigh(ppLen, ppLen)
pp_l = ta.pivotlow (ppLen, ppLen)
if not na(pp_h) and tfIN == 'Swing High'
pp.h1 := pp.h
pp.h := pp_h
pp_y := pp_h
pp_x := b.i - ppLen
pp.x := b.i - ppLen
pivotFound := true
if not na(pp_l) and tfIN == 'Swing Low'
pp.l1 := pp.l
pp.l := pp_l
pp_y := pp_l
pp_x := b.i - ppLen
pp.x := b.i - ppLen
pivotFound := true
if tfIN == 'Day'
if dayofweek != dayofweek[1]
x2 := b.i
else if tfIN == 'Session' or tfIN == 'Auto'
if ta.change(time('D'))
x2 := b.i
else if tfIN == 'Week'
if ta.change(time('W'))
x2 := b.i
else if tfIN == 'Month'
if ta.change(time('M'))
x2 := b.i
else if tfIN == 'Quarter'
if ta.change(time('3M'))
x2 := b.i
else if tfIN == 'Year'
if ta.change(time('12M'))
x2 := b.i
calcLookback() =>
int result = drpLN
if tfIN == 'Fixed Range'
result := drpLN
else if tfIN Показано первые 50% кода (символов: 15065)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.