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

swb grid 4.1_revised_05_e.mq4

Похожие материалы по тегам

!!!-mt4 x-xardg-rsi.mq5MQL5 / MetaTrader 5 · 2 общих тегов!!! rsi ma simple+arrows 1.2 (mtf).mq5MQL5 / MetaTrader 5 · 2 общих теговea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 2 общих теговsureforexhedingvonepointoneone.mq4MQL4 / MetaTrader 4 · 2 общих теговsureforexhedging 1.10 optimized.mq4MQL4 / MetaTrader 4 · 2 общих теговsureforexhedging 1.09 a (2).mq4MQL4 / MetaTrader 4 · 2 общих тегов
Вы автор или правообладатель?

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

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

О программе

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

Советник поддерживает режим хеджирования, при котором на определённых уровнях сетки могут добавляться дополнительные позиции. Доступна функция достижения дневной целевой прибыли, после которой торговля приостанавливается. Также реализована система масштабирования лотов на основе текущего баланса и функция стелс-режима без немедленной установки стоп-лосса и тейк-профита.

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

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

НастройкаОписание
separator_01 Разделитель общих настроек — Разделитель раздела общих настроек.
use_daily_target Дневная цель — Включает функцию остановки торговли при достижении дневной целевой прибыли.
daily_target Дневная целевая прибыль — Целевая дневная прибыль в долларах, при достижении которой торговля останавливается.
trade_in_fri Торговля в пятницу — Включает или отключает торговлю в пятницу.
magic Магический номер — Магический номер для идентификации ордеров советника.
start_lot Начальный лот — Начальный размер лота для первой позиции.
range Расстояние сетки — Расстояние между уровнями сетки в пунктах.
rge_multiplier Множитель расстояния — Включает экспоненциальное увеличение расстояния сетки вместо линейного.
r_multiplier Множитель расстояния — Множитель для экспоненциального увеличения расстояния сетки.
level Максимальный уровень — Максимальный уровень сетки для обычных позиций.
separator_02 Разделитель лотов и тейк-профитов — Разделитель раздела настроек лотов и тейк-профитов.
lot_multiplier Множитель лота — Включает экспоненциальное наращивание лота вместо линейного приращения.
l_multiplier Множитель лота — Множитель для экспоненциального увеличения лота.
increment Прирост лота — Шаг увеличения лота при линейном наращивании.
power_lots Мощные лоты — Включает режим расчёта лотов на основе текущего баланса.
tp_by_level Тейк-профит по уровням — Включает использование разных уровней тейк-профита в зависимости от уровня сетки.
tp_1 Тейк-профит уровня 1 — Первый уровень тейк-профита в пунктах.
tp_2 Тейк-профит уровня 2 — Второй уровень тейк-профита в пунктах.
use_sl_and_tp Стоп-лосс и тейк-профит — Включает стандартную установку стоп-лосса и тейк-профита на ордерах.
sl_std Стандартный стоп-лосс — Стандартный стоп-лосс в пунктах.
tp_std Стандартный тейк-профит — Стандартный тейк-профит в пунктах.
tp_in_money Целевая прибыль в деньгах — Целевая прибыль в деньгах для завершения торгового цикла.
stealth_mode Стелс-режим — Включает режим без немедленной установки стоп-лосса и тейк-профита на открытых ордерах.
separator_03 Разделитель хеджирования — Разделитель раздела настроек хеджирования.
hedge Хеджирование — Включает или отключает режим хеджирования на определённых уровнях сетки.
h_level Уровень хеджа — Минимальный уровень сетки, при котором активируется режим хеджирования.
h_top_level Верхний уровень хеджа — Максимальный уровень сетки, при котором активируется режим хеджирования.
h_tp Тейк-профит хеджа — Тейк-профит для хедж-позиций в пунктах.
h_sl Стоп-лосс хеджа — Стоп-лосс для хедж-позиций в пунктах.
b_even_set Выравнивание хеджа — Параметр выравнивания для хедж-позиций, определяющий минимальное отклонение цены для пересчёта стоп-лосса.
h_offset Отклонение хеджа — Допустимое отклонение цены от уровня сетки для входа в хедж-позицию.
h_factor Множитель хеджа — Множитель для расчёта размера лота хедж-позиций.
level_limit Ограничение уровней — Ограничивает максимальный уровень сетки уровнем хеджирования при активном хедже.
separator_04 Разделитель индикаторов — Разделитель раздела настроек индикаторов.
use_bb Использовать Боллинджер — Включает использование индикатора Боллинджера для генерации торговых сигналов.
bb_period Период Боллинджера — Период расчёта индикатора Боллинджера.
bb_deviation Отклонение Боллинджера — Отклонение стандартного отклонения для индикатора Боллинджера.
bb_shift Сдвиг Боллинджера — Сдвиг индикатора Боллинджера по горизонтальной оси.
use_stoch Использовать Стохастик — Включает использование индикатора Стохастик для генерации торговых сигналов.
k Параметр K Стохастика — Параметр %K для индикатора Стохастик.
d Замедление Стохастика — Параметр замедления для индикатора Стохастик.
slowing Замедление Стохастика — Параметр замедления для индикатора Стохастик.
price_field Поле цены Стохастика — Поле цены для индикатора Стохастик (0 — Close, 1 — High, 2 — Low).
stoch_shift Сдвиг Стохастика — Сдвиг индикатора Стохастик по горизонтальной оси.
lo_level Нижний уровень — Нижний пороговое значение индикатора для сигнала на покупку.
up_level Верхний уровень — Верхний пороговое значение индикатора для сигнала на продажу.
use_rsi Использовать RSI — Включает использование индикатора RSI для генерации торговых сигналов.
rsi_period Период RSI — Период расчёта основного индикатора RSI.
rsi_shift Сдвиг RSI — Сдвиг основного индикатора RSI.
lower Нижний RSI — Нижний порог RSI для сигнала на покупку.
upper Верхний RSI — Верхний порог RSI для сигнала на продажу.
separator_00 Разделитель RSI — Прямой тренд — Разделитель раздела настроек RSI — Прямой тренд.
forward_trend Прямой тренд — Переключает сигнал между режимом обратного тренда и режимом прямого тренда.
rsi_period_1 Период RSI тренда — Период RSI для определения сигнала в режиме прямого тренда.
rsi_shift_1 Сдвиг RSI тренда — Сдвиг RSI для режима прямого тренда.
lower_min Минимальный нижний RSI — Минимальное нижнее значение RSI для сигнала продажи в режиме прямого тренда.
lower_max Максимальный нижний RSI — Максимальное нижнее значение RSI для сигнала продажи в режиме прямого тренда.
upper_min Минимальный верхний RSI — Минимальное верхнее значение RSI для сигнала покупки в режиме прямого тренда.
upper_max Максимальный верхний RSI — Максимальное верхнее значение RSI для сигнала покупки в режиме прямого тренда.
use_velocity Использовать скорость — Включает использование индикатора скорости для генерации торговых сигналов.
fv_period Период скорости — Период расчёта индикатора скорости.
fv_offset Смещение скорости — Смещение для индикатора скорости при определении сигнала на покупку или продажу.
separator_05 Разделитель RSI — Вход в хедж — Разделитель раздела настроек RSI — Вход в хедж.
h_rsi_entry RSI входа в хедж — Включает или отключает использование RSI для входа в хедж-позицию.
rsi_period_2 Период RSI хеджа — Период RSI для входа в хедж-позицию.
rsi_shift_2 Сдвиг RSI хеджа — Сдвиг RSI для входа в хедж-позицию.
lower_2 Нижний RSI хеджа — Нижний порог RSI для входа в хедж-позицию.
upper_2 Верхний RSI хеджа — Верхний порог RSI для входа в хедж-позицию.
h_velocity Скорость хеджа — Включает использование индикатора скорости для входа в хедж-позицию.
use_h_rsi RSI для хеджа — Включает использование RSI вместе с индикатором скорости для входа в хедж-позицию.
vel_period Период скорости — Период расчёта пользовательского индикатора скорости.
vel_offset Смещение скорости — Смещение индикатора скорости для определения направления тренда.
separator_06 Разделитель RSI — Выход из хеджа — Разделитель раздела настроек RSI — Выход из хеджа.
h_rsi_exit RSI выхода из хеджа — Включает или отключает использование RSI для выхода из хедж-позиции.
rsi_period_3 Период RSI выхода — Период RSI для выхода из хедж-позиции.
rsi_shift_3 Сдвиг RSI выхода — Сдвиг RSI для выхода из хедж-позиции.
lower_3 Нижний RSI выхода — Нижний порог RSI для выхода из хедж-позиции.
upper_3 Верхний RSI выхода — Верхний порог RSI для выхода из хедж-позиции.
sl_threshold Порог выхода из хеджа — Пороговое значение отклонения цены для проверки условия выхода из хеджа.
separator_07 Разделитель RSI — Переопределение тейк-профита — Разделитель раздела настроек RSI — Переопределение тейк-профита.
tp_override Переопределение тейк-профита — Включает переопределение тейк-профита хеджа на основе RSI.
rsi_period_4 Период RSI переопределения — Период RSI для переопределения тейк-профита хеджа.
rsi_shift_4 Сдвиг RSI переопределения — Сдвиг RSI для переопределения тейк-профита хеджа.
lower_4 Нижний RSI переопределения — Нижний порог RSI для переопределения тейк-профита хеджа.
upper_4 Верхний RSI переопределения — Верхний порог RSI для переопределения тейк-профита хеджа.
separator_08 Разделитель дополнительных настроек — Разделитель дополнительных настроек.
separator_09 Разделитель торговых сессий — Разделитель раздела торговых сессий.
use_trading_sessions Торговые сессии — Включает фильтрацию торговых сигналов по торговым сессиям.
0:00 - 8:00 GMT (asian_session) Азиатская сессия — Включает или отключает азиатскую торговую сессию (0:00–8:00 GMT).
6:00 - 16:00 GMT (euro_session) Европейская сессия — Включает или отключает европейскую торговую сессию (6:00–16:00 GMT).
12:00 - 21:00 GMT (ny_session) Нью-Йоркская сессия — Включает или отключает нью-йоркскую торговую сессию (12:00–21:00 GMT).
gmt_shift Сдвиг GMT — Сдвиг часового пояса GMT для определения торговых сессий.
daylight_savings Летнее время — Включает корректировку часового пояса на летнее время.
separator_10 Разделитель азиатской торговли — Разделитель настроек азиатской ежедневной торговли.
asian_daily Азиатская ежедневная торговля — Включает или отключает ежедневную торговлю в азиатской сессии.
sun_asian_open Азиатская сессия воскресенья — Время открытия азиатской сессии в воскресенье.
mon_asian_open Азиатская сессия понедельника — Время открытия азиатской сессии в понедельник.
tue_asian_open Азиатская сессия вторника — Время открытия азиатской сессии во вторник.
wed_asian_open Азиатская сессия среды — Время открытия азиатской сессии в среду.
thu_asian_open Азиатская сессия четверга — Время открытия азиатской сессии в четверг.
Получить полный код

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

#define buy -2
#define sell 2

extern string  separator_01="----  General  Settings  ----";
extern bool      use_daily_target=false;
extern double    daily_target=100;
extern bool      trade_in_fri=true;
extern int       magic=22;
extern double    start_lot=0.1;
extern double    range=25;
extern bool      rge_multiplier=false;
extern double    r_multiplier=1.5;
extern int       level=10;
extern string  separator_02="----  Lot & TP  Settings  ----";
extern bool      lot_multiplier=true;
extern double    l_multiplier=2.0;
extern double    increment=0.1;
extern bool      power_lots=true;
extern bool      tp_by_level=true;
extern double    tp_1=25;
extern double    tp_2=0;
extern bool      use_sl_and_tp=false;
extern double    sl_std=60;
extern double    tp_std=30;
extern double    tp_in_money=5.0;
extern bool      stealth_mode=true;
extern string  separator_03="----  Hedge  Settings  ----";
extern bool      hedge=true;
extern int       h_level=3;
extern int       h_top_level=100;
extern double    h_tp=80;
extern double    h_sl=25;
extern double    b_even_set=10;
extern double    h_offset=20;
extern double    h_factor=1.05;
extern bool      level_limit=false;
extern string  separator_04="----  Indicator  Settings  ----";
extern bool      use_bb=true;
extern int       bb_period=20;
extern int       bb_deviation=2;
extern int       bb_shift=0;
extern bool      use_stoch=true;
extern int       k=5;
extern int       d=3;
extern int       slowing=3;
extern int       price_field=0;
extern int       stoch_shift=0;
extern int       lo_level=30;
extern int       up_level=70;
extern bool      use_rsi=true;
extern int       rsi_period=12;
extern int       rsi_shift=0;
extern int       lower=30;
extern int       upper=70;
extern string  separator_00="----  RSI - Foward  Trend   ----";
extern bool      forward_trend=false;
extern int       rsi_period_1=30;
extern int       rsi_shift_1=0;
extern int       lower_min=35;
extern int       lower_max=33;
extern int       upper_min=65;
extern int       upper_max=67;
extern bool      use_velocity=true;
extern int       fv_period=10;
extern int       fv_offset=20;
extern string  separator_05="----  RSI - Hedge  Entry   ----";
extern bool      h_rsi_entry=true;
extern int       rsi_period_2=14;
extern int       rsi_shift_2=0;
extern int       lower_2=25;
extern int       upper_2=75;
extern bool      h_velocity=false;
extern bool      use_h_rsi=false;
extern int       vel_period=13;
extern int       vel_offset=50;
extern string  separator_06="----  RSI - Hedge  Exit   ----";
extern bool      h_rsi_exit=true;
extern int       rsi_period_3=14;
extern int       rsi_shift_3=0;
extern int       lower_3=50;
extern int       upper_3=50;
extern double    sl_threshold=0;
extern string  separator_07="----  RSI - TP  Override   ----";
extern bool      tp_override=true;
extern int       rsi_period_4=14;
extern int       rsi_shift_4=0;
extern int       lower_4=25;
extern int       upper_4=75;
extern string  separator_08="----  Additional  ----";
extern string  separator_09="----  Trading  Sessions  ----";
extern bool      use_trading_sessions=false;
extern bool      asian_session=true;  //  0:00 -  8:00 GMT
extern bool      euro_session=true;   //  6:00 - 16:00 GMT
extern bool      ny_session=true;     // 12:00 - 21:00 GMT
extern int       gmt_shift=1;
extern bool      daylight_savings=false;
extern string  separator_10="----  Asian  Daily  /  GMT  ----";
extern bool      asian_daily=true;
extern int       sun_asian_open=0, sun_asian_close=8;
extern int       mon_asian_open=0, mon_asian_close=8;
extern int       tue_asian_open=0, tue_asian_close=8;
extern int       wed_asian_open=0, wed_asian_close=8;
extern int       thu_asian_open=0, thu_asian_close=8;
extern int       fri_asian_open=0, fri_asian_close=8;
extern string  separator_11="----  European  Daily  /  GMT  ----";
extern bool      euro_daily=true;
extern int       sun_euro_open=6,  sun_euro_close=16;
extern int       mon_euro_open=6,  mon_euro_close=16;
extern int       tue_euro_open=6,  tue_euro_close=16;
extern int       wed_euro_open=6,  wed_euro_close=16;
extern int       thu_euro_open=6,  thu_euro_close=16;
extern int       fri_euro_open=6,  fri_euro_close=16;
extern string  separator_12="----  New  York  Daily  /  GMT  ----";
extern bool      ny_daily=true;
extern int       sun_ny_open=12,   sun_ny_close=21;
extern int       mon_ny_open=12,   mon_ny_close=21;
extern int       tue_ny_open=12,   tue_ny_close=21;
extern int       wed_ny_open=12,   wed_ny_close=21;
extern int       thu_ny_open=12,   thu_ny_close=21;
extern int       fri_ny_open=12,   fri_ny_close=21;

bool t_day[5];
datetime mtd_time;

double pt;
double minlot;
double stoplevel;
double std=0.1;
double rge;
double balance;
double bal_2=0;
double b_hedge;
double s_hedge;
double p_lot;
double pl_bal=0;
double st_lot;
double pl_factor;
double t_profit=0;
int prec=0;
int b_cnt;
int s_cnt;
int h_cnt;
int m;
int end_cycle;
bool e_cycle_set;
bool closeall;
bool h_b_e;
datetime get_time;

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

int deinit()
  {

   return(0);
  }

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

   if(use_daily_target && dailyprofit()>=daily_target)
   {
     Comment("\ndaily target achieved.");
     return(0);
   }
   if(!trade_in_fri && DayOfWeek()==5 && T()==0)
   {
     Comment("\nstop trading in Friday.");
     return(0);
   }

   h_cnt=0; b_cnt=0; s_cnt=0;  double LOOP, lot2, h2_lot;
   for(int i=0; i<OrdersTotal(); i++) // additional
   {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=magic) continue;

      if(OT2()=="H"){ h_cnt++; } else {
      if(cmd()<2) if(cmd()==0) b_cnt++; if(cmd()==1) s_cnt++; }
   }
   if(h_cnt==0) h_b_e=false;

   double AE=AccountEquity();
   if(power_lots)
   {
      if(pl_bal==0){ pl_bal=AE; st_lot=start_lot; }
      if(T()==0){ pl_factor=AE/pl_bal; st_lot=start_lot*pl_factor; }
   }

   if(lot_multiplier) lot2=NormalizeDouble(st_lot*MathPow(l_multiplier,T()),prec);
   else               lot2=NormalizeDouble(st_lot+(increment*T()),          prec);
   if(rge_multiplier) rge=range*MathPow(r_multiplier,T());

   int o_send=2; if(use_trading_sessions){ o_send=order_send(); } else {
   if(signal()==buy) o_send=0; if(signal()==sell) o_send=1; }

   if(e_cycle_set) end_cycle++; if(end_cycle>1){ e_cycle_set=false; end_cycle=0; }
   if(T()==0){ closeall=false; get_time=TimeCurrent(); }

   if(!closeall && end_cycle==0 && h_cnt==0) // additional
   {
      if(T()<level)
      {
         if(o_send==0 || (b_cnt>0 && Ask<=LOOP()-rge))                         // BUY
         {
            if(hedge && T()==0) s_hedge=Bid-rge;
            OrderSend(Symbol(),0,lot2,Ask,3,0,0,"L"+(b_cnt+1),magic,0,Blue);
         }
         if(o_send==1 || (s_cnt>0 && Bid>=LOOP()+rge))                         // SELL
         {
            if(hedge && T()==0) b_hedge=Ask+rge;
            OrderSend(Symbol(),1,lot2,Bid,3,0,0,"L"+(s_cnt+1),magic,0,Red);
         }
      }

      if(hedge() && h_rsi_entry)                                               // HEDGE
      {
         if(h_velocity)
         {
            if(s_cnt>0 && Ask>=b_hedge && ((!use_h_rsi && h_velo()>vel_offset)
            || (use_h_rsi && h_entry()>upper_2)))
            OrderSend(Symbol(),0,h_lot(),Ask,3,0,0,"H"+(s_cnt+1),magic,0,Blue);

            if(b_cnt>0 && Bid<=s_hedge && ((!use_h_rsi && h_velo()<-vel_offset)
            || (use_h_rsi && h_entry()<lower_2)))
            OrderSend(Symbol(),1,h_lot(),Bid,3,0,0,"H"+(b_cnt+1),magic,0,Red);
         }
         if(!h_velocity)
         {
            if(s_cnt>0 && Ask>=LOOP() && Ask<=LOOP()+h_offset && h_entry()>upper_2)
            OrderSend(Symbol(),0,h_lot(), Ask,3,0,0,"H"+(s_cnt+1),magic,0,Blue);

            if(b_cnt>0 && Bid<=LOOP() && Bid>=LOOP()-h_offset && h_entry()<lower_2)
            OrderSend(Symbol(),1,h_lot(), Bid,3,0,0,"H"+(b_cnt+1),magic,0,Red);
         }
      }
   }

   double OOP, OSL, OTP, sl_0=sl_std, tp_0=tp_std, h2_tp=h_tp;
   for(i=0; i<OrdersTotal(); i++) // additional
   {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=magic || cmd()>1) continue;
      OOP=OrderOpenPrice();
      if(OT2()=="H")
      {
         if(cmd()==0)
         {
            if(tp_override && h_tp_over()>upper_4) h2_tp=0;
            OSL=OOP()-h_sl; if(h_sl==0) OSL=0; OTP=OOP()+h2_tp; if(h2_tp==0) OTP=0;
            if(Ask>=OOP()+b_even_set) h_b_e=true; if(h_b_e) OSL=OOP()+(2*pt);
            OrderModify(OrderTicket(),0,OSL,OTP,0,CLR_NONE);
         }
         if(cmd()==1)
         {
            if(tp_override && h_tp_over()<lower_4) h2_tp=0;
            OSL=OOP()+h_sl; if(h_sl==0) OSL=0; OTP=OOP()-h2_tp; if(h2_tp==0) OTP=0;
            if(Bid<=OOP()-b_even_set) h_b_e=true; if(h_b_e) OSL=OOP()-(2*pt);
            OrderModify(OrderTicket(),0,OSL,OTP,0,CLR_NONE);
         }

         if(h_rsi_exit)
         {
            if((cmd()==0 && Ask>OOP()-sl_threshold && h_exit()<lower_3)
            || (cmd()==1 && Bid<OOP()+sl_threshold && h_exit()>upper_3))
            OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,CLR_NONE);
         }
      }
   }

   double deviate=0, h_dev=0; sl_0=sl_std; tp_0=tp_std;
   for(i=0; i<OrdersTotal(); i++) // additional
   {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=magic || cmd()>1) continue;
      OOP=OrderOpenPrice(); OTP=OrderOpenPrice();
      if(LCT()==1)
      {
         if(cmd()==0 && Ask<=OOP()) deviate=OOP()-Ask;
         if(cmd()==1 && Bid>=OOP()) deviate=Bid-OOP();
      }
      if(OT2()=="H")
      {
         if(cmd()==0 &&Ask<=OOP()) h_dev=OOP()-Ask;
         if(cmd()==1 &&Bid>=OOP()) h_dev=Bid-OOP();
      }
      if(tp_by_level){ tp_0=tp_1; if(LCT()>1) tp_0=tp_2; }
      if((!stealth_mode || tp_by_level) && OT2()!="H")
      {
         if(cmd()==1){ sl_0*=-1; tp_0*=-1; 

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

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

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

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

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

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

Стоимость полного кода
1 669,90₽ ≈ $20.41