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