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

trendscalper_tr_opbartr.mq4

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

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

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

О программе

Советник для платформы MetaTrader 4, предназначенный для автоматической торговли на основе анализа полос Боллинджера и пользовательского индикатора TTF_TR. Открывает длинные и короткие позиции при определённых условиях пробоя и пересечения сигнальных линий. Использует управление рисками и несколько режимов расчёта объёма позиции.

Советник отслеживает открытые позиции и управляет ими: закрывает сделки при достижении начальной цели или при развороте сигнальной линии, а также перемещает стоп-лосс при достижении определённого профита с использованием индикатора ATR. В режиме бэктеста обеспечивает корректную обработку входов и выходов на уровне открытия бара.

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

НастройкаОписание
LotsIfNoMM Объём без MM — Базовый размер лота при отключённом автоматическом управлении рисками
Stoploss Стоп-лосс — Размер стоп-лосса в пунктах от цены открытия
TakeProfit Тейк-профит — Размер тейк-профита в пунктах от цены открытия
Slip Слиппедж — Допустимое проскальзывание при открытии и закрытии ордеров в пунктах
InitialTarget Начальная цель — Минимальный профит в пунктах, при достижении которого позиция может быть закрыта вручную по условию
BB2periodMin Минимальный период BB — Нижняя граница диапазона периодов полос Боллинджера для проверки условий
BB2periodMax Максимальный период BB — Верхняя граница диапазона периодов полос Боллинджера для проверки условий
BB2multiplier Множитель BB — Коэффициент отклонения от средней линии полос Боллинджера для определения пробоя
TTFperiod1 Период TTF_TR 1 — Первый период пользовательского индикатора TTF_TR для формирования сигнала
TTFperiod2 Период TTF_TR 2 — Второй период пользовательского индикатора TTF_TR; при нулевом значении второй сигнал отключается
TSmultiplier Множитель TS — Множитель ATR для расчёта расстояния трейлинг-стопа
MM_Mode Режим MM — Режим управления денежными средствами: фиксированный лот, дробные лоты или полные лоты с учётом риска
MM_Risk Риск MM — Коэффициент риска, определяющий размер лота в зависимости от баланса
Получить полный код

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

extern double    LotsIfNoMM=0.1;
extern int       Stoploss=40;
extern int       TakeProfit=999;
extern int       Slip=5;
extern int       InitialTarget=999;
extern int       BB2periodMin=85;
extern int       BB2periodMax=95;
extern double    BB2multiplier=0.95;
extern int       TTFperiod1=15;
extern int       TTFperiod2=0;
extern double    TSmultiplier=6;
extern int       MM_Mode=0;
extern int       MM_Risk=40;

double Opentrades,orders,first,mode,cnt,Ilo,sym,b;
double b4signal,Signal,Triggerline,b4Triggerline,Triggerline2,b4Triggerline2,NowTriggerline,sl,LastOpByExpert,LastBarChecked,NoTouchBar;
bool PotentialLong,PotentialShort;

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

int deinit()
  {

   return(0);
  }

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

   Comment(" Trailingstop    ",  b, "\n","      Tick no. ", iVolume(Symbol(),0,0),
     "\n"," Lots    ",Ilo);

   /**********************************Money and Risk Management***************************************
   Changing the value of mm will give you several money management options
   mm = 0 : Single 1 lot orders.
   mm = -1 : Fractional lots/ balance X the risk factor.(use for Mini accts)
   mm = 1 : Full lots/ balance X the risk factor up to 100 lot orders.(use for Regular accounts)
   ***************************************************************************************************
   RISK FACTOR:
   risk can be anything from 1 up. 
   Factor of 5 adds a lot for every $20,000.00 added to the balance. 
   Factor of 10 adds a lot with every $10.000.00 added to the balance.
   The higher the risk,  the easier it is to blow your margin..
   **************************************************************************************************/

   if (MM_Mode < 0)  {
   Ilo = MathCeil(AccountBalance()*MM_Risk/10000)/10;
     if (Ilo > 100) {  
     Ilo = 100;  
     }
   } else {
   Ilo = LotsIfNoMM;
   }
   if (MM_Mode > 0)  
    {
   Ilo = MathCeil(AccountBalance()*MM_Risk/10000)/10;
    if (Ilo > 1)  
    {
    Ilo = MathCeil(Ilo);
    }
    if (Ilo < 1)  
    {
    Ilo = 1;
    }
    if (Ilo > 100)  
    {  
     Ilo = 100;  
     }
   }

   Opentrades=0;
   for (cnt=0;cnt<OrdersTotal();cnt++) 
   {
      if ( OrderSelect (cnt, SELECT_BY_POS) == false )  continue;
      if ( OrderSymbol()==Symbol()) Opentrades=Opentrades+1;
   }

   if (Opentrades==0)  //and iATR(5,2)<StopLoss*Point 

     {

     if (LastBarChecked == Time[0]) 
         return(0); 
      else 
  	      {

         if (NoTouchBar  == Time[0]) return(0); //This ensures that no positions will be opened during a bar where a SL was hit. This makes backtests at open prices only fully accurate.

  	      if (IsTesting()==True) LastBarChecked = Time[0]; //Setting this only when backtesting ensures that the full entry code will be run on each tick (when there are no positions open), in case a setorder fails and needs to be retried. Eventually I'll add in MT4 errortrapping features as well.

  	      PotentialLong=false;
  	      PotentialShort=false;

         for (cnt=BB2periodMin;cnt<=BB2periodMax;cnt++) 
            {

            if (! PotentialShort && High[1]>(iBands(Symbol(),0,cnt,2,0,PRICE_CLOSE,MODE_MAIN,1) + ((iBands(Symbol(),0,cnt,2,0,PRICE_CLOSE,MODE_UPPER,1) - iBands(Symbol(),0,cnt,2,0,PRICE_CLOSE,MODE_MAIN,1)) * BB2multiplier)))
               {
               PotentialShort=True;
               }
            if (! PotentialLong && Low[1]<(iBands(Symbol(),0,cnt,2,0,PRICE_CLOSE,MODE_MAIN,1) - ((iBands(Symbol(),0,cnt,2,0,PRICE_CLOSE,MODE_MAIN,1) - iBands(Symbol(),0,cnt,2,0,PRICE_CLOSE,MODE_LOWER,1)) * BB2multiplier)))
               {
          

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

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

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

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

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

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

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