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

SureForexHedging 1.10 Optimized

sureforexhedging 1.10 optimized.mq4

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

!!!-mt4 x-xardg-rsi.mq5MQL5 / MetaTrader 5 · 2 общих тегов!!! rsi ma simple+arrows 1.2 (mtf).mq5MQL5 / MetaTrader 5 · 2 общих теговea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 2 общих теговsureforexhedingvonepointoneone.mq4MQL4 / MetaTrader 4 · 2 общих теговsureforexhedging 1.09 a (2).mq4MQL4 / MetaTrader 4 · 2 общих теговpro +.pineTradingView · 2 общих тегов
Вы автор или правообладатель?

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

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

О программе

Данный продукт представляет собой торговый советник для платформы MetaTrader 4, реализующий стратегию хеджирования с управлением сеткой позиций. Советник анализирует ценовые данные с использованием индикаторов EMA, RSI и ATR для определения направления тренда и фильтрации входов.

Советник поддерживает многослойное наращивание позиций в направлении тренда с контролируемым увеличением размера лота. Встроена система управления прибылью по всей корзине позиций, включающая трейлинг по балансу счёта и частичное закрытие позиций для восстановления маржи.

Для защиты капитала реализованы механизмы аварийной остановки при превышении допустимого просадки по эквити, фильтр максимального спреда, а также проверка на ускорение волатильности и исчерпанность тренда. Все торговые операции выполняются через стандартные API MetaTrader 4 с использованием магического номера для идентификации позиций.

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

НастройкаОписание
Fast EMA (Shift 1) (ema_fast_period) Период быстрой EMA — Период быстрой скользящей средней EMA для определения тренда.
Slow EMA (Shift 1) (ema_slow_period) Период медленной EMA — Период медленной скользящей средней EMA для определения тренда.
Minimum Trend Strength (Pips) (trend_threshold_pips) Порог силы тренда — Минимальная сила тренда в пунктах для подтверждения направления.
RSI Filter Period (rsi_period) Период RSI — Период индикатора RSI для фильтрации входов.
Overbought Filter (Block Buy) (rsi_overbought) Уровень перекупленности RSI — Уровь перекупленности RSI, при превышении которого входы в покупку блокируются.
Oversold Filter (Block Sell) (rsi_oversold) Уровень перепроданности RSI — Уровь перепроданности RSI, при достижении которого входы в продажу блокируются.
Base Lot Size (fixed_lot) Базовый размер лота — Базовый размер лота для начального уровня.
Controlled Multiplier Per Layer (lot_multiplier) Множитель лота по уровням — Множитель увеличения лота при добавлении каждого нового уровня.
Max Layers per Direction (max_layers) Максимум уровней — Максимальное количество уровней позиций в одном направлении.
Minimum Grid Distance (Pips) (min_grid_step_pips) Минимальный шаг сетки — Минимальное расстояние между уровнями сетки в пунктах.
ATR Spacing Factor (atr_grid_factor) Множитель ATR для сетки — Множитель ATR для расчёта расстояния между уровнями сетки.
Use Account % Profit Trailing (Auto-Scales) (use_percent_trailing) Процентный трейлинг — Переключатель между процентным трейлингом по балансу и фиксированным трейлингом в долларах.
Profit % to Activate Trailing (trail_start_percent) Процент начала трейлинга — Процент прибыли от баланса счёта для активации трейлинга.
Pullback % to Liquidate Profit (trail_step_percent) Процент шага трейлинга — Процент отката прибыли от баланса для закрытия всех позиций.
Fixed $ Profit Start (if % false) (trail_start_amount) Начало трейлинга в долларах — Фиксированная величина прибыли в долларах для активации трейлинга (при отключённом процентном трейлинге).
Fixed $ Profit Pullback (if % false) (trail_dist_amount) Расстояние трейлинга в долларах — Фиксированная величина отката прибыли в долларах для активации выхода (при отключённом процентном трейлинге).
Smart Recovery (Close Oldest + Newest at BE) (use_partial_close) Частичное закрытие — Переключатель режима частичного закрытия старейших и новейших позиций при достижении безубыточности.
Emergency Circuit Breaker DD Limit (%) (max_equity_drawdown_pct) Лимит аварийной просадки эквити — Предел просадки по эквити в процентах, при достижении которого происходит аварийное закрытие всех позиций.
Max Allowed Spread (Pips) (max_spread_pips) Максимальный спред — Максимально допустимый спред в пунктах для открытия позиций.
Magic Number (initial_magic) Магический номер — Магический номер для идентификации позиций, открытых советником.
Trade Comment (trade_comment) Комментарий к сделке — Текстовый комментарий, присваиваемый каждой открытой позиции.
Получить полный код

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

#property strict 

#property description "Optimized for Higher Win-Rate, Lower Drawdown, and Smart Recovery."

input group "=== EMA TREND & ENTRY FILTERS ==="
input int    ema_fast_period        = 8;       // Fast EMA (Shift 1)
input int    ema_slow_period        = 34;      // Slow EMA (Shift 1)
input double trend_threshold_pips   = 2.0;     // Minimum Trend Strength (Pips)
input int    rsi_period             = 14;      // RSI Filter Period
input double rsi_overbought         = 72.0;    // Overbought Filter (Block Buy)
input double rsi_oversold           = 28.0;    // Oversold Filter (Block Sell)

input group "=== GRID LAYERING & LOT SIZING ==="
input double fixed_lot              = 0.01;    // Base Lot Size
input double lot_multiplier         = 1.15;    // Controlled Multiplier Per Layer
input int    max_layers             = 6;       // Max Layers per Direction
input double min_grid_step_pips     = 12.0;    // Minimum Grid Distance (Pips)
input double atr_grid_factor        = 1.2;     // ATR Spacing Factor

input group "=== DYNAMIC EQUITY TRAIL & RECOVERY ==="
input bool   use_percent_trailing   = true;    // Use Account % Profit Trailing (Auto-Scales)
input double trail_start_percent    = 0.8;     // Profit % to Activate Trailing
input double trail_step_percent     = 0.25;    // Pullback % to Liquidate Profit
input double trail_start_amount     = 8.0;     // Fixed $ Profit Start (if % false)
input double trail_dist_amount      = 3.0;     // Fixed $ Profit Pullback (if % false)
input bool   use_partial_close      = true;    // Smart Recovery (Close Oldest + Newest at BE)

input group "=== RISK PROTECTION & SAFETY ==="
input double max_equity_drawdown_pct= 15.0;    // Emergency Circuit Breaker DD Limit (%)
input double max_spread_pips        = 4.0;     // Max Allowed Spread (Pips)
input int    initial_magic          = 202605212;// Magic Number
input string trade_comment          = "Hedging-Opt-v1.10"; // Trade Comment

int    g_buy_layers      = 0;
int    g_sell_layers     = 0;
double g_peak_profit     = 0.0;
bool   g_trailing_active = false;

int OnInit() {
      // код доступен только после оплаты
   }

void OnTick() {
      // код доступен только после оплаты
   }

double GetPipSize() {
    if (Digits == 3 || Digits == 5) return Point * 10.0;
    return Point;
}

bool IsSpreadTooHigh() {
    double current_spread = (Ask - Bid) / GetPipSize();
    return (current_spread > max_spread_pips);
}

bool CheckEmergencyDrawdown() {
    if (max_equity_drawdown_pct <= 0) return false;
    double balance = AccountBalance();
    if (balance <= 0) return false;

    double equity = AccountEquity();
    double dd_pct = ((balance - equity) / balance) * 100.0;

    if (dd_pct >= max_equity_drawdown_pct) {
        Print("CRITICAL PROTECTION: Emergency Drawdown Limit Reached (", DoubleToString(dd_pct, 2), "%). Liquidating All!");
        CloseAll();
        return true;
    }
    return false;
}

bool IsAccelerationPhase() {
    double atr0 = iATR(Symbol(), 0, 14, 1);
    double atr5 = iATR(Symbol(), 0, 14, 6);

    if (atr5 > 0 && atr0 > atr5 * 1.35) return true; 
    return false;
}

bool IsTrendExhausted() {
    double rsi = iRSI(Symbol(), 0, rsi_period, PRICE_CLOSE, 1);
    if (rsi > rsi_overbought || rsi < rsi_oversold) return true;
    return false;
}

int GetTrend() {
    double fast = iMA(Symbol(), 0, ema_fast_period, 0, MODE_EMA, PRICE_CLOSE, 1);
    double slow = iMA(Symbol(), 0, ema_slow_period, 0, MODE_EMA, PRICE_CLOSE, 1);

    double diff = (fast - slow) / GetPipSize();

    if (diff >= trend_threshold_pips) return OP_BUY;
    if (diff <= -trend_threshold_pips) return OP_SELL;

    return -1;
}

double GetTotalExposure() {
    double total = 0;
    for (int i = 0; i < OrdersTotal(); i++) {
        if (OrderSelect(i, SELECT_BY_POS) && 
            OrderSymbol() == Symbol() && 
            OrderMagicNumber() == initial_magic) 
        {
            total += OrderLots();
        }
    }
    return total;
}

double CalcLot(int layer_index) {
    double lot = fixed_lot * MathPow(lot_multiplier, layer_index);

    double total_exposure = GetTotalExposure();
    if (total_exposure > 0) {
        lot *= (1.0 / (1.0 + total_exposure * 0.12));
    }

    return NormalizeLot(lot);
}

double GetGridDistance() {
    double atr = iATR(Symbol(), 0, 14, 1);
    double base_dist = atr * atr

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

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

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

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

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

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

Стоимость полного кода
925₽ ≈ $11.31