MasterMind2
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «themastermind2.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.