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

MasterMind2

themastermind2.mq4

Похожие материалы по тегам

#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих теговea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 1 общих теговsma crossover scalper ea for mt4.mq4MQL4 / MetaTrader 4 · 1 общих теговr15 pivot points expert advisor by @fundedmillionairess.mq4MQL4 / MetaTrader 4 · 1 общих теговnewstrader.mq5MQL5 / MetaTrader 5 · 1 общих теговmm3.0_flip_codepro_v3.1_with_cooldown@lifeindreamsworld.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

MasterMind2 — торговый советник для MetaTrader 4, работающий на языке MQL4. Советник анализирует рыночные данные через встроенные индикаторы Stochastic и Williams Percent Range, формируя сигналы на открытие и закрытие позиций. Управление сделками выполняется через торговые функции MetaTrader 4 с возможностью повторных попыток при неудачных операциях.

Советник поддерживает настройку объёма лота, уровней StopLoss и TakeProfit, трейлинг-стопа, безубытка и магического номера для идентификации своих ордеров. Предусмотрена возможность торговли по закрытию бара или в реальном времени, а также ограничение на количество одновременно открытых позиций.

Встроенная система уведомлений позволяет выводить оповещения в терминал и отправлять их по электронной почте с настраиваемой периодичностью повторений. Советник ведёт журнал торговых операций в файл и выводит информационную панель с текущими параметрами и значениями индикаторов.

Дополнительно реализованы функции модификации стоп-лосса и закрытия ордеров с логированием ошибок. Советник не содержит гарантий прибыльности и предназначен для использования на свой риск.

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

НастройкаОписание
Lots Объём лота — Фиксированный объём лота для открываемых позиций.
StopLoss Стоп-лосс — Уровень стоп-лосса в пунктах. Значение 0 отключает установку стоп-лосса.
TakeProfit Тейк-профит — Уровень тейк-профита в пунктах. Значение 0 отключает установку тейк-профита.
TradeAtCloseBar Торговля по закрытию бара — Определяет, открывать ли позиции только после закрытия бара.
TrailingStop Трейлинг-стоп — Уровень трейлинг-стопа в пунктах. Значение 0 отключает трейлинг.
Trailing step (TrailingStep) Шаг трейлинга — Шаг трейлинг-стопа в пунктах.
BreakEven Уровень безубытка — Уровень в пунктах, при достижении которого стоп-лосс переносится в безубыток. Значение 0 отключает функцию.
MagicNumber Магический номер — Уникальный идентификатор ордеров советника. Значение 0 означает работу без фильтрации по магическому номеру.
Repeat Количество повторов — Количество повторений уведомлений при срабатывании сигнала.
Periods Период повторений — Интервал в секундах между повторными уведомлениями.
UseAlert Использовать оповещения — Включает или отключает систему оповещений советника.
SendEmail Отправлять Email — Разрешает отправку торговых уведомлений по электронной почте.
Slippage Проскальзывание — Максимально допустимое проскальзывание цены в пунктах при открытии и закрытии ордеров.
Crash Режим Crash — Дополнительный режим работы индикаторной логики советника.
TimeFrame Таймфрейм — Таймфрейм, используемый для расчёта индикаторов.
Length Длина периода — Период расчёта индикатора.
Method Метод сглаживания — Метод сглаживания, применяемый при расчёте индикатора.
Smoothing Сглаживание — Параметр сглаживания при расчёте индикатора.
Filter Фильтр — Параметр фильтрации сигналов индикатора.
RealTime Реальное время — Включает работу советника в режиме реального времени.
Steady Стабильный режим — Дополнительный режим стабильной работы советника.
Color Цветовое оформление — Управляет цветовым оформлением отображаемых элементов на графике.
Alerts Оповещения на графике — Включает или отключает вывод графических меток и звуковых сигналов при торговых событиях.
EmailON Отправка Email — Включает или отключает отправку уведомлений по электронной почте.
SignalPrice Цена сигнала — Включает отображение ценовых уровней сигналов на графике.
SignalPriceBUY Цвет цены покупки — Цвет отображения ценового уровня для сигналов на покупку.
SignalPriceSELL Цвет цены продажи — Цвет отображения ценового уровня для сигналов на продажу.
CountBars Количество баров — Количество баров истории, используемых для расчётов и отображения.
Получить полный код

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

#define OrderStr "MasterMind2 By L.Bigger AKA Silence"

extern double  Lots = 200;
extern int  StopLoss = 2000;
extern int   TakeProfit = 0;
extern bool  TradeAtCloseBar = true;
extern int   TrailingStop = 0;
extern int   TrailingStep = 1;      //Trailing step
extern int     BreakEven = 0;
extern int    MagicNumber=0;

extern int     Repeat=3;
extern int     Periods=5;
extern bool    UseAlert=false;
extern bool    SendEmail=true;
extern string
   TradeLog="MasterMind2";

extern int  Slippage = 3;

int           mm = -1;
double         Risk = 1;
int           Crepeat=0;
int            AlertTime=0;
double         AheadTradeSec = 0;
double         AheadExitSec = 0;
int        TradeBar = 0;
double         MaxTradeTime = 300;

extern string  
         Indicator_Setting = "---------- Indicator Setting";
extern   bool     Crash = false;
extern   int      TimeFrame = 0;
extern   int      Length = 5;
extern   int      Method = 3;
extern   int      Smoothing = 1;
extern   int      Filter = 5;

extern   bool     RealTime = true;
extern   bool     Steady  = false;
extern   bool     Color = true;
extern   bool     Alerts = true;
extern   bool     EmailON = false;
extern   bool     SignalPrice = true;
extern   color    SignalPriceBUY = Yellow;
extern   color    SignalPriceSELL = Aqua;
extern   int      CountBars = 1485;

int
     NumberOfTries  = 5, //Number of tries to set, close orders;
     RetryTime   = 1; 

double 
   Ilo     = 0;

int DotLoc=7;
static int TradeLast=0;

string sound="alert.wav";

double sig_buy=0, sig_sell=0, sig_high=0, sig_low=0;

int Spread=0;
string filename="";

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

int deinit()
  {

   return(0);
  }

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

void SetText(int X1, double Y1, string TEXT_NAME, string TEXT_VALUE, int TEXT_COLOR) {
return;
if(ObjectFind(TEXT_NAME) != 0)
{
   ObjectCreate(TEXT_NAME, OBJ_TEXT, 0, X1, Y1);
   ObjectSet(TEXT_NAME,OBJPROP_COLOR,TEXT_COLOR);
   ObjectSetText(TEXT_NAME, TEXT_VALUE, 10, "Wingdings", EMPTY);         
}
else
{
   ObjectMove(TEXT_NAME, 0, X1, Y1);
}                  
}

void Alerts(int _buy, int _sell, int _exitbuy, int _exitsell, double _op, double _sl, double _tp, int _ticket) {

string AlertStr="";
AlertStr="";
string CurDate="";
CurDate=TimeToStr(CurTime(),TIME_DATE|TIME_MINUTES);

if (UseAlert)
{

if (_buy==1) 
{ 
   if (Crepeat==Repeat)
   { 
      AlertTime=0;
   }
   if (Crepeat>0 && (CurTime()-AlertTime)>Periods)
   {
   if (_buy==1) {
   AlertStr=AlertStr+"Buy @ "+DoubleToStr(_op,Digits)+"; SL: "+DoubleToStr(_sl,Digits)+"; TP: "+DoubleToStr(_tp,Digits)+" at "+CurDate+" Order:"+DoubleToStr(_ticket,0)+"."; 
   Alert(Symbol()," ",Period(), ": ",AlertStr); 
   if (SendEmail) 
   {
      SendMail(Symbol()+" "+Period()+ ": ",Symbol()+" "+Period()+": "+AlertStr);
   }

      Crepeat=Crepeat-1;
      AlertTime=CurTime();
   }

   } 
}

if (_sell==1) 
{ 
   if (Crepeat==Repeat)
   { 
      AlertTime=0;
   }
   if (Crepeat>0 && (CurTime()-AlertTime)>Periods)
   {
   if (_sell==1) {
      AlertStr=AlertStr+"Sell @ "+DoubleToStr(_op,Digits)+"; SL: "+DoubleToStr(_sl,Digits)+"; TP: "+DoubleToStr(_tp,Digits)+" at "+CurDate+" Order:"+DoubleToStr(_ticket,0)+"."; 
   Alert(Symbol()," ",Period(), ": ",AlertStr); 
   if (SendEmail) 
   {
      SendMail(Symbol()+" "+Period()+ ": ",Symbol()+" "+Period()+": "+AlertStr);
   }

      Crepeat=Crepeat-1;
      AlertTime=CurTime();
   }

   } 
}

if (_exitsell==1) 
{ 
   if (Crepeat==Repeat)
   { 
   AlertTime=0;
   }

if (Crepeat>0 && (CurTime()-AlertTime)>Periods)
{
   if (_exitsell==1) {
   AlertStr=AlertStr+" Close Sell @ "+DoubleToStr(_op,Digits)+" at "+CurDate+" Order:"+DoubleToStr(_ticket,0)+"."; 
   Alert(Symbol()," ",Period(), ": ", AlertStr); 
   if (SendEmail) 
   {
      SendMail(Symbol()+" "+Period()+ ": ",Symbol()+" "+Period()+": "+AlertStr);
   }

   Crepeat=Crepeat-1;
   AlertTime=CurTime();
   }

}

} 

if (_exitbuy==1) 
{ 
   if (Crepeat==Repeat)
   { 
      AlertTime=0;
   }
   if (Crepeat>0 && (CurTime()-AlertTime)>Periods)
   {
   if (_exitbuy==1) {
   AlertStr=AlertStr+" Close Buy @ "+DoubleToStr(_op,Digits)+" at "+CurDate+" Order:"+DoubleToStr(_ticket,0)+"."; 
   Alert(Symbol()," ",Period(), ": ",AlertStr); 
   if (SendEmail) 
   {
      SendMail(Symbol()+" "+Period()+ ": ",Symbol()+" "+Period()+": "+AlertStr);
   }

      Crepeat=Crepeat-1;
      AlertTime=CurTime();
   }

   } 
}

if (_exitbuy==0 && _exitsell==0 && _buy==0 && _sell==0)  
{
   Crepeat=Repeat;
   AlertTime=0;
}

}

return;
}

void subPrintDetails()
{
   string sComment   = "";
   string sp         = "----------------------------------------\n";
   string NL         = "\n";
 string sDirection = "";
   sComment = "The MasterMind2 By L.Bigger AKA Silence" + NL;
   sComment = sComment + "StopLoss=" + DoubleToStr(StopLoss,0) + " | "; 
   sComment = sComment + "TakeProfit=" + DoubleToStr(TakeProfit,0) + " | ";
   sComment = sComment + "TrailingStop=" + DoubleToStr(TrailingStop,0) + NL;   
   sComment = sComment + sp;   
   sComment = sComment + "Lots=" + DoubleToStr(Ilo,2) + " | ";
   sComment = sComment + "LastTrade=" + DoubleToStr(TradeLast,0) + NL; 
   sComment = sComment + "sig_buy=" + DoubleToStr(sig_buy,Digits) + NL; 
   sComment = sComment + "sig_sell=" + DoubleToStr(sig_sell,Digits) + NL; 
   sComment = sComment + sp;  
   Comment(sComment);
}

int CntOrd(int Type, int Magic) {

int _CntOrd;
_CntOrd=0;
for(int i=0;i<OrdersTotal();i++)
{
   OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

   if (OrderSymbol()==Symbol()) {
      if ( (OrderType()==Type && (OrderMagicNumber()==Magic) || Magic==0)) _CntOrd++;
   }
}
return(_CntOrd);
}

string ErrorDescription(int error_code)
  {
   string error_string;

   switch(error_code)
     {

      case 0:
      case 1:   error_string="no error";                                                  break;
      case 2:   error_string="common error";                                              break;
      case 3:   error_string="invalid trade parameters";                                  break;
      case 4:   error_string="trade server is busy";                                      break;
      case 5:   error_string="old version of the client terminal";                        break;
      case 6:   error_string="no connection with trade server";                           break;
      case 7:   error_string="not enough rights";                                         break;
      case 8:   error_string="too frequent requests";                                     break;
      case 9:   error_string="malfunctional trade operation";                             break;
      case 64:  error_string="account disabled";                                          break;
      case 65:  error_string="invalid account";                                           break;
      case 128: error_string="trade timeout";                                             break;
      case 129: error_string="invalid price";                                             break;
      case 130: error_string="invalid stops";                                             break;
      case 131: error_string="invalid trade volume";                                      break;
      case 132: error_string="market is closed";                                          break;
      case 133: error_string="trade is disabled";                                         break;
      case 134: error_string="not enough money";                                          break;
      case 135: error_string="price changed";                                             break;
      case 136: error_string="off quotes";                                                break;
      case 137: error_string="broker is busy";                                            break;
      case 138: error_string="requote";                                                   break;
      case 139: error_string="order is locked";                                           break;
      case 140: error_string="long positions only allowed";                               break;
      case 141: error_string="too many requests";                                         break;
      case 145: error_string="modification denied because order too close to market";     break;
      case 146: error_string="trade context is busy";                                     break;

      case 4000: error_s

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

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

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

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

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

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

Стоимость полного кода
2 148,90₽ ≈ $26.27