supertrend_ mtf_alert.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «supertrend_ mtf_alert.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный индикатор рассчитывает и отображает на графике линию тренда с двумя вспомогательными уровнями, используя для расчёта периодические аналитические инструменты платформы MetaTrader. Поддерживается визуализация на текущем таймфрейме, а также возможность расчёта на выбранном старшем таймфрейме с отображением результатов на графике текущего символа. Индикатор использует три буфера для отрисовки: основную линию тренда и два вспомогательных уровня, которые формируют визуальные точки разворота.
Встроена система уведомлений: при смене направления тренда на баре срабатывает всплывающее оповещение с указанием текущего символа и направления изменения. Уведомления можно включать и отключать с помощью соответствующей настройки. Индикатор корректно обрабатывает пересчёт при поступлении новых данных и при удалении объектов с графика.
Настройки программы
| Настройка | Описание |
|---|---|
| CCIperiod | Период CCI — Параметр, определяющий период индикатора CCI, используемого для определения направления тренда. |
| ATRperiod | Период ATR — Параметр, определяющий количество баров, используемых для расчёта среднего диапазона ценового движения. |
| timeFrame | Таймфрейм — Текстовый параметр, задающий таймфрейм для мультитаймфреймного расчёта индикатора. Допускаются значения в виде текстовых обозначений (например, M1, H1, D1) или числовых значений минут. |
| SignalAlert | Сигнал уведомлений — Переключатель, управляющий отправкой всплывающих уведомлений при смене направления тренда. |
Поиск по коду файла
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 DodgerBlue
#property indicator_color2 Red
#property indicator_color3 Red
extern int CCIperiod = 63;
extern int ATRperiod = 18;
extern string timeFrame = "Current time frame";
extern bool SignalAlert = True;
double Trend[];
double TrendDoA[];
double TrendDoB[];
double Direction[];
int TimeFrame;
string IndicatorFileName;
int a=0,b=0;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
ObjectsDeleteAll();
return(0);
}
int start()
{
// код доступен только после оплаты
}
int counted_bars = IndicatorCounted();
int limit,i;
if(counted_bars < 0) return(-1);
if(counted_bars>0) counted_bars--;
limit = MathMax(Bars-counted_bars,Bars-1);
if (Direction[limit] == -1) CleanPoint(limit,TrendDoA,TrendDoB);
if (TimeFrame != Period())
{
limit = MathMax(limit,TimeFrame/Period());
for(i=limit; i>=0; i--)
{
int y = iBarShift(NULL,TimeFrame,Time[i]);
double cciTrend = iCCI(NULL, TimeFrame, CCIperiod, PRICE_TYPICAL, y);
TrendDoA[i] = EMPTY_VALUE;
TrendDoB[i] = EMPTY_VALUE;
Trend[i] = iCustom(NULL,TimeFrame,IndicatorFileName,0,y);
Direction[i] = Direction[i+1];
if (cciTrend>0) Direction[i] = 1;
if (cciTrend<0) Direction[i] = -1;
if (Direction[i]==-1) PlotPoint(i,TrendDoA,TrendDoB,Trend);
}
return(0);
}
for(i = limit; i >= 0; i--)
{
cciTrend = iCCI(NULL, 0, CCIperiod, PRICE_TYPICAL, i);
TrendDoA[i] = EMPTY_VALUE;
TrendDoB[i] = EMPTY_VALUE;
Trend[i] = Trend[i+1];
Direction[i] = Direction[i+1];
if (cciTrend > 0) { Trend[i] = MathMax(Low[i] - iATR(NULL, 0, ATRperiod, i),Trend[i+1]); Direction[i] = 1; }
if (cciTrend < 0) { Trend[i] = MathMin(High[i] + iATR(NULL, 0, ATRperiod, i),Trend[i+1]); Direction[i] = -1; }
if (Direction[i]==-1) PlotPoint(i,TrendDoA,TrendDoB,Trend);
}
/*
ObjectCreate("VertMark",OBJ_VLINE,0,Time[goback],Open[goback]);
Comment(
"Trend["+goback+"] = " + Trend[goback] + "\n" +
"TrendDoA["+goback+"] = " + TrendDoA[goback] + "\n" +
"TrendDoB["+goback+"] = " + TrendDoB[goback] + "\n" +
"Direction["+goback+"] = " + Direction[goback] + "\n" +
"--------------Показано первые 50% кода (символов: 4082)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.