Помощь в написании кодов MQL4.

Vasia

Новичок
Регистрация
6 Фев 2019
Сообщения
3
Поблагодарили
0
Поинты
0.00
Пол
Муж.
Ребята помогите пожалуйста начинающему познавать
азы программирования на MQL4.MT4

Интересует Функция SendMail

Как правильно поправить код
чтобы при достижении советником заданного процента просадки депозита,
советник один рас отправил бы Е-майл сообщение.
В данном варианте кода, емейл сообщения сыпятся многочисленно.
Помогите пожалуйста, очень надо !
Вот исходный код.

Отправка сообщения на Емайл, при указанной просадке в процентах.


double MailDrawDown = 20.0; // Указываем значение в процентах %


if(AccountEquity()/AccountBalance()*100>=MailDrawDown)
SendMail("WARNING ACCOUNT !!!",AccountNumber());
{
if(!IsTesting())
{
return(0);
}

Зарание огромное спасибо.
 

AlexeyVik

Участник
Регистрация
22 Ноя 2018
Сообщения
216
Поблагодарили
22
Поинты
0.00
Пол
Муж.
По этой формуле вычисляется остаток депозита в процентах. То-есть отправка сообщения на почту будет до того момента пока остаток на счёте будет больше 20%
А по сути вопроса: Можно завести флаг, который вставляется дополнительным условием и если отправка была переключаем флаг.
 

Vasia

Новичок
Регистрация
6 Фев 2019
Сообщения
3
Поблагодарили
0
Поинты
0.00
Пол
Муж.
Здравствуй AlexeyVik.

Может наглядно можешь написать как правильно должно быть.
Я только начинающий.
Буду бескрайне благодарен.
 

AlexeyVik

Участник
Регистрация
22 Ноя 2018
Сообщения
216
Поблагодарили
22
Поинты
0.00
Пол
Муж.
Извини, но у меня мои тараканы в моей голове не позволяют помогать написанием кода. На словах могу очень долго и безвозмездно обсуждать чужую проблему, смотреть что написано, делать замечания и т.д. Но просто писать код... нет. Да к тому-же отправкой сообщений на почту я не пользовался. Соответственно готового кода нет. В принципе я предложил один, самый простой вариант, а вариантов в любом случае не один.
 

Vasia

Новичок
Регистрация
6 Фев 2019
Сообщения
3
Поблагодарили
0
Поинты
0.00
Пол
Муж.
Ну, спасибо и на этом.
 

Aksi

Участник
Регистрация
2 Июл 2019
Сообщения
59
Поблагодарили
3
Поинты
0.00
Пол
Муж.
Здравствуйте, подскажите, пожалуйста, индикатор выводит алерт при появлении трендовой линии или при ее сдвиге. но также сигналит при смене имени, без ее сдвига. Как сделать, чтобы он сигналил только при сдвиге и не реагировал на смену имени? Заранее спасибо!

{
if(ObjectType(ObjectName(i)) == OBJ_TREND)
{
double pr1 = NormalizeDouble(ObjectGetDouble(0,ObjectName(i),OBJPROP_PRICE1), Digits);
double pr2 = NormalizeDouble(ObjectGetDouble(0,ObjectName(i),OBJPROP_PRICE2), Digits);
datetime tm1 = ObjectGetInteger(0,ObjectName(i),OBJPROP_TIME1);
datetime tm2 = ObjectGetInteger(0,ObjectName(i),OBJPROP_TIME2);
//double pr3 = ObjectGetInteger (0,ObjectName(i),OBJPROP_COLOR);
//double pr4 = ObjectGetString (0,ObjectName(i),OBJPROP_TEXT);
//ObjectSetString(0, nameOfBuyLine,OBJPROP_TEXT,Period());

string name1 = ObjectName(i) + "|High Lable";
//if (pr3 == clrOliveDrab)
//if (pr4 == 0)
if(ObjectFind(0,name1) != -1)

{
if(MathMax(pr1,pr2) != ObjectGetDouble(0,name1,OBJPROP_PRICE) || tm1 != ObjectGetInteger(0,name1,OBJPROP_TIME)) ObjectDelete(0,name1);
}
else
{
//Print(tm2);
int whichBar = 1;
static datetime time1 = 0;
static string mess1 = "";
int anc=ANCHOR_LEFT_LOWER;
if(tm2 < tm1) anc=ANCHOR_RIGHT_LOWER;
DrawLable(tm1,MathMax(pr1,pr2),name1,color_high,anc); //MathMax(pr1,pr2)
doAlert(time1,mess1,whichBar,"resist_verified");

}
 
Сверху