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

Grid-Mod-3124 standart

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

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

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

О программе

Grid-Mod-3124 standart — торговый советник для MetaTrader 4, реализующий сеточную торговлю. Советник автоматически открывает ордера BUY и SELL на заданном ценовом шаге, увеличивая лот по мультипликатору при каждом новом ордере. Также он модифицирует тейк-профит существующих позиций, пересчитывая его на основе средневзвешенной цены входа с учётом минимальной прибыли.

Внутри советник фильтрует открытые ордера по магическому номеру и символу, отслеживает максимальные и минимальные цены входа для покупок и продаж. При отсутствии ордеров или достижении ценового шага от последнего ордера отправляются новые рыночные заявки через торговый API MetaTrader. Тейк-профит устанавливается или корректируется через OrderModify с учётом допустимого проскальзывания.

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

НастройкаОписание
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 total_old = -1;

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 * _Poin

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

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

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

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

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

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

Стоимость полного кода
248,60₽ ≈ $3.04