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

simple expert advisor.mq4

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

#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих теговea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 1 общих теговsma crossover scalper ea for mt4.mq4MQL4 / MetaTrader 4 · 1 общих теговr15 pivot points expert advisor by @fundedmillionairess.mq4MQL4 / MetaTrader 4 · 1 общих теговnewstrader.mq5MQL5 / MetaTrader 5 · 1 общих теговmm3.0_flip_codepro_v3.1_with_cooldown@lifeindreamsworld.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

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

Советник использует скользящую среднюю (Moving Average) для формирования торговых сигналов. При пересечении цены закрытия с линией скользящей средней вверх открывается покупка, а при пересечении вниз — продажа. Перед открытием нового ордера противоположная позиция закрывается.

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

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

НастройкаОписание
MagicNumber Магическое число, используемое для идентификации ордеров, открытых данным советником.
Slippage Допустимое проскальзывание цены при выполнении торговых операций.
LotSize Объём сделки в лотах, используемый при открытии рыночных ордеров.
StopLoss Расстояние стоп-лосса в пунктах от цены открытия ордера. Если значение равно нулю, стоп-лосс не устанавливается.
TakeProfit Расстояние тейк-профита в пунктах от цены открытия ордера. Если значение равно нулю, тейк-профит не устанавливается.
MaPeriod Период скользящей средней, используемой для формирования торговых сигналов.
MaMethod Метод расчёта скользящей средней (например, экспоненциальная, простая и др.).
MaPrice Тип цены, используемой для расчёта скользящей средней (например, цена закрытия, цена открытия и др.).
TrailingStop Расстояние трейлинг-стопа в пунктах от текущей цены. Если значение равно нулю, трейлинг-стоп не активируется.
MinimumProfit Минимальная прибыль в пунктах, необходимая для активации трейлинг-стопа.
Step Шаг корректировки трейлинг-стопа в пунктах.
Получить полный код

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

#property description   "A simple expert advisor that places market orders"
#property strict

input int MagicNumber = 101;
input int Slippage = 10;

input double LotSize = 0.1;
input int StopLoss = 0;
input int TakeProfit = 0;

input int MaPeriod = 5;
input ENUM_MA_METHOD MaMethod = MODE_EMA;
input ENUM_APPLIED_PRICE MaPrice = PRICE_CLOSE;

input int TrailingStop = 500;
input int MinimumProfit = 200;
input int Step = 10;

int gBuyTicket, gSellTicket;

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

   int buyCount = 0, sellCount = 0;

   for(int order = 0; order <= OrdersTotal() - 1; order++)
   {
      bool select = OrderSelect(order,SELECT_BY_POS);

      if(OrderMagicNumber() == MagicNumber && select == true)
      {
         if(OrderType() == OP_BUY) buyCount++;
         else if(OrderType() == OP_SELL) sellCount++;
      }   
   }

   double ma = iMA(_Symbol,_Period,MaPeriod,0,MaMethod,MaPrice,1);
   double close = Close[1];

   if(close > ma && buyCount == 0 && gBuyTicket == 0)
   {

      for(int order = 0; order <= OrdersTotal() - 1; order++)
      {
         bool select = OrderSelect(order,SELECT_BY_POS);

         if(OrderType() == OP_SELL && OrderMagicNumber() == MagicNumber && select == true)
         {

            bool closed = OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,clrRed);
            if(closed == true) order--;
         }
      }

      gBuyTicket = OrderSend(_Symbol,OP_BUY,LotSize,Ask,Slippage,0,0,"Buy order",MagicNumber,0,clrGreen);
      gSellTicket = 0;

      if(gBuyTicket > 0 && (StopLoss > 0 || TakeProfit > 0))
      {
         bool select = OrderSelect(gBuyTicket,SELECT_BY_TICKET);

         double stopLoss = 0, takeProfit = 0;
         if(StopLoss > 0) stopLoss = OrderOpenPrice() - (StopLoss * _Point);
         if(TakeProfit > 0) takeProfit = OrderOpenPrice() + (TakeProfit * _Point);

         double stopLevel = MarketInfo(_Symbol,MODE_STOPLEVEL) * _Point;

         RefreshRates();
         double upperStopLevel = Ask + stopLevel;
         double lowerStopLevel = Bid - stopLevel;

         if(takeProfit <= upperStopLevel && takeProfit != 0) takeProfit = upperStopLevel + _Point;
         if(stopLoss >= lowerStopLevel && stopLoss  != 0) stopLoss = lowerStopLevel - _Point; 

         bool modify = OrderModify(gBuyTicket,0,stopLoss,takeProfit,0);
      }
   }

   if(close < ma && sellCount == 0 && gSellTicket == 0)
   {

      for(int order = 0; order <= OrdersTotal() - 1; order++)
      {
         bool select = OrderSelect(order,SELECT_BY_POS);

         if(OrderType() == OP_BUY && OrderMagicNumber() == MagicNumber && select == true)
         {

            bool closed = OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,clrRed);

            if(closed == true)
            {
               gBuyTicket = 0;

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

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

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

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

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

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

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