Smart Algo - HA + Renko Trend Signals
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «smart algo - ha + renko trend signals.pine» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор «Smart Algo - HA + Renko Trend Signals» отображается на графике TradingView поверх цены и объединяет анализ свечей Хейкин Аши, симулированные блоки Renko и классические технические индикаторы (EMA, ADX, RSI) для формирования сигналов на покупку и продажу. Логика построена на системе подсчёта очков: несколько подтверждений из разных методов анализа должны совпасть, чтобы сработал сигнал. Минимальный порог — 7 из 11 возможных очков.
На графике отображаются три экспоненциальные скользящие средние (быстрая, средняя, медленная), уровни Renko-блоков, цветной фон, отражающий состояние тренда (сильный рост, сильное падение, боковик), а также метки BUY и SELL. В правом верхнем углу размещена информационная таблица с текущими значениями тренда, ADX, направления HA и Renko, уровня RSI, счётов покупателей/продавцов и состояния фильтра объёма.
Все параметры настраиваются пользователем: периоды и уровни индикаторов, метод расчёта размера блоков Renko, пороговые значения фильтров, а также опции отображения сигналов, фона и блоков. Индикатор поддерживает три условия оповещений TradingView — сигнал на покупку, на продажу и любой сигнал.
Важно отметить, что индикатор является инструментом анализа и отображения, а не симулятором торгов. Он не исполняет сделки и не тестирует стратегию. Водяной знак и баннер с ссылкой на Telegram размещены в коде автором.
Настройки программы
| Настройка | Описание |
|---|---|
| adx_len | Длина ADX — Период расчёта индикатора ADX (средняя направленная индекса), определяющего силу тренда. |
| adx_threshold | Порог ADX (сила тренда) — Пороговое значение ADX, выше которого тренд считается сильным, а ниже — боковым движением. |
| ema_fast | Быстрая EMA — Период быстрой экспоненциальной скользящей средней, используемой для определения краткосрочного направления цены. |
| ema_mid | Средняя EMA — Период средней экспоненциальной скользящей средней, служащей промежуточным уровнем для оценки тренда. |
| ema_slow | Медленная EMA — Период медленной экспоненциальной скользящей средней, отражающей долгосрочное направление цены. |
| renko_method | Метод расчёта размера блока — Метод определения размера блока Renko: ATR (на основе усреднённого диапазона) или Fixed (фиксированное значение). |
| renko_atr_len | Длина ATR для Renko — Период усреднённого истинного диапазона (ATR), используемый для расчёта размера блока Renko при выборе метода ATR. |
| renko_fixed | Фиксированный размер блока — Фиксированное числовое значение размера блока Renko, применяемое при выборе метода «Fixed». |
| ha_filter | Использовать фильтр тренда Heikin Ashi — Включает или отключает использование фильтра тренда на свечах Хейкин Аши при формировании сигналов. |
| ha_body_min | Мин. % тела сильной свечи HA — Минимальная доля тела свечи Хейкин Аши от её диапазона, при которой свеча считается сильной (от 0,1 до 1,0). |
| rsi_len | Длина RSI — Период расчёта индикатора RSI (индекс относительной силы) для оценки импульса изменения цены. |
| rsi_ob | RSI Перекупленность — Уровень RSI, выше которого актив считается перекупленной. |
| rsi_os | RSI Перепроданность — Уровень RSI, ниже которого актив считается перепроданным. |
| use_vol | Использовать фильтр объёма — Включает или отключает фильтр объёма, требующий превышения текущего объёма над усреднённым для подтверждения сигнала. |
| vol_mult | Множитель объёма — Множитель, на который умножается усреднённый объём (20 периодов) для порога фильтра подтверждения. |
| show_signals | Показывать сигналы — Включает или отключает отображение графических меток BUY и SELL на графике. |
| show_trend_bg | Показывать фон тренда — Включает или отключает цветной фон графика, отражающий текущее состояние тренда. |
| show_renko | Показывать блоки Renko — Включает или отключает отображение уровней Renko-блоков на графике. |
Поиск по коду файла
indicator("Smart Algo - HA + Renko Trend Signals", overlay=true, max_labels_count=500, max_boxes_count=500)
grp_trend = "═══ TREND SETTINGS ═══"
adx_len = input.int(14, "ADX Length", group=grp_trend)
adx_threshold = input.int(25, "ADX Threshold (Trend Strength)", group=grp_trend)
ema_fast = input.int(9, "Fast EMA", group=grp_trend)
ema_mid = input.int(21, "Mid EMA", group=grp_trend)
ema_slow = input.int(50, "Slow EMA", group=grp_trend)
grp_renko = "═══ RENKO SETTINGS ═══"
renko_method = input.string("ATR", "Brick Size Method", options=["ATR", "Fixed"], group=grp_renko)
renko_atr_len = input.int(14, "Renko ATR Length", group=grp_renko)
renko_fixed = input.float(50.0, "Fixed Brick Size", group=grp_renko)
grp_ha = "═══ HEIKIN ASHI FILTER ═══"
ha_filter = input.bool(true, "Use HA Trend Filter", group=grp_ha)
ha_body_min = input.float(0.5, "Min HA Body % for Strong Candle", minval=0.1, maxval=1.0, group=grp_ha)
grp_rsi = "═══ RSI MOMENTUM ═══"
rsi_len = input.int(14, "RSI Length", group=grp_rsi)
rsi_ob = input.int(70, "RSI Overbought", group=grp_rsi)
rsi_os = input.int(30, "RSI Oversold", group=grp_rsi)
grp_vol = "═══ VOLUME FILTER ═══"
use_vol = input.bool(true, "Use Volume Filter", group=grp_vol)
vol_mult = input.float(1.5, "Volume Multiplier", group=grp_vol)
grp_sig = "═══ SIGNALS ═══"
show_signals = input.bool(true, "Show Signals", group=grp_sig)
show_trend_bg = input.bool(true, "Show Trend Background", group=grp_sig)
show_renko = input.bool(true, "Show Renko Bricks", group=grp_sig)
var float ha_open = na
var float ha_close = na
var float ha_high = na
var float ha_low = na
ha_close_calc = (open + high + low + close) / 4.0
ha_open_calc = na(ha_open[1]) ? (open + close) / 2.0 : (nz(ha_open[1]) + nz(ha_close[1])) / 2.0
ha_high_calc = math.max(high, math.max(ha_open_calc, ha_close_calc))
ha_low_calc = math.min(low, math.min(ha_open_calc, ha_close_calc))
ha_open := ha_open_calc
ha_close := ha_close_calc
ha_high := ha_high_calc
ha_low := ha_low_calc
ha_bullish = ha_close > ha_open
ha_bearish = ha_close < ha_open
ha_body_size = math.abs(ha_close - ha_open)
ha_range = ha_high - ha_low
ha_body_pct = ha_range > 0 ? ha_body_size / ha_range : 0.0
ha_strong = ha_body_pct >= ha_body_min
renko_atr = ta.atr(renko_atr_len)
brick_size = renko_method == "ATR" ? renko_atr : renko_fixed
var float renko_high = na
var float renko_low = na
var int renko_dir = 0 // 1 = bullish, -1 = bearish
if na(renko_high)
renko_high := close
renko_low := close - brick_size
renko_dir := 1
else
if close >= renko_high + brick_size
bricks_up = math.floor((close - renko_high) / brick_size)
renko_high += bricks_up * brick_size
renko_low := renko_high - brick_size
renko_dir := 1
else if close <= renko_low - brick_size
bricks_down = math.floor((renko_low - close) / brick_size)
renko_low -= bricks_down * brick_size
renko_high := renko_low + brick_size
renko_dir := -1
renko_bullish = renko_dir == 1
renko_bearish = renko_dir == -1
ema_f = ta.ema(close, ema_fast)
ema_m = ta.ema(close, ema_mid)
ema_s = ta.ema(close, ema_slow)
[di_plus, di_minus, adx] = ta.dmi(adx_len, adx_len)
strong_uptrend = ema_f > ema_m and ema_m > ema_s and di_plus > di_minus and adx > adx_threshold
strong_downtrend = ema_f < ema_m and ema_m < ema_s and di_minus > di_plus and adx > adx_threshold
sideways = adx < adx_threshold
rsi = ta.rsi(close, rsi_len)
rsi_bullish = rsi > 50 and rsi < rsi_ob
rsi_bearish = rsi < 50 and rsi > rsi_os
vol_avg = ta.sma(volume, 20)
vol_ok = use_vol ? volume > vol_avg * vol_mult : true
bull_score = 0.0
bear_score = 0.0
if ema_f > ema_m
bull_score += 1.0
if ema_m > ema_s
bull_score += 1.0
if ema_f > ema_s
bull_score += 1.0
if ema_f < ema_m
bear_score += 1.0
if ema_m < ema_s
bear_score += 1.0
if ema_f < ema_s
bear_score += 1.0
if adx > adx_threshold
if di_plus > di_minus
bull_score += 2.0
else
bear_score += 2.0
if ha_filter
if ha_bullish and ha_strong
bull_score += 2.0
if ha_bearish and ha_strong
bear_score += 2.0
if renko_bullish
bull_score += 2.0
if renko_bearish
bear_score += 2.0
if rsi_bullish
bull_score += 1.0
if rsi_bearish
Показано первые 50% кода (символов: 7203)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.