Обзор работы советника SimpleMA для автоматической торговли на Forex

В этой статье мы постараемся разобрать код советника (торгового робота) на языке программирования MQL4 под названием SimpleMA.mq4. Этот советник основывается на простых скользящих средних (SMA) и предназначен для автоматической торговли на финансовых рынках.

Общая структура и параметры

//+------------------------------------------------------------------+
//|                                                    SimpleMA.mq4  |
//|                               Copyright 2025, forex-robot.store. |
//|                                       https://forex-robot.store/ |
//+------------------------------------------------------------------+
#property strict

// Параметры индикаторов
input int fastMAPeriod = 10;  // Период быстрой SMA
input int slowMAPeriod = 20;   // Период медленной SMA
input double lotSize = 0.1;    // Объем лота
input double takeProfitPips = 200; // Тейк-профит в пунктах
input double stopLossPips = 400;   // Стоп-лосс в пунктах

В начале файла определяются метаданные и параметры, которые можно настроить через интерфейс MetaTrader. Здесь мы видим:

  • fastMAPeriod: период для быстрой скользящей средней (SMA), установленный по умолчанию на 10.
  • slowMAPeriod: период для медленной скользящей средней, установленный на 20.
  • lotSize: объем сделки, установленный на 0.1.
  • takeProfitPips и stopLossPips: значения тейк-профита и стоп-лосса в пунктах.

Обзор работы советника SimpleMA

Инициализация советника

//+------------------------------------------------------------------+
//| Создание эксперта                                                 |
//+------------------------------------------------------------------+
int OnInit()
{
    return INIT_SUCCEEDED;
}

Функция OnInit() вызывается при запуске советника. В данном случае она просто возвращает статус успешной инициализации. Здесь можно добавить дополнительные настройки, если это потребуется.

Основная логика торговли

//+------------------------------------------------------------------+
//| Основная функция покупки и продажи                                 |
//+------------------------------------------------------------------+
void OnTick()
{
    // Получение значений скользящих средних
    double fastMA = iMA(NULL, 0, fastMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 0);
    double slowMA = iMA(NULL, 0, slowMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 0);
    double previousFastMA = iMA(NULL, 0, fastMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 1);
    double previousSlowMA = iMA(NULL, 0, slowMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 1);

Функция OnTick() вызывается каждый раз, когда поступает новый тик (изменение цены). В этой функции считываются значения быстрой и медленной скользящих средних, а также их значения за предыдущий период.

Условия открытия позиций

Условия для покупки

    // Условия для покупки
    if (previousFastMA < previousSlowMA && fastMA > slowMA)
    {
        // Проверка на открытые позиции
        if (OrdersTotal() == 0) 
        {
            double takeProfitPrice = NormalizeDouble(Ask + takeProfitPips * Point, Digits);
            double stopLossPrice = NormalizeDouble(Ask - stopLossPips * Point, Digits);

            // Открытие позиции на покупку с TP и SL
            int buyTicket = OrderSend(Symbol(), OP_BUY, lotSize, Ask, 2, stopLossPrice, takeProfitPrice, "Buy Order", 0, 0, clrGreen);
            if (buyTicket < 0)
            {
                Print("Ошибка открытия ордера: ", GetLastError());
            }
        }
    }

Если быстрая SMA пересекает медленную SMA снизу вверх (т.е. текущее значение быстрой SMA больше, чем медленная SMA), и если на данный момент нет открытых позиций, то робот открывает позицию на покупку (BUY) с заданным лотом. При этом рассчитываются уровни тейк-профита и стоп-лосса.

Условия для продажи

    // Условия для продажи
    if (previousFastMA > previousSlowMA && fastMA < slowMA)
    {
        // Проверка на открытые позиции
        if (OrdersTotal() == 0) 
        {
            double takeProfitPrice = NormalizeDouble(Bid - takeProfitPips * Point, Digits);
            double stopLossPrice = NormalizeDouble(Bid + stopLossPips * Point, Digits);

            // Открытие позиции на продажу с TP и SL
            int sellTicket = OrderSend(Symbol(), OP_SELL, lotSize, Bid, 2, stopLossPrice, takeProfitPrice, "Sell Order", 0, 0, clrRed);
            if (sellTicket < 0)
            {
                Print("Ошибка открытия ордера: ", GetLastError());
            }
        }
    }
}

Аналогично, если быстрая SMA пересекает медленную SMA сверху вниз, и на текущий момент также нет открытых позиций, то советник открывает позицию на продажу (SELL) с соответствующими уровнями тейк-профита и стоп-лосса.

Заключение

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

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

Обзор работы советника SimpleMA


246 10.02.2025
Последние Новости
Open Lock AutoСalibration - самонастраивающийся советник
Open Lock AutoСalibration - самонастраивающийся советник

Советник, разработан по заказу инвест подразделения немецкого GTC в 2019 году, и сейчас доступен для установки на личные счета в т..

Новости по роботам
24.04.2025 239
Закрытая группа по форекс советникам без ограничений
Закрытая группа по форекс советникам без ограничений

Присоединяйтесь к нашей закрытой телеграм группе по форекс советникам 👋 Уважаемые трейдеры! Мы рады представить вам нашу новую ..

Новости сайта
07.04.2025 749
Что такое виртуальный сервер VPS в трейдинге
Что такое виртуальный сервер VPS в трейдинге

В последние годы виртуальные частные серверы (VPS) стали популярным инструментом среди трейдеров, использующих автоматизированные ..

Общее про форекс
12.02.2025 477
Наш сайт использует cookie и другие технологии. Продолжая им пользоваться, вы соглашаетесь на обработку персональных данных в соответствии с политикой конфиденциальности.