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

black.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 общих тегов
Вы автор или правообладатель?

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

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

О программе

Black.mq4 — торговый советник для MetaTrader 4, который автоматически открывает и закрывает позиции на основании сигналов внешнего пользовательского индикатора. Советник поддерживает торговлю в заданном временном диапазоне и предоставляет настройки размера лота, стоп-лосса, тейк-профита, трейлинг-стопа и безубыточного уровня.

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

Все торговые операции выполняются через стандартные средства MetaTrader 4 с привязкой к текущему символу и магическому номеру для идентификации сделок данного советника.

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

НастройкаОписание
Lots Начальный размер лота для открытия позиций.
KLot Коэффициент умножения лота при корректировке размера позиции после убыточных сделок.
MaxLot Максимально допустимый размер лота. Если рассчитанный лот превышает это значение, используется начальный лот.
StopLoss Стоп-лосс для открытых позиций, в пунктах. Если значение равно 0, стоп-лосс не устанавливается.
TakeProfit Тейк-профит для открытых позиций, в пунктах. Если значение равно 0, тейк-профит не устанавливается.
BULevel Уровень, при котором активируется функция перевода позиции в безубыточную точку. Если значение равно 0, функция не выполняется.
BUPoint Расстояние в пунктах для перевода позиции в безубыточную точку после активации по уровню BULevel.
TrailingStop Расстояние в пунктах для активации трейлинг-стопа. Если значение равно 0, трейлинг-стоп не выполняется.
StartHour Час начала разрешённого торгового окна (серверное время).
StartMin Минута начала разрешённого торгового окна (серверное время).
EndHour Час окончания разрешённого торгового окна (серверное время).
EndMin Минута окончания разрешённого торгового окна (серверное время).
Slip Допустимое проскальзывание цены при выполнении торговых операций, в пунктах.
Shift Номер бара, на котором считывается сигнал индикатора (0 — текущий бар, 1 — предыдущий).
CloseSig Флаг, определяющий, выполняется ли закрытие позиций по сигналам индикатора. При значении 1 закрытие активно.
Magic Магический номер, используемый для идентификации позиций, открытых данным советником.
IndName Имя внешнего пользовательского индикатора, сигналы которого используются для открытия и закрытия позиций.
Gl_period_76 Параметр, передаваемый в пользовательский индикатор для расчёта торговых сигналов.
Gli_80 Параметр, передаваемый в пользовательский индикатор для расчёта торговых сигналов.
MM Параметр, передаваемый в пользовательский индикатор для расчёта торговых сигналов.
Gli_88 Параметр, передаваемый в пользовательский индикатор для расчёта торговых сигналов.
Gli_92 Параметр, передаваемый в пользовательский индикатор для расчёта торговых сигналов.
Gl_shift_96 Параметр сдвига, передаваемый в пользовательский индикатор для расчёта торговых сигналов.
SL_pips Параметр в пунктах, передаваемый в пользовательский индикатор для расчёта торговых сигналов.
Получить полный код

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

#property version   "1.00"
#property strict

extern double Lots       = 0.1;      // лот
extern double KLot       = 1;        // умножение лота
extern double MaxLot     = 5;        // максимальный лот
extern int StopLoss      = 2000;     // лось
extern int TakeProfit    = 3000;     // язь
extern int BULevel       = 0;        // уровень БУ
extern int BUPoint       = 30;       // пункты БУ
extern int TrailingStop  = 0;        // трал
extern int StartHour     = 0;        // час начала торговли
extern int StartMin      = 30;       // минута начала торговли
extern int EndHour       = 23;       // час окончания торговли
extern int EndMin        = 30;       // минута окончания торговли
extern int Slip          = 30;       // реквот
extern int Shift         = 1;        // на каком баре сигнал индикатора
extern int CloseSig      = 1;        // 1-закрытие по сигналу
extern int Magic         = 123;      // магик

extern string IndName    = "BlackFX";
extern int Gl_period_76=28;
extern int Gli_80=2;
extern int MM=1;
extern int Gli_88 = 1;
extern int Gli_92 = 1;
extern int Gl_shift_96=1000;
extern int SL_pips=20;

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

void OnDeinit(const int reason)
  {
   Comment("");
  }

bool isTradeTimeInt(int hb=0,int mb=0,int he=0,int me=0)
  {
   datetime db, de;           // Время начала и окончания работы
   int      hc;               // Часы текущего времени торгового сервера

   db=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+(string)hb+":"+(string)mb);
   de=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+(string)he+":"+(string)me);
   hc=TimeHour(TimeCurrent());

   if(db>=de)
     {
      if(hc>=he) de+=24*60*60; else db-=24*60*60;
     }

   if(TimeCurrent()>=db && TimeCurrent()<=de) return(True);
   else return(False);
  }

void PutOrder(int type,double price)
  {
   int r=0;
   color clr=Green;
   double sl=0,tp=0;

   if(type==1 || type==3 || type==5)
     {
      clr=Red;
      if(StopLoss>0) sl=NormalizeDouble(price+StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(price-TakeProfit*Point,Digits);
     }

   if(type==0 || type==2 || type==4)
     {
      clr=Blue;
      if(StopLoss>0) sl=NormalizeDouble(price-StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(price+TakeProfit*Point,Digits);
     }

   r=OrderSend(NULL,type,Lot(),NormalizeDouble(price,Digits),Slip,sl,tp,"",Magic,0,clr);
   return;
  }

int CountTrades()
  {
   int count=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()<2) count++;
           }
        }
     }
   return(count);
  }

void OpenPos()
  {
   double b = iCustom(NULL,0,IndName,Gl_period_76,Gli_80,MM,Gli_88,Gli_92,Gl_shift_96,SL_pips,2,Shift);
   double s = iCustom(NULL,0,IndName,Gl_period_76,Gli_80,MM,Gli_88,Gli_92,Gl_shift_96,SL_pips,3,Shift);

   if(b>0)
     {
      PutOrder(0,Ask);
     }

   if(s>0)
     {
      PutOrder(1,Bid);
     }
  }

void ClosePos()
  {
   double b = iCustom(NULL,0,IndName,Gl_period_76,Gli_80,MM,Gli_88,Gli_92,Gl_shift_96,SL_pips,2,Shift);
   double s = iCustom(NULL,0,IndName,Gl_period_76,Gli_80,MM,Gli_88,Gli_92,Gl_shift_96,SL_pips,3,Shift);

   if(s>0)
     {
      CloseAll(0);
     }

   if(b>0)
     {
      CloseAll(1);
     }
  }

double Lot()
  {
   double lot=Lots;
   for(int i=OrdersHistoryTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELE

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

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

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

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

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

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

Стоимость полного кода
481,70₽ ≈ $5.89