swb grid 4.1_revised_05_e.mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «swb grid 4.1_revised_05_e.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой торгового советника для платформы 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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.