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

Универсал_1.70

ô¡¿óñ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 и перейдите к оплате.

Стоимость полного кода
1 357,30₽ ≈ $16.87