utbotalerts.mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «utbotalerts.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой индикатор для платформы MetaTrader 4, который рассчитывает уровень трейлинг-стопа на основе среднего истинного диапазона (ATR) и отображает стрелки на графике при пересечении цены этим уровнем. Стрелки вверх (зелёного цвета) и вниз (красного цвета) указывают на изменение направления цены относительно рассчитанного трейлинг-стопа.
Индикатор использует два буфера отрисовки стрелок и один внутренний буфер для хранения значений трейлинг-стопа. Уровень трейлинг-стопа пересчитывается на каждом тике на основе периода ATR и заданного множителя. Уведомления срабатывают при появлении новой свечи и совпадении с сигналом пересечения уровня.
Продукт предоставляет настройки для включения различных типов уведомлений: десктопных alert-уведомлений, push-уведомлений на мобильное устройство и email-рассылки. Также доступны настройки отображения стрелок и выбора их цветов. Параметр для сигналов на основе свечей Heinken Ashi объявлен, но в текущей версии не задействован в расчётах.
Настройки программы
| Настройка | Описание |
|---|---|
| m | Множитель, определяющий ширину трейлинг-стопа как произведение значения ATR на данное число. |
| atrPeriods | Период расчёта индикатора ATR (средний истинный диапазон), используемого для определения уровня трейлинг-стопа. |
| h | Переключатель сигналов на основе свечей Heinken Ashi. В текущей версии индикатора параметр объявлен, но не используется в расчётах. |
| T1 | Текстовый разделитель группы настроек уведомлений в диалоге параметров индикатора. |
| notifications | Общий переключатель включения всех уведомлений. При отключении блокируется отправка всех типов уведомлений. |
| desktop_notifications | Включает десктопные уведомления MT4 (Alert) при появлении сигнала. |
| email_notifications | Включает отправку email-уведомлений при появлении сигнала. |
| push_notifications | Включает отправку push-уведомлений на мобильное устройство при появлении сигнала. |
| T2 | Текстовый разделитель группы настроек стрелок в диалоге параметров индикатора. |
| ArrowsOn | Включает отображение стрелок на графике. При отключении стрелки не отрисовываются. |
| ArrowUpClr | Цвет стрелки, указывающей рост цены. |
| ArrowDnClr | Цвет стрелки, указывающей снижение цены. |
Поиск по коду файла
#property version "1.0"
#property strict
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_plots 2
#property indicator_label1 "Arrow Up"
#property indicator_type1 DRAW_ARROW
#property indicator_color1 clrLawnGreen
#property indicator_style1 STYLE_SOLID
#property indicator_width1 2
#property indicator_label2 "Arrow Down"
#property indicator_type2 DRAW_ARROW
#property indicator_color2 clrCrimson
#property indicator_style2 STYLE_SOLID
#property indicator_width2 2
#property indicator_type2 DRAW_NONE
double ArrowUp[];
double ArrowDn[];
double xATRTrailingStop[];
double nLoss, xATR;
input double m = 2; // Key value:
input double atrPeriods = 1; // ATR periods:
input bool h = false; // Signals From Heinken Ashi Candles
input string T1 = "== Notifications =="; // ————————————
input bool notifications = false; // Notifications On?
input bool desktop_notifications = false; // Desktop MT4 Notifications
input bool email_notifications = false; // Email Notifications
input bool push_notifications = false; // Push Mobile Notifications
input string T2 = "== Set Arrows =="; // ————————————
input bool ArrowsOn = true; // Arrows On?
input color ArrowUpClr = clrLawnGreen; // Arrow Up Color:
input color ArrowDnClr = clrCrimson; // Arrow Down Color:
class CCandle
{
int _timeFrame;
string _symbol;
double _open;
double _high;
double _low;
double _close;
float _size;
string _type;
string _direction;
float _bodySize;
float _shadowSup;
float _shadowInf;
public:
CCandle() { ; }
CCandle(string sym, int tf) : _symbol(sym), _timeFrame(tf) {}
~CCandle() { ; }
float Size(void) { return _size; }
string Type(void) { return _type; }
double Open(void) { return _open; }
double High(void) { return _high; }
double Low(void) { return _low; }
double Close(void) { return _close; }
string Direction(void) { return _direction; }
float BodySize(void) { return _bodySize; }
float ShadowSup(void) { return _shadowSup; }
float ShadowInf(void) { return _shadowInf; }
void setCandle(int shift = 1)
{
_open = iOpen(_symbol, _timeFrame, shift);
_high = iHigh(_symbol, _timeFrame, shift);
_low = iLow(_symbol, _timeFrame, shift);
_close = iClose(_symbol, _timeFrame, shift);
setDirection();
setSize();
setBodySize();
setShadows();
}
void setSize()
{
_size = 1;
if (Distance(_high, _low, _symbol) > 0)
{
_size = Distance(_high, _low, _symbol);
}
}
void setBodySize()
{
_bodySize = 1;
if (Distance(_open, _close, _symbol) > 0)
{
_bodySize = Distance(_open, _close, _symbol);
}
}
void setDirection()
{
if (_open < _close)
{
_direction = "up";
}
if (_open > _close)
{
_direction = "down";
}
if (_open == _close)
{
_direction = "null";
}
}
void PrintCandle()
{
Print(__FUNCTION__, " ", "symbol", " ", _symbol);
Print(__FUNCTION__, " ", "open", " ", _open);
Print(__FUNCTION__, " ", "high", " ", _high);
Print(__FUNCTION__, " ", "low", " ", _low);
Print(__FUNCTION__, " ", "close", " ", _close);
Print(__FUNCTION__, " ", "_size;", " ", _size);
Print(__FUNCTION__, " ", "_type;", " ", _type);
Print(__FUNCTION__, " ", "_direction;", " ", _direction);
Print(__FUNCTION__, " ", "_bodySize;", " ", _bodySize);
Print(__FUNCTION__, " ", "_shadowSup;", " ", _shadowSup);
Print(__FUNCTION__, " ", "_shadowInf;", " ", _shadowInf);
}
void setShadows()
{
if (Direction() == "up")
{
_shadowInf = Distance(_open, _low, _symbol);
_shadowSup = Distance(_close, _high, _symbol);
}
if (Direction() == "down")
{
_shadowInf = Distance(_close, _low, _symbol);
_shadowSup = Distance(_open, _high, _symbol);
}
if (Direction() == "null"Показано первые 50% кода (символов: 5983)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.