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

equityguard1.2c.mq4

Вы автор или правообладатель?

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

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

О программе

Советник для платформы MetaTrader 4, предназначенный для защиты депозита путём мониторинга уровня equity или баланса счёта. Отслеживает наивысший и наименьший зафиксированный уровень средств, сравнивая текущий показатель с заданными пользователем порогами. При достижении максимального целевого уровня, минимального целевого уровня или заданного процента просадки от пика выполняет защитные действия: отключает запущенных советников, закрывает активные позиции и удаляет отложенные ордера, а также может отправлять звуковые и email-уведомления.

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

НастройкаОписание
EAName Имя советника — Текстовое название, отображаемое на графике для идентификации экземпляра советника.
MonitorEquity Мониторинг equity — При включении советник отслеживает уровень equity счёта; при выключении — баланс.
eg0 Разделитель максимального целевого уровня — Текстовая метка группы настроек максимального целевого уровня.
MaximalTargetON Максимальный целевой уровень включён — Включает проверку достижения максимального порога equity или баланса.
MaximalTarget Максимальный целевой уровень — Значение equity или баланса, при достижении которого срабатывает максимальный порог.
DisableAllEAs1 Отключить все советники при максимальном уровне — Отключает все запущенных экспертов на графике при срабатывании максимального порога.
CloseAllActiveOrders1 Закрыть активные ордера при максимальном уровне — Закрывает все активные позиции при срабатывании максимального порога.
DeleteAllPendingOrders1 Удалить отложенные ордера при максимальном уровне — Удаляет все отложенные ордера при срабатывании максимального порога.
eg1 Разделитель минимального целевого уровня — Текстовая метка группы настроек минимального целевого уровня.
MinimalTargetON Минимальный целевой уровень включён — Включает проверку достижения минимального порога equity или баланса.
MinimalTarget Минимальный целевой уровень — Значение equity или баланса, при достижении которого срабатывает минимальный порог.
DisableAllEAs2 Отключить все советники при минимальном уровне — Отключает все запущенных экспертов на графике при срабатывании минимального порога.
CloseAllActiveOrders2 Закрыть активные ордера при минимальном уровне — Закрывает все активные позиции при срабатывании минимального порога.
DeleteAllPendingOrders2 Удалить отложенные ордера при минимальном уровне — Удаляет все отложенные ордера при срабатывании минимального порога.
eg2 Разделитель процентной просадки — Текстовая метка группы настроек процентной просадки.
PercentDrawdownON Процентная просадка включена — Включает проверку просадки текущего уровня от зафиксированного пика.
PercentDrawdown Процент просадки — Процент снижения от наивысшего зафиксированного уровня, при котором срабатывает порог просадки.
DisableAllEAs3 Отключить все советники при просадке — Отключает все запущенных экспертов на графике при срабатывании порога просадки.
CloseAllActiveOrders3 Закрыть активные ордера при просадке — Закрывает все активные позиции при срабатывании порога просадки.
DeleteAllPendingOrders3 Удалить отложенные ордера при просадке — Удаляет все отложенные ордера при срабатывании порога просадки.
eg4 Разделитель настроек оповещений — Текстовая метка группы настроек оповещений.
SoundON Звуковое оповещение включено — Включает воспроизведение звукового файла при срабатывании любого порога.
SoundFile Файл звукового оповещения — Имя звукового файла, который воспроизводится при срабатывании порога.
SendEmailON Email-уведомление включено — Включает отправку email-сообщения при срабатывании любого порога.
TxtColor Цвет текста — Цвет текстовых меток, отображаемых на графике.
numClolor Цвет числовых значений — Цвет числовых показателей, отображаемых на графике.
ProgrammingService Контакт программиста — Контактная информация разработчика, отображаемая на графике.
Получить полный код

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

#include <WinUser32.mqh>
extern string EAName="===EquityGuard-V1.2==="; 
extern bool   MonitorEquity=true;
extern string eg0="---Maximal Target Sets:---";
extern bool   MaximalTargetON=true;
extern double MaximalTarget=5000;
extern bool   DisableAllEAs1=true;
extern bool   CloseAllActiveOrders1=true;
extern bool   DeleteAllPendingOrders1=true;

extern string eg1="---Minimal Target Sets:---";
extern bool   MinimalTargetON=true;
extern double MinimalTarget=2000;
extern bool   DisableAllEAs2=true;
extern bool   CloseAllActiveOrders2=true;
extern bool   DeleteAllPendingOrders2=true;

extern string eg2="---Percent Drawdown Sets:---";
extern bool   PercentDrawdownON=true;
extern double PercentDrawdown=15;
extern bool   DisableAllEAs3=true;
extern bool   CloseAllActiveOrders3=true;
extern bool   DeleteAllPendingOrders3=true;

extern string eg4="---Alert Sets:---";
extern bool   SoundON=true;
extern string SoundFile="alert.wav";
extern bool   SendEmailON=false;
extern color  TxtColor=DarkOrange;
extern color numClolor=Lime;
extern string ProgrammingService="Ryan: f**************g*@gmail.com";

int      Slippage = 3;
int      TotalTries = 5; 
int      RetryDelay = 1000;
bool     Runable=true;

double EorB;
color wornColor=Red; 

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

int deinit()
  {
   DelAllTxts();
   return(0);
  }
void DelAllTxts()
{
   ObjectDelete("logo1");
   ObjectDelete("logo2");
   ObjectDelete("eg1");ObjectDelete("eg2");
   ObjectDelete("eg3");
   ObjectDelete("eg31");
   ObjectDelete("eg32");
   ObjectDelete("eg33");
   ObjectDelete("eg34");
   ObjectDelete("eg35");
   ObjectDelete("eg4");
   ObjectDelete("eg41");
   ObjectDelete("eg42");
   ObjectDelete("eg43");

   ObjectDelete("eg5");
   ObjectDelete("eg51");
   ObjectDelete("eg52");
   ObjectDelete("eg53");
   ObjectDelete("eg6");
   ObjectDelete("eg61");
   ObjectDelete("eg62");
   ObjectDelete("eg63");
   GlobalVariableDel("HighestEquity");
   GlobalVariableDel("LowestEquity");
   WindowRedraw();
}  
void ShowEAStatus()
{    
     string s1,s2,s3,s4,s5;
     double target;
     if(MonitorEquity)EorB=AccountEquity();else EorB=AccountBalance();
     CreatLabel("eg1","   "+EAName,0,5,15,TxtColor);
     CreatLabel("eg2","------------------------------------------------",0,5,22,TxtColor);

     target=GlobalVariableGet("HighestEquity")*(1-PercentDrawdown*0.01);

     string seb;
     if(MonitorEquity) seb="Equity";else seb="Balance";

     if(MonitorEquity) 
         s1="Current Equity:"+DoubleToStr(EorB,2)+"              Highest Equity:"+DoubleToStr(GlobalVariableGet("HighestEquity"),2); 
      else 
         s1="Current Balance:"+DoubleToStr(EorB,2)+"          Highest Balance:"+DoubleToStr(GlobalVariableGet("HighestEquity"),2);
     CreatLabel("eg3", "Current "+seb+": ",0,5,35,TxtColor);   CreatLabel("eg31",DoubleToStr(EorB,2),0,95,35,numClolor); 
     CreatLabel("eg32","Highest "+seb+": ",0,5,50,TxtColor);   CreatLabel("eg33",DoubleToStr(GlobalVariableGet("HighestEquity"),2),0,95,50,numClolor); 
     CreatLabel("eg34","Lowest "+seb+": ",0,5,65,TxtColor);    CreatLabel("eg35",DoubleToStr(GlobalVariableGet("LowestEquity"),2),0,95,65,numClolor); 

     if(MaximalTargetON) s2=DoubleToStr(MaximalTarget,2)+ "       Distance:"+DoubleToStr(MaximalTarget-EorB,2) ; else s2="OFF";

     CreatLabel("eg4","Maximal Target "+onoff(MaximalTargetON)+": ",0,5,80,TxtColor); 
     CreatLabel("eg41",DoubleToStr(MaximalTarget,2),0,130,80,numClolor); 
     CreatLabel("eg42","Distance:",0,190,80,TxtColor); 
     CreatLabel("eg43",DoubleToStr(MaximalTarget-EorB,2),0,250,80,numClolor); 

     CreatLabel("eg5","Minimal  Target "+onoff(MinimalTargetON)+": ",0,5,95,TxtColor); 
     CreatLabel("eg51",DoubleToStr(MinimalTarget,2),0,130,95,numClolor); 
     CreatLabel("eg52","Distance:",0,190,95,TxtColor); 
     CreatLabel("eg53",DoubleToStr(EorB-MinimalTarget,2) ,0,250,95,numClolor); 

     CreatLabel("eg6","Percent  DrawD "+onoff(PercentDrawdownON)+": ",0,5,110,TxtColor); 
     CreatLabel("eg61",DoubleToStr(PercentDrawdown,2)+"%["+DoubleToStr(target,2)+"]",0,130,110,numClolor); 
     CreatLabel("eg62","Distance:",0,230,110,TxtColor); 
     CreatLabel("eg63",DoubleToStr(MathAbs(target-EorB),2) ,0,290,110,numClolor); 

     WindowRedraw();

}

string onoff(bool on)
{
   if(on) return("[ON]"); else return("[OFF]");
}

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

   while( !IsStopped

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

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

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

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

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

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

Стоимость полного кода
851,90₽ ≈ $10.41