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

Trend Stoch EA (Clean + Safe)

stoch50_ema200_ea_full.mq4
Вы автор или правообладатель?

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

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

О программе

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

Советник поддерживает открытие позиций Buy и Sell с возможностью задания объёма лота, магического номера для идентификации ордеров, а также фиксированных уровней стоп-лосса и тейк-профита. При обнаружении противоположного сигнала текущая позиция закрывается и открывается новая.

Встроена функция трейлинг-стопа для управления защитными уровнями по открытым позициям. Также реализована логика закрытия позиций при развороте тренда. Все параметры управления рисками настраиваются пользователем через внешние переменные.

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

НастройкаОписание
MagicNumber Магический номер — Магический номер для идентификации ордеров советника.
Lots Объём лота — Объём лота для открытия позиции.
UseStopLoss Использовать стоп-лосс — Включает или отключает использование стоп-лосса.
StopLossPips Стоп-лосс (пункты) — Расстояние стоп-лосса в пунктах при активированной защите.
UseTakeProfit Использовать тейк-профит — Включает или отключает использование тейк-профита.
TakeProfitPips Тейк-профит (пункты) — Расстояние тейк-профита в пунктах при активированной защите.
UseTrailingStop Использовать трейлинг-стоп — Включает или отключает трейлинг-стоп для открытых позиций.
TrailingStopPips Трейлинг-стоп (пункты) — Расстояние трейлинг-стопа в пунктах для сдвига защитного уровня.
Получить полный код

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

#property strict

extern int    MagicNumber      = 777;
extern double Lots             = 0.01;

extern bool   UseStopLoss      = false;
extern double StopLossPips     = 300;

extern bool   UseTakeProfit    = false;
extern double TakeProfitPips   = 600;

extern bool   UseTrailingStop  = false;
extern int    TrailingStopPips = 150;

int Kperiod = 1000;
int Dperiod = 1;
int Slowing = 1;

bool PositionExists(int type)
{
   for(int i=OrdersTotal()-1; i>=0; i--)
   {
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
      if(OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol() && OrderType()==type)
         return(true);
   }
   return(false);
}

void CloseOpposite(int type)
{
   for(int i=OrdersTotal()-1; i>=0; i--)
   {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {
         if(OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol() && OrderType()==type)
         {
            bool closed = OrderClose(OrderTicket(), OrderLots(), 
                                     (type==OP_BUY ? Bid : Ask), 
                                     5, clrRed);
            if(!closed)
               Print("OrderClose FAILED: ", GetLastError());
         }
      }
   }
}

void PlaceOrder(int type)
{
   double sl=0, tp=0;

   if(type == OP_BUY)
   {
      if(UseStopLoss)   sl = Bid - StopLossPips * Point;
      if(UseTakeProfit) tp = Bid + TakeProfitPips * Point;

      int ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 5, sl, tp, 
                             "BuySignal", MagicNumber, 0, clrBlue);

      if(ticket < 0)
         Print("BUY Order failed: ", GetLastError());
   }

   if(type == OP_SELL)
   {
      if(UseStopLoss)   sl = Ask + StopLossPips * Point;
      if(UseTakeProfit) tp = Ask - TakeProfitPips * Point;

      int ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, 5, sl, tp,
                             "SellSignal", MagicNumber, 0, clrRed);

      if(ticket < 0)
         Print("SELL Order failed: ", GetLastError());
   }
}

void ApplyTrailingStop(

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

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

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

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

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

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

Стоимость полного кода
278,90₽ ≈ $3.41