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

Grid-Mod-3124

grid-mod-3124 orders.mq4
Вы автор или правообладатель?

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

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

О программе

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

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

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

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

НастройкаОписание
iTakeProfit Тейк-профит (пункты) — Расстояние в пунктах до уровня тейк-профита, устанавливаемое для одиночного ордера при его открытии.
iStartLots Начальный лот — Размер лота первого открываемого ордера.
iMultipler Множитель лота — Множитель, определяющий увеличение размера лота нового ордера относительно лота предыдущего при наличии уже открытых позиций.
iOrderStep Шаг открытия ордера (пункты) — Шаг в пунктах, при достижении которого открывается новый ордер. Реальный шаг рассчитывается с учётом количества уже открытых позиций.
iMinimalProfit Минимальная прибыль (пункты) — Дополнительная добавка к средневзвешенной цене в пунктах, используемая при расчёте уровня тейк-профита для модификации ордеров при наличии нескольких позиций.
iMagicNumber Магическое число — Уникальный идентификатор (магическое число) ордеров, управляемых советником. Позволяет отличать эти ордера от других. При значении -1 советник учитывает все ордера на символе без фильтрации по магическому числу.
iSlippage Допустимое проскальзывание (пункты) — Допустимое отклонение цены исполнения (в пунктах) при открытии и модификации ордеров.
Получить полный код

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

#property version   "1.00"
#property strict

input int    iTakeProfit    = 300;
input double iStartLots     = 0.01;
input double iMultipler     = 2;
input int    iOrderStep     = 390;
input int    iMinimalProfit = 50;
input int    iMagicNumber   = 227;
input int    iSlippage      = 30;

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

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

   double BuyPriceMin = 0, BuyPriceMinLot = 0, SelPriceMax = 0, SelPriceMaxLot = 0;
   int    b = 0, s = 0;
   double BuyPriceSumm = 0, BuyLotsSumm = 0, SelPriceSumm = 0, SelLotsSumm = 0;

   for(int i = 0; i < OrdersTotal(); i++)
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == true)
         if(OrderMagicNumber() == iMagicNumber || iMagicNumber == -1)
            if(OrderSymbol() == _Symbol)
              {
               if(OrderType() == OP_BUY)
                 {
                  if(OrderOpenPrice() < BuyPriceMin || BuyPriceMin == 0)
                    {
                     BuyPriceMin    = OrderOpenPrice();
                     BuyPriceMinLot = OrderLots();
                    }
                  BuyPriceSumm += OrderOpenPrice() * OrderLots();
                  BuyLotsSumm  += OrderLots();
                  b++;
                 }
               if(OrderType() == OP_SELL)
                 {
                  if(OrderOpenPrice() > SelPriceMax || SelPriceMax == 0)
                    {
                     SelPriceMax    = OrderOpenPrice();
                     SelPriceMaxLot = OrderLots();
                    }
                  SelPriceSumm += OrderOpenPrice() * OrderLots();
                  SelLotsSumm  += OrderLots();
                  s++;
                 }
              }

   double BuyLots = 0, SelLots = 0;

   if(b == 0)
      BuyLots = iStartLots;
   else
      BuyLots = BuyPriceMinLot * iMultipler;

   if(s == 0)
      SelLots = iStartLots;
   else
      SelLots = SelPriceMaxLot * iMultipler;

   if(b == 0 || (b > 0 && (BuyPriceMin - Ask) >= iOrderStep * _Point / b))
 

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

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

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

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

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

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

Стоимость полного кода
247₽ ≈ $3.02