Универсал_1.70
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «o╠В┬б┬┐o╠Бn╠Гa├Яa╠Б┬╜_1.70.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
«Универсал» — торговый советник для MetaTrader 4, управляющий рыночными и отложенными ордерами (BuyStop, SellStop, BuyLimit, SellLimit). Советник позволяет настраивать отдельные параметры Take Profit, Stop Loss, Trailing Stop и шага для каждого типа ордеров, а также ограничивать максимальное количество ордеров одного типа.
Продукт поддерживает привязку к заданному времени торговли с возможностью включения/отключения покупок и продаж в указанные часы. Также реализован мониторинг баланса счёта: при достижении заданного процентного изменения глобального Take Profit или Stop Loss советник может закрыть все позиции.
Дополнительно предусмотрены пипсовый учёт прибыли и убытка, звуковые уведомления об установке ордеров и срабатывании Trailing Stop, а также алерты в окно сообщений.
Настройки программы
| Настройка | Описание |
|---|---|
| t1 | Раздел 1 — Текстовый параметр (заголовок раздела). |
| MAGIC | Магический номер — Магический номер ордеров. У ордеров с открытым внешним Magic=0. |
| Lot | Лот — Объём лота для установки ордера. |
| t2 | Раздел 2 — Текстовый параметр (заголовок раздела). |
| WaitClose | Ожидать закрытия ордера — Если true, новый ордер выставляется только после закрытия предыдущего. Иначе новый ордер добавляется поверх отложенного. |
| Ustan_BuyStop | Устанавливать Buy Stop — Разрешает установку Buy Stop, если такого ордера нет в стакане. |
| Ustan_SellLimit | Устанавливать Sell Limit — Разрешает установку Sell Limit, если такого ордера нет в стакане. |
| Ustan_SellStop | Устанавливать Sell Stop — Разрешает установку Sell Stop, если такого ордера нет в стакане. |
| Ustan_BuyLimit | Устанавливать Buy Limit — Разрешает установку Buy Limit, если такого ордера нет в стакане. |
| t3 | Раздел 3 — Текстовый параметр (заголовок раздела). |
| ryn_MaxOrderov | Макс. кол-во рыночных ордеров — Максимальное количество рыночных ордеров одного типа. |
| ryn_TakeProfit | Тейк-Профит рыночных ордеров — Take Profit для рыночных ордеров в пунктах. |
| ryn_StopLoss | Стоп-Лосс рыночных ордеров — Stop Loss для рыночных ордеров в пунктах. |
| ryn_TrStop | Trailing Stop рыночных ордеров — Расстояние до Trailing Stop для рыночных ордеров в пунктах. 0 — Trailing отключён. |
| ryn_TrStep | Шаг Trailing рыночных ордеров — Шаг Trailing Stop для рыночных ордеров в пунктах. |
| WaitProfit | Ожидать прибыли для Trailing — Если true, Trailing Start начинается только после достижения прибылью значения Trailing Stop. |
| t4 | Раздел 4 — Текстовый параметр (заголовок раздела). |
| st_Step | Шаг стоп-ордеров (пункты) — Расстояние в пунктах от текущей цены до уровня установки стоп-ордера. |
| st_TakeProfit | Тейк-Профит стоп-ордеров — Take Profit для стоп-ордеров в пунктах. |
| st_StopLoss | Стоп-Лосс стоп-ордеров — Stop Loss для стоп-ордеров в пунктах. |
| st_TrStop | Trailing Stop стоп-ордеров — Расстояние до Trailing Stop для стоп-ордеров в пунктах. 0 — Trailing отключён. |
| st_TrStep | Шаг Trailing стоп-ордеров — Шаг Trailing Stop для стоп-ордеров в пунктах. |
| t5 | Раздел 5 — Текстовый параметр (заголовок раздела). |
| lim_Step | Шаг лимитных ордеров (пункты) — Расстояние в пунктах от текущей цены до уровня установки лимитного ордера. |
| lim_TakeProfit | Тейк-Профит лимитных ордеров — Take Profit для лимитных ордеров в пунктах. |
| lim_StopLoss | Стоп-Лосс лимитных ордеров — Stop Loss для лимитных ордеров в пунктах. |
| lim_TrStop | Trailing Stop лимитных ордеров — Расстояние до Trailing Stop для лимитных ордеров в пунктах. 0 — Trailing отключён. |
| lim_TrStep | Шаг Trailing лимитных ордеров — Шаг Trailing Stop для лимитных ордеров в пунктах. |
| t6 | Раздел 6 — Текстовый параметр (заголовок раздела). |
| UseTime | Использовать время — Включает/отключает привязку к заданному времени торговли. |
| Hhour | Час совпадения — Час совпадения для привязки к заданному времени торговли. |
| Mminute | Минута совпадения — Минута совпадения для привязки к заданному времени торговли. |
| TIME_Buy | Покупка по времени — Включает/отключает покупку в заданное время. |
| TIME_Sell | Продажа по времени — Включает/отключает продажу в заданное время. |
| TIME_BuyStop | Buy Stop по времени — Включает/отключает установку Buy Stop в заданное время. |
| TIME_SellLimit | Sell Limit по времени — Включает/отключает установку Sell Limit в заданное время. |
| TIME_SellStop | Sell Stop по времени — Включает/отключает установку Sell Stop в заданное время. |
| TIME_BuyLimit | Buy Limit по времени — Включает/отключает установку Buy Limit в заданное время. |
| t7 | Раздел 7 — Текстовый параметр (заголовок раздела). |
| PipsProfit | Прибыль в пипсах — Величина прибыли в пунктах при пипсовом учёте. |
| PipsLoss | Убыток в пипсах — Величина убытка в пунктах при пипсовом учёте. |
| t8 | Раздел 8 — Текстовый параметр (заголовок раздела). |
| UseGlobalLevels | Использовать глобальные уровни — Включает/отключает глобальные уровни Take Profit и Stop Loss на основе баланса. |
| Global_TakeProfit | Глобальный Тейк-Профит (%) — Глобальный Take Profit в процентах от баланса счёта. |
| Global_StopLoss | Глобальный Стоп-Лосс (%) — Глобальный Stop Loss в процентах от баланса счёта. |
| UseAlert | Использовать алерты — Включает отправку алертов в окно сообщений. |
| ryn_CloseAll_Profit | Закрыть все по прибыли — При достижении глобальной прибыли закрывает все позиции по всем парам. |
| ryn_CloseAll_Loss | Закрыть все по убытку — При достижении глобального убытка закрывает все позиции по всем парам. |
| DeleteOtlozh | Удалять отложенные ордера — Включает удаление отложенных ордеров при достижении глобального уровня Take Profit. |
| t9 | Раздел 9 — Текстовый параметр (заголовок раздела). |
| Proskalz | Проскальзывание (пункты) — Расстояние в пунктах для проверки и управления ордерами. |
| UseOrderSound | Звук при установке ордера — Включает звуковой сигнал при установке ордера. |
| UseTrailingSound | Звук при Trailing — Включает звуковой сигнал при срабатывании Trailing Stop. |
| NameOrderSound | Имя звукового файла ордера — Имя звукового файла для уведомления об установке ордера. |
| NameTrallingSound | Имя звукового файла Trailing — Имя звукового файла для уведомления о Trailing Stop. |
Поиск по коду файла
#include <Errors.mqh>
#include <Bazovie.mqh>
extern string t1="------ У открытых вручную MAGIC = 0 ------";
extern int MAGIC=0;//У ордеров открытых вручную MAGIC=0
extern double Lot=0.2;//Лот для установки ордера
extern string t2="--- Выключатели отложенных ---";
extern bool WaitClose=true;//Если true, то отложенный встанет только тогда, когда закроется рыночный
extern bool Ustan_BuyStop=true; //можно ли ставиь Бай-Cтоп если в рынке такого у нас нет
extern bool Ustan_SellLimit=false; //можно ли ставиь Cелл-Лимит если в рынке такого у нас нет
extern bool Ustan_SellStop=true; //можно ли ставиь Cелл-Cстоп если в рынке такого у нас нет
extern bool Ustan_BuyLimit=false; //можно ли ставиь Бай-Лимит если в рынке такого у нас нет
extern string t3="--- Параметры рыночных ---";
extern int ryn_MaxOrderov=2;//ограничение максимального числа рыночных ордеров одного типа
extern int ryn_TakeProfit=200; //Тейк-Профит рыночного ордера
extern int ryn_StopLoss=100; //Стоп-Лосс рыночного ордера
extern int ryn_TrStop=100; //Трейлинг-Стоп рыночного ордера. Если = 0 то тарла нет
extern int ryn_TrStep=10; //Шаг трала рыночного ордера
extern bool WaitProfit = true; // Если true, то ждать профит = значению TrailingStop и только потом начинать тралить
extern string t4="--- Параметры стоповых ---";
extern int st_Step=50;//Расстояние в пунктах от уровня текущей цены до уорвня установки стопового ордера
extern int st_TakeProfit=200; //Тейк-Профит стоповых ордеров
extern int st_StopLoss=100; //Стоп-Лосс стоповых ордеров
extern int st_TrStop=0; //Трейлинг-Стоп стоповых ордеров. Если = 0 то тарла нет и st_TrStep не важен
extern int st_TrStep=3; //Шаг трала стоповых ордеров
extern string t5="--- Параметры лимитных ---";
extern int lim_Step=50;//Расстояние в пунктах от уровня текущей цены до уорвня установки лимитного ордера
extern int lim_TakeProfit=200; //Тейк-Профит лимитных ордеров
extern int lim_StopLoss=100; //Стоп-Лосс лимитных ордеров
extern int lim_TrStop=0; //Трейлинг-Стоп лимитных ордеров. Если = 0 то тарла нет и lim_TrStep не важен
extern int lim_TrStep=3; //Шаг трейлинга лимитных ордеров
extern string t6="--- Только для работы по времени ---";
extern bool UseTime=true;//вкл/выкл привязку к указанноу времени. Если=false, то все таймовые параметры не важны,
extern int Hhour=23;//терминальные часы совершения сделки
extern int Mminute=59;//терминальные минуты совершения сделки
extern bool TIME_Buy=false;//вкл/выкл открываться ли на покупку в заданное время
extern bool TIME_Sell=false;//вкл/выкл открываться ли на продажу
extern bool TIME_BuyStop=true; //можно ли установить БайCтоп в заданное время
extern bool TIME_SellLimit=false; //можно ли установить CеллЛимит в заданное время
extern bool TIME_SellStop=true; //можно ли установить CеллCстоп в заданное время
extern bool TIME_BuyLimit=false; //можно ли установить БайЛимит в заданное время
extern string t7="--- Пипсовка ---";
extern int PipsProfit=0; //прибыль при пипсовке можно ставить 1, 2, 3, ...
extern int PipsLoss=0; //убыток при пипсовке можно ставить 1, 2, 3, ...
extern string t8="--- Глобальные уровни ---";
extern bool UseGlobalLevels=true;//отловить увеличение и уменьшение депозита заданное число процентов
extern double Global_TakeProfit=2.0;//Глобальный Тейк-Профит (зада¸тся в процентах)
extern double Global_StopLoss=2.0;//Глобальный Стоп-Лосс (зада¸тся в процентах)
extern bool UseAlert=true;//использовать сообщение в окне алертов
extern bool ryn_CloseAll_Profit=false;//вкл/выкл закрыть позиции по всем валютным парам по достижении глобального профита
extern bool ryn_CloseAll_Loss=false;//вкл/выкл закрыть позиции по всем валютным парам по достижении глобального лосса
extern bool DeleteOtlozh=false;//вкл/выкл удалить при этом и отложенные ордера
extern string t9="--- Прочие параметры ---";
extern int Proskalz = 3; //Проскальзывание в пунктах
extern bool UseOrderSound = true; // Использовать звуковой сигнал для установки ордеров
extern bool UseTrailingSound = true; // Использовать звуковой сигнал для трейлинга
extern string NameOrderSound = "alert.wav"; // Наименование звукового файла для ордеров
extern string NameTrallingSound = "expert.wav";// Наименование звукового файла для трейлинга
string Comm1,Comm2,Comm3,Comm4,Comm5,Comm6,Comm7,ED,SMB;
double PNT,NewPrice,SL,TP,Balans,Free;
int MinLevel,i,SchBuyStop,SchSellStop,SchBuyLimit,SchSellLimit,SchSell,SchBuy,SBid,SAsk,BBid,BAsk,GTP,GSL,GLE,total;
bool fm,Rezult,TrailBuyStop,TrailSellStop,TrailBuyLimit,TrailSellLimit,SigBuy,SigSell,NewOrder;
bool SigTIME_Buy,SigTIME_Sell,SigTIME_BuyStop,SigTIME_SellLimit,SigTIME_SellStop,SigTIME_BuyLimit;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
if (!IsTesting())
{
Comment("");
Print("Советник деинициализирован (выключен совсем)");
}
return(0);
}
int start() {
// код доступен только после оплаты
}
RefreshRates();
if(!IsTradeAllowed()) {
Comment("Торговля запрещена в настройках терминала, либо торговый поток занят");
return(0);
}
Proverka();
if(ryn_TrStop>0 && ryn_TrStop>=MinLevel) Comm1="Трал рыночных - Вкл."; else Comm1="Трал рыночных - Откл.";
if (lim_TrStop>0 && lim_TrStop>=MinLevel) Comm2="Трал лимитных - Вкл."; else Comm2="Трал лимитных - Откл.";
if (st_TrStop>0 && st_TrStop>=MinLevel) Comm3="Трал стоповых - Вкл."; else Comm3="Трал стоповых - Откл.";
if (PipsProfit>0||PipsLoss>0) Comm4="Пипсовка - Вкл"; else Comm4="Пипсовка - Откл";
double OtlTP=(Balans/100*Global_TakeProfit+Balans);
double OtlSL=(Balans-Balans/100*Global_StopLoss);
GTP=MathCeil(OtlTP);
GSL=MathCeil(OtlSL);
if (UseGlobalLevels) {
Comm5="- - - - Глобальные уровни - - - -";
Comm6="Глобальный Тейк-Профит = "+GTP+" $";
Comm7="Глобальный Стоп-Лосс = "+GSL+" $";
}
else {Comm5="Глобальные уровни - Откл"; Comm6=""; Comm7="";}
SMB=Symbol();
Comment("Ордеров сейчас для ",SMB," :","\n","Buy = ",SchBuy_b(MAGIC)," Sell = ",SchSell_b(MAGIC),"\n","BuyStop = ",SchBuyStop_b(MAGIC),
" SellLimit = ",SchSellLimit_b(MAGIC),"\n","SellStop = ",SchSellStop_b(MAGIC)," BuyLimit = ",SchBuyLimit_b(MAGIC),"\n",Comm1,
"\n",Comm2,"\n",Comm3,"\n",Comm4,"\n",Comm5,"\n",Comm6,"\n",Comm7);
if(Ustan_BuyLimit) {
if((SchBuyLimit_b(MAGIC)==0 && (SchBuy_b(MAGIC)<ryn_MaxOrderov || !WaitClose))
&& (Ustan_BuyLimit && lim_Step>=MinLevel)) {
UstanBuyLimit_b(Lot,lim_Step,lim_TakeProfit,lim_StopLoss,Proskalz,MAGIC,UseOrderSound);
}
}
if(Ustan_BuyStop) {
if((SchBuyStop_b(MAGIC)==0 && (SchBuy_b(MAGIC)<ryn_MaxOrderov || !WaitClose)) && Ustan_BuyStop && st_Step>=MinLevel) {
UstanBuyStop_b(Lot,st_Step,st_TakeProfit,st_StopLoss, Proskalz,MAGIC,UseOrderSound);
}
}
if(Ustan_SellStop) {
if((SchSellStop_b(MAGIC)==0 && (SchSell_b(MAGIC)<ryn_MaxOrderov || !WaitClose))&&Ustan_SellStop && st_Step>=MinLevel) {
UstanSellStop_b(Lot,st_Step,st_TakeProfit,st_StopLoss,Proskalz,MAGIC,UseOrderSound);
}
}
if(Ustan_SellLimit) {
if((SchSellLimit_b(MAGIC)==0 && (SchSell_b(MAGIC)<ryn_MaxOrderov || !WaitClose)) && Ustan_SellLimit && lim_Step>=MinLevel) {
UstanSellLimit_b(Lot,lim_Step,lim_TakeProfit,lim_StopLoss,Proskalz,MAGIC,UseOrderSound);
}
}
if(UseTime) {
SigTIME_Buy=false; SigTIME_BuyStop=false; SigTIME_SellStop=false;
SigTIME_Sell=false; SigTIME_SellLimit=false; SigTIME_BuyLimit=false;
if(Hour()==Hhour && Minute()==Mminute) {//если текущие час и минута совпадают
if(TIME_Buy) {
SigTIME_Buy=true;
if(UstanRynBuy_b(Lot,ryn_TakeProfit,ryn_StopLoss,Proskalz,MAGIC,UseOrderSound)==true)
{SigTIME_Buy=false;}
}
if(TIME_Sell) {
SigTIME_Sell=true;
if(UstanRynSell_b(Lot,ryn_TakeProfit,ryn_StopLoss,Proskalz,MAGIC,UseOrderSound)==true)
{SigTIME_Sell=false;}
}
if(TIME_BuyStop) {
SigTIME_BuyStop=true;
if((SchBuyStop_b(MAGIC)==0 && (SchBuy_b(MAGIC)<ryn_MaxOrderov || !WaitClose)) && SigTIME_BuyStop && st_Step>=MinLevel) {
if(UstanBuyStop_b(Lot,st_Step,st_TakeProfit,st_StopLoss,Proskalz,MAGIC,UseOrderSound)==true) {
SigTIME_BuyStop=false;
}
}
}
if(TIME_SellLimit) {
SigTIME_SellLimit=true;
if((SchSПоказано первые 50% кода (символов: 13573)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.