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

FreeScalper

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

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

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

О программе

FreeScalper — советник для MetaTrader 4, использующий пользовательский индикатор freescalperindicator для генерации сигналов на открытие и закрытие позиций. При положительном значении зелёного буфера индикатор открывается BUY, при положительном значении красного — SELL. Закрытие позиции происходит при развороте сигнала индикатора.

Советник работает только в заданном временном окне (от StartHour:StartMin до EndHour:EndMin). Вне этого окна, при установленном параметре CloseOn, все открытые позиции закрываются. Дополнительно реализованы функции скользящего стоп-лосса (TrailingStop) и перевода в безубыток (BU).

Управление объёмом предусматривает увеличение лота после убыточной сделки в KLot раз с ограничением до MaxLot. Все ордера идентифицируются магическим числом Magic и допускают настройку стоп-лосса, тейк-профита и проскальпывания.

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

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

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

#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 CloseOn       = 1;        // 1-???????? ? ????? ??????
extern int Magic         = 123;      // ?????
extern string IndName    = "freescalperindicator";
extern int IndPeriod     = 14;

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 green = iCustom(NULL,0,IndName,IndPeriod,0,Shift);
   double red = iCustom(NULL,0,IndName,IndPeriod,1,Shift);

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

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

void ClosePos()
  {
   double green = iCustom(NULL,0,IndName,IndPeriod,0,Shift);
   double red = iCustom(NULL,0,IndName,IndPeriod,1,Shift);

   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==OP_BUY)
              {
               if(red>0)
                 {
                  if(!OrderClose(OrderTicket(),OrderLots(),Bid,Slip,White))
                     Print("OrderClose error ",GetLastError());
                 }
              }
            if(OrderType()==OP_SELL)
              {
               if(green>0)
                 {
                  if(!OrderClose(OrderTicket(),OrderLots()

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

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

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

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

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

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

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