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

automarti_lads ea.mq4

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

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

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

О программе

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

Основной логикой обработки тиков является функция start(). При достижении совокупной прибыли по открытым позициям целевого значения tp_dollar советник закрывает все активные ордера и управляет внутренними флагами состояния. Также имеется режим тестирования, в котором при определённых условиях размещается тестовый ордер.

Советник поддерживает размещение отложенных ордеров типа BUYSTOP и SELLSTOP с расчётом объёма на основе текущих позиций и множителя multiplier. При активации параметра use_tp_sl существующим ордерам добавляются стоп-лосс и тейк-профит в пунктах.

Для идентификации своих ордеров используется магический номер magic. Допустимое проскальзывание контролируется параметром slip_page. Советник работает только с ордерами текущего торгового символа.

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

НастройкаОписание
jarak_op_pip Расстояние для размещения отложенных ордеров (BUYSTOP/SELLSTOP), задаваемое в пипсах от цены открытия существующей позиции.
tp_dollar Целевая прибыль в долларах по совокупным открытым позициям, при достижении которой советник закрывает все ордера.
multiplier Множитель, применяемый при расчёте объёма лота для нового отложенного ордера на основе текущих объёмов позиций.
level Пороговый уровень количества открытых позиций, при превышении которого не размещаются новые отложенные ордера.
slip_page Допустимое проскальзывание цены при отправке и модификации ордеров.
use_tp_sl Переключатель, определяющий, добавлять ли стоп-лосс и тейк-профит при модификации открытых ордеров.
tp Значение тейк-профита в пунктах, устанавливаемое при модификации ордера, если включён параметр use_tp_sl.
sl Значение стоп-лосса в пунктах, устанавливаемое при модификации ордера, если включён параметр use_tp_sl.
magic Магический номер, используемый для идентификации ордеров, отправленных советником, при подсчёте отложенных ордеров в функции f0_1().
Получить полный код

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

extern int jarak_op_pip = 20;
extern double tp_dollar = 1.0;
extern double multiplier = 2.0;
extern int level = 7;
extern int slip_page = 5;
extern bool use_tp_sl = FALSE;
extern int tp = 30;
extern int sl = 50;
extern int magic = 191;
double Gd_128;
int G_ticket_136;
int Gi_140;
int G_count_144;
bool Gi_148 = FALSE;
double G_minlot_156;

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

int deinit() {
   return (0);
}

int start() {
      // код доступен только после оплаты
   }
   int cmd_12;
   double order_open_price_16;
   double order_lots_24;
   int cmd_32;
   double order_open_price_36;
   double order_lots_44;
   double Ld_52;
   double Ld_60;
   double Ld_68;
   double Ld_0 = 0;
   for (int pos_8 = 0; pos_8 < OrdersTotal(); pos_8++) {
      OrderSelect(pos_8, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() != Symbol() || OrderType() > OP_SELL) continue;
      Ld_0 += OrderProfit();
   }
   if (Ld_0 >= tp_dollar || G_count_144 > 0 || Gi_148) {
      f0_2();
      f0_2();
      f0_2();
      G_count_144++;
      Gi_148 = TRUE;
      if (f0_3() == 0) G_count_144 = 0;
   }
   for (pos_8 = 0; pos_8 < OrdersTotal(); pos_8++) {
      OrderSelect(pos_8, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() == Symbol()) {
         cmd_12 = OrderType();
         order_open_price_16 = OrderOpenPrice();
         order_lots_24 = OrderLots();
         if (f0_3() == 0) G_count_144 = 0;
      }
   }
   if (f0_3() == 0) Gi_148 = FALSE;
   if (IsTesting() && f0_3() == 0 && f0_1() == 0 && Hour() == 0) G_ticket_136 = OrderSend(Symbol(), OP_BUY, 0.01, Ask, slip_page, 0, 0, "", 0, 0, Blue);
   for (int pos_76 = 0; pos_76 < OrdersTotal(); pos_76++) {
      OrderSelect(pos_76, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() == Symbol()) {
         cmd_32 = OrderType();
         order_open_price_36 = OrderOpenPrice();
         order_lots_44 = OrderLots();
         if (OrderType() == OP_BUY) {
            Ld_52 += OrderLots();
            if (use_tp_sl && (OrderStopLoss() == 0.0 || OrderTakeProfit() == 0.0)) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() - sl * Gd_128, OrderOpenPrice() + tp * Gd_128, 0, CLR_NONE);
         }
         if (OrderType() == OP_SELL) {
            Ld_60 += OrderLots();
            if (use_tp_sl && (OrderStopLoss() == 0.0 || OrderTakeProfit() == 0.0)) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() + sl * Gd_128, OrderOpenPrice() - tp * Gd_128, 0, CLR_NONE);
         }
      }
   }
   if (f0_3() == 0 && f0_1() > 0) f0_0();
   if (f0_3() > 0 && f0_3() < level &&

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

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

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

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

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

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

Стоимость полного кода
406,20₽ ≈ $4.97