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

FusionGoldTrading

fusiongoldtrading.pine

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

xauusd_gold_perfect.mq4MQL4 / MetaTrader 4 · 2 общих теговtm sniper pro.pineTradingView · 2 общих теговsniper pro.mq5MQL5 / MetaTrader 5 · 2 общих теговpro +.pineTradingView · 2 общих теговofada_gold_trader_v230.mq5MQL5 / MetaTrader 5 · 2 общих теговmulti strategy algo combined by enigma mode.pineTradingView · 2 общих тегов
Вы автор или правообладатель?

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

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

О программе

FusionGoldTrading — это индикатор для TradingView (Pine Script v6), предназначенный для анализа графиков и отображения торговых сигналов поверх цены. Он рассчитывает набор технических показателей и формирует систему оценки бычьих и медвежьих условий, на основе которой генерирует сигналы на покупку и продажу.

Индикатор вычисляет EMA 9 и 21, VWAP, RSI (14), MACD, ADX, ATR и скользящее среднее объёма. Каждая сторона (лонг/шорт) оценивается по 7 условиям с итоговым баллом от 0 до 7. Сигналы на вход генерируются при пересечении EMA с учётом минимального скора и необязательного фильтра по ADX. Для каждого сигнала рассчитываются стоп-лосс и пять уровней тейк-профита на основе множителя ATR.

Визуализация включает ленту из EMA с настраиваемой непрозрачностью, линию VWAP, графические метки BUY/SELL, горизонтальные линии стоп-лосса и тейк-профитов, а также информационную таблицу-дашборд слева от графика. Дашборд отображает скоры, рыночный уклон, состояние индикаторов, данные текущей позиции с уровнями и отношением риск/прибыль, а также статус срабатывания тейк-профитов. Поддерживаются шесть условий оповещений для сигналов и хитов тейк-профитов.

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

НастройкаОписание
i_dashSz Размер шрифта текста в информационной таблице-дашборде. Доступны варианты: tiny, small, normal, large, huge.
i_tradeSz Размер шрифта текстовых меток с ценами входа, стоп-лосса и тейк-профитов на графике.
i_ribOp Непрозрачность заливки ленты между линиями EMA 9 и EMA 21 в процентах (от 0 до 100).
i_lblOff Горизонтальное смещение в баров вправо от бара сигнала, на котором размещаются текстовые метки с ценами входа, стоп-лосса и тейк-профитов.
i_showVwap Включает или отключает отображение линии VWAP на графике.
i_atrLen Период расчёта индикатора ATR (Average True Range), используемого для определения волатильности и расчёта уровней стоп-лосса и тейк-профита.
i_atrMult Множитель ATR, определяющий расстояние стоп-лосса от цены входа. Также влияет на расположение уровней тейк-профитов, заданных кратными отступами от цены входа.
i_minBull Минимальный бычий скор (от 1 до 7), необходимый для генерации сигнала на покупку. Чем выше значение, тем реже появляются длинные сигналы.
i_minBear Минимальный медвежий скор (от 1 до 7), необходимый для генерации сигнала на продажу. Чем выше значение, тем реже появляются короткие сигналы.
i_adxFilt Включает или отключает обязательное подтверждение входа по индикатору ADX. При активном состоянии сигнал генерируется только если значение ADX превышает заданный порог.
i_adxMin Минимальное пороговое значение ADX, при превышении которого вход считается подтверждённым. Действует только при включённом фильтре ADX.
Получить полный код

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

indicator("Sniper Entry/Exit │ SL & TP │ FusionGoldTrading V.04",
     overlay              = true,
     max_labels_count     = 500,
     max_boxes_count      = 500,
     max_bars_back        = 1000)

const string VERSION = "FGT V.04"

const color C_GOLD    = color.rgb(245, 158,  11)   // #F59E0B – brand gold
const color C_BG      = color.rgb( 13,  17,  23)   // #0D1117 – near-black
const color C_HDR     = color.rgb( 28,  35,  51)   // #1C2333 – header row
const color C_BULL    = color.rgb( 16, 185, 129)   // #10B981 – emerald
const color C_BEAR    = color.rgb(239,  68,  68)   // #EF4444 – coral-red
const color C_NEUTRAL = color.rgb(107, 114, 128)   // #6B7280 – slate
const color C_TEXT    = color.rgb(241, 245, 249)   // #F1F5F9 – off-white
const color C_CYAN    = color.rgb(  6, 182, 212)   // #06B6D4 – hit highlight
const color C_BLUE    = color.rgb( 59, 130, 246)   // #3B82F6 – entry line

string g_vis  = "── Visuals & UI ─────────────────────────"
string g_risk = "── Risk Management ──────────────────────"
string g_filt = "── Signal Filters ───────────────────────"

i_dashSz   = input.string("small", "Dashboard Font Size",        options=["tiny","small","normal","large","huge"], group=g_vis)
i_tradeSz  = input.string("small", "Trade Label Size",           options=["tiny","small","normal","large","huge"], group=g_vis)
i_ribOp    = input.int(75,         "EMA Ribbon Opacity %",       minval=0,   maxval=100,  group=g_vis)
i_lblOff   = input.int(12,         "Label Offset (bars right)",  minval=1,                group=g_vis)
i_showVwap = input.bool(true,      "Show VWAP Line",                                       group=g_vis)

i_atrLen   = input.int(14,         "ATR Length",                 minval=1,                group=g_risk)
i_atrMult  = input.float(1.5,      "SL ATR Multiplier",          minval=0.1, step=0.1,    group=g_risk)

i_minBull  = input.int(4,          "Min Bull Score to BUY  (1–7)", minval=1, maxval=7,    group=g_filt,
                 tooltip="Raise to reduce long-signal frequency. Score counts how many of the 7 bullish conditions are met.")
i_minBear  = input.int(4,          "Min Bear Score to SELL (1–7)", minval=1, maxval=7,    group=g_filt,
                 tooltip="Raise to reduce short-signal frequency.")
i_adxFilt  = input.bool(true,      "Require ADX Confirmation",                            group=g_filt)
i_adxMin   = input.float(20.0,     "ADX Minimum Threshold",      minval=1,                group=g_filt)

float ema9  = ta.ema(close, 9)
float ema21 = ta.ema(close, 21)
float vwap_ = ta.vwap(hlc3)
float atr_  = ta.atr(i_atrLen)
float rsi_  = ta.rsi(close, 14)
float volAv = ta.sma(volume, 20)

[macdL, macdS, _macdH] = ta.macd(close, 12, 26, 9)
[_diP,  _diM,  adx_  ] = ta.dmi(14, 14)

bool  is5m  = timeframe.isintraday
float rsi5m = is5m ? request.security(syminfo.tickerid, "5",
                         ta.rsi(close, 14), barmerge.gaps_off) : na

int bS = 0
bS += close > vwap_                                        ? 1 : 0   // Above VWAP
bS += rsi_  > 50                                           ? 1 : 0   // RSI momentum
bS += macdL > macdS                                        ? 1 : 0   // MACD bullish
bS += ema9  > ema21                                        ? 1 : 0   // EMA alignment
bS += adx_  > 25 and close > ema9                          ? 1 : 0   // Trend + price
bS += volume > volAv and close > open                      ? 1 : 0   // Bullish volume
bS += is5m  and not na(rsi5m) and rsi5m > 50              ? 1 : 0   // 5m confluence
float bullPct = math.round(bS / 7.0 * 100)

int rS = 0
rS += close < vwap_                                        ? 1 : 0
rS += rsi_  < 50                                           ? 1 : 0
rS += macdL < macdS                                        ? 1 : 0
rS += ema9  < ema21                                        ? 1 : 0
rS += adx_  > 25 and close < ema9                          ? 1 : 0
rS += volume > volAv and close < open                      ? 1 : 0
rS += is5m  and not na(rsi5m) and rsi5m < 50              ? 1 : 0
float bearPct = math.round(rS / 7.0 * 100)

float  bDiff   = bullPct - bearPct
string biasLbl = bDiff >=  40 ? "▲ STRONG BULL" :
                 bDiff <= -40 ? "▼ STRONG BEAR" :
                 bDiff >    0 ? "△ MILD BULL"   :
                 bDiff <    0 ? "▽ MILD BEAR"   : "◈ NEUTRAL"
color  biasCol = bDiff >=  40 ? C_BULL :
                 bDiff <= -40 ? C_BEAR :
                 bDiff >    0 ? color.new(C_BULL, 30) :
                 bDiff <    0 ? color.new(C_BEAR, 30) : C_NEUTRAL

bool adxOk = not i_adxFilt or adx_ > i_adxMin

var int   st  = 0
var float eP  = na, var float slP = na
var float tp1 = na, var float tp2 = na, var float tp3 = na
var float tp4 = na, var float tp5 = na

var bool h1 = false, var bool h2 = false, var bool h3 = false
var bool h4 = false, var bool h5 = false

bool goL = ta.crossover(ema9,  ema21) and st <= 0 and bS >= i_minBull and adxOk
bool goS = ta.crossunder(ema9, ema21) and st >= 0 and rS >= i_minBear and adxOk

if goL or goS
    st  := goL ? 1 : -1
    eP  := close
    float r = atr_ * i_atrMult
    float d = goL  ? 1.0 : -1.0
    slP := eP - d * r
    tp1 := eP + d * r * 1.0
    tp2 := eP + d * r * 2.0
    tp3 := eP + d * r * 3.0
    tp4 := eP + d * r * 4.0
    tp5 := eP + d * r * 5.0
    h1  := false
    h2  := false
    h3  := false
    h4  := false
    h5  := false

if st == 1
    h1 := h1 or high >= tp1
    h2 := h2 or high >= tp2
    h3 := h3 or high >= tp3
    h4 := h4 or high >= tp4
    h5 := h5 or high >= tp5
if st == -1
    h1 := h1 or low <= tp1
    h2 := h2 or low <= tp2
    h3 := h3 or low <= tp3
    h4 := h4 or low <= tp4
    h5 := h5 or low <= tp5

float riskR = math.abs(eP - slP)
float rrT1  = (st != 0 and riskR > 0) ? math.round(math.abs(tp1 - eP) / riskR * 10) / 10 : na
float rrT5  = (st != 0 and riskR > 0) ? math.round(math.abs(tp5 - eP) / riskR * 10) / 10 : na

alertcondition(goL,
     title   = "FGT – BUY Signal",
     message = "[FusionGoldTrading] 🟢 BUY │ {{ticker}} @ {{close}}")
alertcondition(goS,
     title   = "FGT – SELL Signal",
     message = "[FusionGoldTrading] 🔴 SELL │ {{ticker}} @ {{close}}")
alertcondition(st ==  1 and not h1[1] and h1,
     title   = "FGT – TP1 Hit (Long)",
     message = "[FusionGoldTrading] 🔥 TP1 Hit (Long) │ {{ticker}}")
alertcondition(st == -1 and not h1[1] and h1,
     title   = "FGT – TP1 Hit (Short)",
     message = "[FusionGoldTrading] 🔥 TP1 Hit (Short) │ {{ticker}}")
alertcondition(st ==  1 and not h5[1] and h5,
     title   = "FGT – TP5 Hit (Long)",
     message = "[FusionGoldTrading] 🏆 TP5 Hit (Long) │ {{ticker}}")
alertcondition(st == -1 and not h5[1] and h5,
     title   = "FGT – TP5 Hit (Short)",
     message = "[FusionGoldTrading] 🏆 TP5 Hit (Short) │ {{ticker}}")

f_row(_t, _r, _lbl, _val, _vc) =>
    table.cell(_t, 0, _r, _lbl,
         text_color  = color.new(C_TEXT, 10),
         text_halign = text.align_left,
         text_size   = i_dashSz,
         bgcolor     = C_HDR)
    table.cell(_t, 1, _r, _val,
         text_color  = _vc,
         text_halign = text.align_right,
         text_size   = i_dashSz,
         bgcolor     = C_BG)

f_sec(_t, _r, _lbl) =>
    table.cell(_t, 0, _r, "◆ " + _lbl,
         text_color  = C_GOLD,
         text_halign = text.align_left,
         text_size   = i_dashSz,
         bgcolor     = color.new(C_GOLD, 82))
    table.cell(_t, 1, _r, "",
         text_color  = C_GOLD,
         text_halign = text.align_right,
         text_size   = i_dashSz,
         bgcolor     = color.new(C_GOLD, 82))

var table dash = table.new(
     position.middle_left, 2, 22,
     border_width  = 1,
     border_color  = color.new(C_GOLD, 72),
     frame_width   = 2,
     frame_color   = color.new(C_GOLD, 45))

if barstate.islast

    table.cell(dash, 0, 0, "⚡ FusionGoldTrading",
         text_color  = C_GOLD,
         text_halign = text.align_left,
         text_size   = i_dashSz,
         bgcolor     = C_BG)
    table.cell(dash, 1, 0, VERSION,
         text_color  = C_TEXT,
         text_halign = text.align_right,
         text_size   = i_dashSz,
         bgcolor     = C_BG)

    f_sec(dash, 1, "SCORES")
    table.cell(dash, 0, 2

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

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

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

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

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

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

Стоимость полного кода
1 159₽ ≈ $14.17