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

Fair Value (FV) + Trend Signals (TS)

indicator_fair_value_fv_+_trend_signals_ts_for_tradingview_5974369984854367108.pine

Похожие материалы по тегам

pro +.pineTradingView · 3 общих теговofada_gold_trader_v230.mq5MQL5 / MetaTrader 5 · 3 общих теговmulti strategy algo combined by enigma mode.pineTradingView · 3 общих теговmelona ob strategy 6th update (by 3dots).pineTradingView · 3 общих теговsmc+ict+indicators+scalping master.pineTradingView · 3 общих теговpremium_super_scalping killer algo.pineTradingView · 3 общих тегов
Вы автор или правообладатель?

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

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

О программе

Данный индикатор предназначен для платформы TradingView и отображает анализ справедливой стоимости (Fair Value) вместе с сигналами трендовых продолжений на графике цены. Индикатор работает в режиме оверлея, нанося графические элементы непосредственно на ценовой график.

Основные элементы отображения включают зоны справедливой стоимости (FVG), области интереса (AOI) с информацией об объёме, линии отражения уровней поддержки и сопротивления, а также линии рыночной структуры. Также отображаются линии торговых сессий и облачный индикатор на основе скользящих средних.

Индикатор генерирует сигналы на покупку и продажу с уровнями тейк-профита и стоп-лосса, используя технические расчёты на основе ATR, CMO, RSI и других стандартных функций Pine Script. Поддерживаются условия оповещений TradingView, включая отправку уведомлений через Telegram.

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

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

НастройкаОписание
fvgTog Режим отображения зон справедливой стоимости: Все, Структурные или Нет.
upCol Цвет для отрисовки восходящих зон справедливой стоимости (FVG).
downCol Цвет для отрисовки нисходящих зон справедливой стоимости (FVG).
upFillCol Цвет заливки восходящих зон справедливой стоимости.
downFillCol Цвет заливки нисходящих зон справедливой стоимости.
aoiNum Количество расширенных областей интереса (AOI), отображаемых выше и ниже текущей цены.
bullColor Цвет бычьей области интереса (AOI).
bearColor Цвет медвежьей области интереса (AOI).
bullFillColor Цвет заливки бычьей области интереса.
bearFillColor Цвет заливки медвежьей области интереса.
textTog Включает или отключает отображение объёма в областях интереса (AOI).
refTog Включает или отключает отображение линий отражения (поддержка и сопротивление).
refDownCol Цвет линий отражения уровней сопротивления.
refUpCol Цвет линий отражения уровней поддержки.
refCount Количество линий отражения (уровней поддержки и сопротивления), отображаемых на графике.
msTog Включает или отключает отображение линий рыночной структуры.
msStyle Стиль линий рыночной структуры.
mssBullTog Включает или отключает отображение бычьих линий рыночной структуры.
mssBullStyle Стиль линий бычьей рыночной структуры.
mssBullColor Цвет линий бычьей рыночной структуры.
mssBearTog Включает или отключает отображение медвежьих линий рыночной структуры.
mssBearStyle Стиль линий медвежьей рыночной структуры.
mssBearColor Цвет линий медвежьей рыночной структуры.
sesh_in Временной диапазон торговой сессии (например, 0930-1600).
s_tog Включает или отключает отображение линии начала торговой сессии.
s_style Стиль линии начала торговой сессии.
sc Цвет линии начала торговой сессии.
e_tog Включает или отключает отображение линии окончания торговой сессии.
e_style Стиль линии окончания торговой сессии.
ec Цвет линии окончания торговой сессии.
src Источник данных для расчёта сигналов трендовых продолжений.
Multiplier Чувствительность сигналов тренда — множитель ATR для расчёта уровней стоп-лосса и тейк-профита. Допустимые значения от 0.5 до 5.
atrPeriods Период (количество баров) для расчёта ATR.
atrCalcMethod Метод расчёта ATR: Метод 1 или Метод 2.
cloud_val Длина периода скользящей средней для облачного индикатора.
stopLossVal Процент стоп-лосса от цены входа. Значение 0 отключает стоп-лосс.
showBuySellSignals Включает или отключает отображение подписей Buy/Sell на графике.
showMovingAverageCloud Включает или отключает отображение облачного индикатора на основе скользящих средних.
Получить полный код

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

indicator("Fair Value (FV) + Trend Signals (TS)", overlay = true, max_boxes_count = 500, max_lines_count = 500, max_labels_count = 500)

var line lineEntry  = na
var line stopLine   = na
var line tpLine1    = na
var line tpLine2    = na
var line tpLine3    = na

var label labelEntry = na
var label labelStop  = na
var label labelTp1   = na
var label labelTp2   = na
var label labelTp3   = na

timezone = "Asia/Saigon" // 

fvgTog = input.string("Structural", title = "Show FVGs", options  = ["All","Structural","None"], group = "Fair Value Gaps", tooltip = "Note: 'All' Will cause less Historical AOIs to display.")
upCol = input.color(#3daa45, title = "Up Color", inline = "upCol", group = "Fair Value Gaps")
downCol = input.color(#ff033e, title = "Down Color", inline = "downCol", group = "Fair Value Gaps")
upFillCol = input.color(color.rgb(0,0,0,100), title = "Fill", inline = "upCol", group = "Fair Value Gaps")
downFillCol = input.color(color.rgb(0,0,0,100), title = "Fill", inline = "downCol", group = "Fair Value Gaps")

aoiNum = input.int(3, minval = 0, title = "Extend AOIs", group = "Areas of Interest", tooltip = "Max number of Live AOIs Extended to the Current Bar.\n\nExample: 3 = 3 Above Price & 3 Below Price")
bullColor = input.color(#3daa4533, title = "Bull  Color", inline= "bullcolor", group = "Areas of Interest") 
bearColor = input.color(#ff033e33, title = "Bear Color", inline= "bearcolor",  group = "Areas of Interest")
bullFillColor = input.color(#3daa4533, title = "Fill", inline= "bullcolor", group = "Areas of Interest") 
bearFillColor = input.color(#ff033e33, title = "Fill", inline= "bearcolor",  group = "Areas of Interest")
textTog = input.bool(false, title = "AOI Volume", group = "Areas of Interest", inline = "txt")
textColor = textTog?input.color(color.new(color.white,40), title = "", group = "Areas of Interest", inline = "txt"):color.rgb(0,0,0,100)
textSize = str.lower(input.string("Auto", title = "Size", options = ["Tiny","Small","Normal","Large","Huge","Auto"], group = "Areas of Interest", inline = "txt"))

refTog = input.bool(true, title = "Display Reflection Lines", group = "Reflection Lines")
refDownCol = input.color(#ff3c00, title = "Resistance Color", group = "Reflection Lines")
refUpCol = input.color(#004d92, title = "Support Color", group = "Reflection Lines")
refCount = input.int(3, title = "Reflection Count", group = "Reflection Lines")

msTog = input.bool(true, title = "", inline = "ms", group = "Market Structure")
msStyle = input.string("___", title = "Structure", options = ["___","- - -",". . ."], inline = "ms", group = "Market Structure")
msColor = color.new(chart.fg_color,40)                                                                                  //input.color(color.gray, title = "", inline = "ms", group = "Market Structure")
mssBullTog = input.bool(true, title = "", inline = "bull", group = "Market Structure")
mssBullStyle = input.string("- - -", title = "  Bullish   ", options = ["___","- - -",". . ."], inline = "bull", group = "Market Structure")
mssBullColor = input.color(#3daa45, title = "", group = "Market Structure", inline = "bull")
mssBearTog = input.bool(true, title = "", inline = "bear", group = "Market Structure")
mssBearStyle = input.string("- - -", title = "  Bearish   ", options = ["___","- - -",". . ."], inline = "bear", group = "Market Structure")
mssBearColor = input.color(#ff033e, title = "", group = "Market Structure", inline = "bear")

sesh_in = input.session("0930-1600", title = "Session", group = "Session")
s_tog = input.bool(true, title = "Start", inline = "start", group = "Session")
s_style = input.string("- - -", title = "", options = ["___","- - -",". . ."], inline = "start", group = "Session")
sc = input.color(color.new(color.gray,50), title = "", inline = "start", group = "Session")
e_tog = input.bool(true, title = " End ", inline = "end", group = "Session")
e_style = input.string("- - -", title = "", options = ["___","- - -",". . ."], inline = "end", group = "Session")
ec = input.color(color.new(#ff033e,50), title = "", inline = "end", group = "Session")

rope_smoother(float _src, float _threshold) =>
    var float _rope = _src
    _move = _src - _rope //Movement from Rope
    _rope += math.max(math.abs(_move) - nz(_threshold), 0) * math.sign(_move) //Directional Movement beyond the Threshold
    _rope

get_vol_to_bar(_from_bar,_to_bar) =>
    float cum_vol = 0
    for i = (bar_index-_to_bar) to (bar_index-_from_bar)
        cum_vol += volume[i]
    cum_vol

linestyle(_input) =>
    _input == "___"?line.style_solid:
     _input == "- - -"?line.style_dashed:
     _input == ". . ."?line.style_dotted:
     na

type pb
    float price
    int bar

type aoi
    box bx
    float top

type tb
    pb top
    pb bot

var int dir = 0
var int mss_dir = 0

var bool bull_aoi_check = false
var bool bear_aoi_check = false

var pb hst = pb.new(na,na)
var pb lst = pb.new(na,na)

var pb piv_hi = pb.new(na,na)
var pb piv_lo = pb.new(na,na)

var tb ph_aoi = tb.new(pb.new(high,na),pb.new(high,na))
var tb pl_aoi = tb.new(pb.new(low,na),pb.new(low,na))

var bull_aois = array.new<aoi>()
var bear_aois = array.new<aoi>()

var bool piv_lo_claimed = false
var bool piv_hi_claimed = false

fvg_up = (low > high[2]) and (close[1] > high[2]) 
fvg_down = (high < low[2]) and (close[1] < low[2])

c_top = math.max(open,close)
c_bot = math.min(open,close)

if fvgTog == "All"
    if fvg_down
        box.new(bar_index[2],low[2],bar_index,high, border_color = downCol, bgcolor = downFillCol)
    if fvg_up
        box.new(bar_index[2],high[2],bar_index,low, border_color = upCol, bgcolor = upFillCol)

if dir == 0
    if fvg_up
        dir := 1
        hst := pb.new(high,bar_index)
        lst := pb.new(low,bar_index)
    if fvg_down
        dir := -1
        hst := pb.new(high,bar_index)
        lst := pb.new(low,bar_index)

if dir == 1
    if high >= hst.price
        hst := pb.new(high,bar_index)
        lst := pb.new(low,bar_index)
    if low <= lst.price
        lst := pb.new(low,bar_index)
    if fvg_down
        dir := -1
        piv_hi := hst
        piv_hi_claimed := false
        if (hst.price > (piv_hi[1]).price)
            if (piv_hi.price >= ph_aoi.top.price and bear_aoi_check) or (not bear_aoi_check)
                ph_aoi := tb.new(pb.new(piv_hi.price,piv_hi.bar),pb.new(low[2],bar_index))
                bear_aoi_check := true
        hst := pb.new(high,bar_index)
        lst := lst
        if msTog
            line.new(piv_hi.bar,piv_hi.price,piv_lo.bar,piv_lo.price, color = msColor, style = linestyle(msStyle))
        if fvgTog == "Structural"
            box.new(bar_index[2],low[2],bar_index,high, border_color = downCol, bgcolor = downFillCol)

if dir == -1
    if low <= lst.price
        hst := pb.new(high,bar_index)
        lst := pb.new(low,bar_index)
    if high >= hst.price
        hst := pb.new(high,bar_index)
    if fvg_up
        dir := 1
        piv_lo := lst
        piv_lo_claimed := false
        if (lst.price < (piv_lo[1]).price)
            if (piv_lo.price <= pl_aoi.bot.price and bull_aoi_check) or (not bull_aoi_check)
                pl_aoi := tb.new(pb.new(high[2],bar_index),pb.new(piv_lo.price,piv_lo.bar))
                bull_aoi_check := true
        hst := hst
        lst := pb.new(low,bar_index)
        if msTog
            line.new(piv_hi.bar,piv_hi.price,piv_lo.bar,piv_lo.price, color = msColor, style = linestyle(msStyle))
        if fvgTog == "Structural"
            box.new(bar_index[2],high[2],bar_index,low, border_color = upCol, bgcolor = upFillCol)

var r_vals = array.new<pb>(na)

break_up = close > piv_hi.price
break_down = close < piv_lo.price

if mss_dir <= 0 and break_up
    mss_dir := 1
if bull_aoi_check and mss_dir == 1 and pl_aoi.bot.price <= lst.price and break_up
    cumvol = get_vol_to_bar(pl_aoi.bot.bar,pl_aoi.top.bar)
    bull_aois.push(aoi.new(box.new(pl_aoi.bot.bar,pl_aoi.top.price,bar_index,pl_aoi.bot.price, border_color = bullColor, bgcolor = bullFillColor, text_color = textColor, text = str.tostring(cumvol, format.volume), text_size = textSize),pl_aoi.top.price))
    r_vals.push(pl_aoi.bot)
    if mssBullTog
        line.new(piv_hi.bar,piv_hi.price,bar_index,piv_hi.price, color = mssBullColor, style = linestyle(mssBullStyle))
    bull_aoi_check := false

if mss_dir >= 0 and break_down
    mss_dir := -1
if bear_aoi_check and mss_dir == -1 and ph_aoi.top.price >= hst.price and break_down
    cumvol = get_vol_to_bar(ph_aoi.top.bar,ph_aoi.bot.bar)
    bear_aois.push(aoi.new(box.new(ph_aoi.top.bar,ph_aoi.top.price,bar_index,ph_aoi.bot.price, border_color = bearColor, bgcolor = bearFillColor, text_color = textColor, text = str.tostring(cumvol, format.volume), text_size = textSize),ph_aoi.top.price))
    r_vals.push(ph_aoi.top)
    if mssBearTog
        line.new(piv_lo.bar,piv_lo.price,bar_index,piv_lo.price, color = mssBearColor, style = linestyle(mssBearStyle))
    bear_aoi_check := false

if (bull_aois.size() > 0)
    for [i,area] in bull_aois
        if i < (bull_aois.size()-aoiNum)
            area.bx.set_top(na)
        else
            area.bx.set_top(area.top)
            area.bx.set_right(bar_index)
            area.bx.set_text_halign(text.align_right)

if (bear_aois.size() > 0)     
    for [i,area] in bear_aois
        if i < (bear_aois.size()-aoiNum)
            area.bx.set_top(na)
        else
            area.bx.set_top(area.top)
            area.bx.set_right(bar_index)
            area.bx.set_text_halign(text.align_right)

if (bull_aois.size() > 0)
    last_aoi = bull_aois.last()
    for i = bull_aois.size()-1 to 0
        area = bull_aois.get(i)
        top = area.top
        bot = area.bx.get_bottom()
        not_touching = (bot > last_aoi.top or top < last_aoi.bx.get_bottom())
        overlap = (i != bull_aois.size()-1) and not not_touching
        if overlap
            area.bx.set_right(last_aoi.bx.get_left())
            area.bx.set_text_halign(text.align_center)
            bull_aois.remove(i)
        else if c_bot < bot
            area.bx.set_text_halign(text.align_center)
            bull_aois.remove(i)

if bear_aois.size() > 0
    last_aoi = bear_aois.last()
    for i = bear_aois.size()-1 to 0
        area = bear_aois.get(i)
        top = area.top
        bot = area.bx.get_bottom()
        not_touching = (bot > last_aoi.top or top < last_aoi.bx.get_bottom())
        overlap = (i != bear_aois.size()-1) and not not_touching
        if overlap 
            area.bx.set_right(last_aoi.bx.get_left())
            are

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

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

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

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

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

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

Стоимость полного кода
1 695,50₽ ≈ $20.72