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