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

Супермощная HFT-торговля

super power hft_5341427908642637488.mq5

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

ares_indicator.pineTradingView · 1 общих теговgold_trend_revers.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!!-mt4 x-xardg-rsi.mq5MQL5 / MetaTrader 5 · 1 общих тегов! cycle-identifier.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!! rsi ma simple+arrows 1.2 (mtf).mq5MQL5 / MetaTrader 5 · 1 общих теговprecisionflowea.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

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

В продукте реализованы механизмы управления рисками: трейлинг-стоп, фиксированные или автоматические стоп-лосс и тейк-профит, ограничение максимального количества открытых позиций, а также временные фильтры торговли. Доступен автоматический расчет размера лота на основе процента риска от депозита.

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

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

НастройкаОписание
EnableTrading Главный переключатель, разрешающий или запрещающий советнику совершать торговые операции.
EA_Comment Текстовый комментарий, добавляемый к каждой открытой сделке для идентификации позиций, открытых данным советником.
MagicNumber Магический номер, используемый для идентификации позиций, открытых данным советником, на счёте.
FixedLot Фиксированный размер лота для открытия сделок при отключённом автоматическом расчёте.
UseAutoLot Переключатель автоматического расчёта размера лота на основе заданного процента риска от депозита.
RiskPercent Процент риска от текущего баланса депозита, используемый при автоматическом расчёте размера лота.
MaxLot Максимально допустимый размер лота, ограничивающий размер открытых позиций.
MinLot Минимально допустимый размер лота для открытия позиций.
StopLoss Уровень стоп-лосса в пунктах, задающий максимальный допустимый убыток по позиции.
TakeProfit Уровень тейк-профита в пунктах, задающий целевой уровень фиксации прибыли по позиции.
UseTrailingStop Переключатель, включающий или выключающий функцию трейлинг-стопа для управления защитой позиций.
TrailingStart Расстояние в пунктах от цены открытия позиции, при достижении которого начинается сдвиг трейлинг-стопа.
TrailingStep Шаг трейлинг-стопа в пунктах, определяющий расстояние от текущей цены до уровня стоп-лосса при активном трейлинге.
StartHour Час начала торговой сессии. Сделки не открываются до указанного часа.
EndHour Час окончания торговой сессии. Сделки не открываются после указанного часа.
TradeMondayFriday Переключатель, определяющий, торговать ли советнику с понедельника по пятницу (выходные дни исключаются при включении).
AvoidNews При включении советник старается избегать открытия сделок в периоды выхода важных новостей.
MaxOpenPositions Максимальное количество одновременно открытых позиций, управляемых советником.
Получить полный код

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

#property version   "8.00"
#property description "СПЕЦИАЛЬНОЕ ПРЕДЛОЖЕНИЕ ДЛЯ ТОРГОВЛИ С СИСТЕМОЙ HFT"

#include <Trade\Trade.mqh>
#include <Trade\PositionInfo.mqh>
#include <Trade\OrderInfo.mqh>

input group "=== ОСНОВНЫЕ НАСТРОЙКИ ==="
input bool     EnableTrading      = true;           // Разрешить торговлю
input string   EA_Comment         = "Супермощная HFT-торговля"; // Комментарий ЕА
input int      MagicNumber        = 12345;          // Магический номер

input group "=== НАСТРОЙКИ ЛОТОВ ==="
input double   FixedLot           = 0.1;            // Фиксированный лот
input bool     UseAutoLot         = false;          // Автоматический расчет лота
input double   RiskPercent        = 2.0;            // Риск в процентах от депозита
input double   MaxLot             = 10.0;           // Максимальный лот
input double   MinLot             = 0.01;           // Минимальный лот

input group "=== СТОП-ЛОСС И ТЕЙК-ПРОФИТ ==="
input int      StopLoss           = 20;             // Стоп-лосс в пунктах
input int      TakeProfit         = 30;             // Тейк-профит в пунктах
input bool     UseTrailingStop    = true;          // Использовать трейлинг-стоп
input int      TrailingStart      = 15;            // Начало трейлинга в пунктах
input int      TrailingStep       = 5;             // Шаг трейлинга в пунктах

input group "=== ВРЕМЕННЫЕ НАСТРОЙКИ ==="
input int      StartHour          = 6;              // Час начала торговли
input int      EndHour            = 20;             // Час окончания торговли
input bool     TradeMondayFriday  = true;          // Торговать с понедельника по пятницу
input bool     AvoidNews          = true;          // Избегать новостей

input group "=== НАСТРОЙКИ СКАЛЬПИНГА ==="
 int      ScalpPeriod        = 1;             // Период для скальпинга (минуты)
 double   MinPriceMovement   = 5.0;           // Минимальное движение цены (пункты)
input int      MaxOpenPositions   = 5;            // Максимальное количество открытых позиций
 int      RSI_Period         = 14;            // Период RSI
 int      RSI_Overbought     = 70;            // Уровень перекупленности RSI
 int      RSI_Oversold       = 30;            // Уровень перепроданности RSI

input group "=== НАСТРОЙКИ ХЕДЖИРОВАНИЯ ==="
 bool     EnableHedging      = true;          // Включить хеджирование
 double   HedgeRatio         = 1.5;           // Коэффициент хеджирования
 int      HedgeTrigger       = -50;           // Убыток для активации хеджа (пункты)
 int      MaxHedgePositions  = 3;            // Максимум позиций хеджа

input group "=== НАСТРОЙКИ ИНДИКАТОРОВ ==="
 int      EMA_Fast           = 5;             // Быстрая EMA
 int      EMA_Slow           = 20;            // Медленная EMA
 int      BB_Period          = 20;            // Период Bollinger Bands
 double   BB_Deviation       = 2.0;          // Отклонение Bollinger Bands

CTrade         trade;
CPositionInfo  positionInfo;
COrderInfo     orderInfo;

int            ema_fast_handle;
int            ema_slow_handle;
int            rsi_handle;
int            bb_handle;

double         ema_fast[];
double         ema_slow[];
double         rsi[];
double         bb_upper[];
double         bb_lower[];
double         bb_middle[];

datetime       lastTradeTime;
int            totalPositions;
double         totalProfit;
bool           hedgeActive;

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

void OnDeinit(const int reason)
{

    IndicatorRelease(ema_fast_handle);
    IndicatorRelease(ema_slow_handle);
    IndicatorRelease(rsi_handle);
    IndicatorRelease(bb_handle);

    Print("Скальпинг и Хеджирование ЕА деинициализирован");
}

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

bool IsTradeTime()
{
    MqlDateTime dt;
    TimeToStruct(TimeCurrent(), dt);

    if(TradeMondayFriday && (dt.day_of_week == 0 || dt.day_of_week == 6))
        return false;

    if(dt.hour < StartHour || dt.hour > EndHour)
        return false;

    return true;
}

bool UpdateIndicators()
{
    if(CopyBuffer(ema_fast_handle, 0, 0, 3, ema_fast) <= 0)
        return false;

    if(CopyBuffer(ema_slow_handle, 0, 0, 3, ema_slow) <= 0)
        return false;

    if(CopyBuffer(rsi_handle, 0, 0, 3, rsi) <= 0)
        return false;

    if(CopyBuffer(bb_handle, 1, 0, 3, bb_upper) <= 0)
        return false;

    if(CopyBuffer(bb_handle, 2, 0, 3, bb_lower) <= 0)
        return false;

    if(CopyBuffer(bb_handle, 0, 0, 3, bb_middle) <= 0)
        return false;

    return true;
}

void CountPositions()
{
    totalPositions = 0;
    totalProfit = 0;

    for(int i = PositionsTotal() - 1; i >= 0; i--)
    {
        if(positionInfo.SelectByIndex(i))
        {
            if(positionInfo.Symbol() == Symbol() && positionInfo.Magic() == MagicNumber)
            {
                totalPositions++;
                totalProfit += positionInfo.Profit() + positionInfo.Swap() + positionInfo.Commission();
            }
        }
    }
}

void CheckScalpingSignals()
{

    if(TimeCurrent() - lastTradeTime < ScalpPeriod * 60)
        return;

    double ask = SymbolInfoDouble(Symbol(), SYMBOL_ASK);
    double bid = SymbolInfoDouble(Symbol(), SYMBOL_BID);

    if(IsLongSignal())
    {
        double lot = CalculateLotSize();
        double sl = NormalizeDouble(ask - StopLoss * _Point, _Digits);
        double tp = NormalizeDouble(ask + TakeProfit * _Point, _Digits);

        if(t

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

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

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

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

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

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

Стоимость полного кода
935,80₽ ≈ $11.44