Универсал_1.70
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «o╠é┬í┬┐o╠ün╠âa├ƒa╠ü┬╜_1.70.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Советник «Универсал_1.70» для платформы MetaTrader 4 — универсальный инструмент управления ордерами. Он позволяет выставлять рыночные и отложенные ордера (Buy/Sell Stop, Buy/Sell Limit), управлять их параметрами и отслеживать состояние позиций.
Программа поддерживает трейлинг-стоп для рыночных и отложенных ордеров, пипсовую фиксацию прибыли и убытка, а также привязку сделок к заданному времени. Есть мониторинг глобальных уровней баланса с возможностью закрытия всех позиций при достижении заданного профита или убытка.
Советник оснащён системой звуковых уведомленений и алертов, настраиваемым проскальзыванием и магическим номером для фильтрации ордеров. Интерфейс включает множество групп настроек для тонкой конфигурации каждого типа ордеров.
Настройки программы
| Настройка | Описание |
|---|---|
| t1 | Разделитель настроек: ордера, открытые вручную (MAGIC = 0). |
| MAGIC | Магический номер ордеров. У ордеров, открытых вручную, MAGIC = 0. |
| Lot | Размер лота для установки ордера. |
| t2 | Разделитель настроек: переключатели отложенных ордеров. |
| WaitClose | Если true, отложенный ордер выставляется только после закрытия рыночного ордера того же типа. Иначе новый ордер открывается сразу при срабатывании отложенного. |
| Ustan_BuyStop | Разрешает или запрещает установку Бай-Стопа, если такого ордера в рынке нет. |
| Ustan_SellLimit | Разрешает или запрещает установку Селл-Лимита, если такого ордера в рынке нет. |
| Ustan_SellStop | Разрешает или запрещает установку Селл-Стопа, если такого ордера в рынке нет. |
| Ustan_BuyLimit | Разрешает или запрещает установку Бай-Лимита, если такого ордера в рынке нет. |
| t3 | Разделитель настроек: параметры рыночных ордеров. |
| ryn_MaxOrderov | Максимальное количество рыночных ордеров одного типа, допустимых одновременно. |
| ryn_TakeProfit | Тейк-профит рыночного ордера в пунктах. |
| ryn_StopLoss | Стоп-лосс рыночного ордера в пунктах. |
| ryn_TrStop | Трейлинг-стоп рыночного ордера в пунктах. Если 0, трейлинг не работает. |
| ryn_TrStep | Шаг трейлинга рыночного ордера в пунктах. |
| WaitProfit | Если true, трейлинг начинается только после достижения ордером заданного профита. Иначе трейлинг запускается без ожидания положительного профита. |
| t4 | Разделитель настроек: параметры стоповых ордеров. |
| st_Step | Расстояние в пунктах от текущей цены до уровня установки стопового ордера. |
| st_TakeProfit | Тейк-профит стоповых ордеров в пунктах. |
| st_StopLoss | Стоп-лосс стоповых ордеров в пунктах. |
| st_TrStop | Трейлинг-стоп стоповых ордеров в пунктах. Если 0, трейлинг не работает. |
| st_TrStep | Шаг трейлинга стоповых ордеров в пунктах. |
| t5 | Разделитель настроек: параметры лимитных ордеров. |
| lim_Step | Расстояние в пунктах от текущей цены до уровня установки лимитного ордера. |
| lim_TakeProfit | Тейк-профит лимитных ордеров в пунктах. |
| lim_StopLoss | Стоп-лосс лимитных ордеров в пунктах. |
| lim_TrStop | Трейлинг-стоп лимитных ордеров в пунктах. Если 0, трейлинг не работает. |
| lim_TrStep | Шаг трейлинга лимитных ордеров в пунктах. |
| t6 | Разделитель настроек: привязка к времени. |
| UseTime | Включает или отключает привязку торговых операций к заданному времени. При значении false все таймовые параметры игнорируются. |
| Hhour | Часы терминального времени для совершения сделок (при включённой привязке к времени). |
| Mminute | Минуты терминального времени для совершения сделок (при включённой привязке к времени). |
| TIME_Buy | Включает или отключает открытие позиций на покупку в заданное время. |
| TIME_Sell | Включает или отключает открытие позиций на продажу в заданное время. |
| TIME_BuyStop | Включает или отключает установку Бай-Стопа в заданное время. |
| TIME_SellLimit | Включает или отключает установку Селл-Лимита в заданное время. |
| TIME_SellStop | Включает или отключает установку Селл-Стопа в заданное время. |
| TIME_BuyLimit | Включает или отключает установку Бай-Лимита в заданное время. |
| t7 | Разделитель настроек: пипсовка. |
| PipsProfit | Величина прибыли при пипсовке (целое число: 1, 2, 3 и т. д.). |
| PipsLoss | Величина убытка при пипсовке (целое число: 1, 2, 3 и т. д.). |
| t8 | Разделитель настроек: глобальные уровни. |
| UseGlobalLevels | Включает или отключает отслеживание изменения депозита на заданные проценты. |
| Global_TakeProfit | Глобальный тейк-профит, задаваемый в процентах от баланса счёта. |
| Global_StopLoss | Глобальный стоп-лосс, задаваемый в процентах от баланса счёта. |
| UseAlert | Включает или отключает отправку сообщений в окно алертов. |
| ryn_CloseAll_Profit | Включает или отключает закрытие всех позиций по всем валютным парам при достижении глобального профита. |
| ryn_CloseAll_Loss | Включает или отключает закрытие всех позиций по всем валютным парам при достижении глобального убытка. |
| DeleteOtlozh | Включает или отключает удаление отложенных ордеров при срабатывании глобальных уровней профита или убытка. |
| t9 | Разделитель настроек: прочие параметры. |
| Proskalz | Допустимое проскальзывание в пунктах. |
| UseOrderSound | Включает или отключает звуковой сигнал при установке ордеров. |
| UseTrailingSound | Включает или отключает звуковой сигнал при трейлинге ордеров. |
| NameOrderSound | Наименование звукового файла, воспроизводимого при установке ордеров. |
| NameTrallingSound | Наименование звукового файла, воспроизводимого при трейлинге. |
Поиск по коду файла
#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((SchSellLimit_b(MAGIПоказано первые 50% кода (символов: 13573)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.