← Назад к списку файлов

black.mq4

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

#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 и нажмите кнопку, чтобы перейти к оплате.