! indicador_tv_to_mt4 (mtf).mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «! indicador_tv_to_mt4 (mtf).mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор для MetaTrader 4, отображающий на графике стрелки вверх и вниз по направлению изменения ценового тренда. Расчёт выполняется по данным выбранного таймфрейма с использованием значений ATR и заданного множителя. Индикатор поддерживает режим мультитаймфрейм: если выбранный таймфрейм отличается от текущего графика, значения пересчитываются с учётом баров старшего периода.
При появлении сигнала на закрытии свечи формируется стрелка: вверх — при смене направления вверх, вниз — при смене направления вниз. Стрелки можно отключать или включать, а также выбирать их цвета. Дополнительно можно включить оповещения: всплывающие уведомления в терминале, push-уведомления на мобильные устройства и уведомления по электронной почте. Текст уведомления содержит символ, таймфрейм и направление сигнала.
Индикатор не является торговым советником и не выполняет торговых операций. Все вычисления производятся только для отображения на графике и отправки уведомлений.
Настройки программы
| Настройка | Описание |
|---|---|
| Time frame (TimeFrame) | Таймфрейм — Таймфрейм, на котором рассчитывается индикатор. Если выбранный таймфрейм ниже текущего графика, используется текущий. |
| Key value: (m) | Ключевое значение — Множитель для расчёта порогового значения на основе ATR. |
| ATR periods: (atrPeriods) | Периоды ATR — Количество периодов для расчёта ATR. |
| Signals From Heinken Ashi Candles (h) | Сигналы по свечам Heiken Ashi — Использовать свечи Heiken Ashi для формирования сигналов. |
| ———————————— (T1) | Заголовок раздела уведомлений — Разделитель группы настроек уведомлений. |
| Notifications On? (notifications) | Включить уведомления — Общий переключатель уведомлений. Если выключен, остальные типы уведомлений не отправляются. |
| Desktop MT4 Notifications (desktop_notifications) | Уведомления на рабочем столе — Включает всплывающие уведомления в терминале MetaTrader 4. |
| Email Notifications (email_notifications) | Уведомления по email — Включает отправку уведомлений по электронной почте. |
| Push Mobile Notifications (push_notifications) | Push-уведомления — Включает отправку push-уведомлений на мобильные устройства. |
| ———————————— (T2) | Заголовок раздела стрелок — Разделитель группы настроек стрелок. |
| Arrows On? (ArrowsOn) | Показывать стрелки — Включает или отключает отображение стрелок на графике. |
| Arrows on first mtf bar (inpArrowsOnFirst) | Стрелки на первом баре старшего ТФ — Отображать стрелки на первом баре старшего таймфрейма. |
| Arrow Up Color: (ArrowUpClr) | Цвет стрелки вверх — Цвет стрелки вверх. |
| Arrow Down Color: (ArrowDnClr) | Цвет стрелки вниз — Цвет стрелки вниз. |
Поиск по коду файла
#property version "1.0"
#property strict
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots 2
#property indicator_label1 "Arrow Up"
#property indicator_type1 DRAW_ARROW
#property indicator_color1 clrWhite
#property indicator_style1 STYLE_SOLID
#property indicator_width1 1
#property indicator_label2 "Arrow Down"
#property indicator_type2 DRAW_ARROW
#property indicator_color2 clrWhite
#property indicator_style2 STYLE_SOLID
#property indicator_width2 1
#property indicator_type2 DRAW_NONE
extern ENUM_TIMEFRAMES TimeFrame = PERIOD_CURRENT; // Time frame
input double m = 2; // Key value:
input double atrPeriods = 14; // 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 bool inpArrowsOnFirst = false; // Arrows on first mtf bar
input color ArrowUpClr = clrWhite; // Arrow Up Color:
input color ArrowDnClr = clrWhite; // Arrow Down Color:
double ArrowUp[];
double ArrowDn[];
double xATRTrailingStop[],count[];
double nLoss, xATR;
string indicatorFileName;
#define _mtfCall(_buff,_ind) iCustom(NULL,TimeFrame,indicatorFileName,PERIOD_CURRENT,m,atrPeriods,h,T1,notifications,desktop_notifications,email_notifications,push_notifications,T2,ArrowsOn,inpArrowsOnFirst,ArrowUpClr,ArrowDnClr,_buff,_ind)
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")
{
_shadowInf = Distance(_close, _low, _symbol);
_shadowSup = Distance(_open, _high, _symbol);
}
}
float Distance(double precioA, double precioB, string par)
{
double mPoint = MarketInfo(par, MODE_POINT);
double dist = fabs(precioA - precioB);
double distReturn = 0;
if (mPoint > 0) distReturn = dist / mPoint;
return distReturn;
}
};
CCandle candle1();
CCandle candle2();
class CNewCandle
{
private:
int Показано первые 50% кода (символов: 7280)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.