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

TrendScalper

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

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

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

О программе

TrendScalper_TR — это торговый советник для MetaTrader 4, модифицированная версия оригинального TrendScalper. Советник анализирует индикатор полос Боллинджера (BB) в диапазоне периодов и пользовательский индикатор TTF_TR для определения точек входа в длинные и короткие позиции.

При отсутствии открытых позиций эксперт проверяет потенциальные сигналы на покупку и продажу, сравнивая цены с расчётными уровнями полос Боллинджера и линиями триггера TTF_TR. При совпадении условий отправляются рыночные ордера на покупку или продажу с заданным стоп-лоссом.

При наличии открытых позиций советник управляет ими посредством трейлинг-стопа на основе индикатора ATR и закрывает ордер при достижении заданной ценовой цели. Доступны несколько режимов управления денежными рисками — от фиксированного размера лота до расчёта лотов на основе баланса счёта.

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

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

НастройкаОписание
LotsIfNoMM Лот без MM — Фиксированный размер лота при отключённом управлении денежными рисками (MM_Mode = 0).
Stoploss Стоп-лосс — Расстояние стоп-лосса в пунктах от цены открытия позиции.
Slip Проскальзывание — Допустимое проскальзывание цены в пунктах при отправке рыночных ордеров.
InitialTarget Начальная цель — Ценовое расстояние в пунктах, при достижении которого позиция закрывается по рыночной цене.
BB2periodMin Минимальный период BB2 — Минимальный период полосы Боллинджера, используемый при сканировании потенциальных сигналов входа.
BB2periodMax Максимальный период BB2 — Максимальный период полосы Боллинджера, используемый при сканировании потенциальных сигналов входа.
BB2multiplier Множитель BB2 — Множитель расчёта верхней границы полосы Боллинджера для определения потенциального сигнала на продажу.
TTFperiod1 Период TTF1 — Период пользовательского индикатора TTF_TR, используемый для определения основного сигнала триггера.
TTFperiod2 Период TTF2 — Дополнительный период пользовательского индикатора TTF_TR для альтернативной проверки триггера. При значении 0 сигнал по этому периоду не генерируется.
TSmultiplier Множитель трейлинг-стопа — Множитель ATR для расчёта расстояния трейлинг-стопа от текущей цены.
MM_Mode Режим MM — Режим управления денежными рисками: отрицательное значение — дробные лоты, 0 — фиксированный лот, положительное значение — полный лот с расчётом по балансу.
MM_Risk Риск MM — Коэффициент риска, используемый при расчёте размера лота в режимах MM_Mode ≠ 0.
Получить полный код

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

extern double    LotsIfNoMM=0.1;
extern int       Stoploss=40;
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;
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 (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)) * BB2multip

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

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

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

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

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

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

Стоимость полного кода
480₽ ≈ $5.87