tma nrp + bands + alerts_mtf.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «tma nrp + bands + alerts_mtf.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой индикатор для платформы MetaTrader 5, который рассчитывает скользящую среднюю на основе треугольного метода (TMA) и строит верхнюю и нижнюю полосы на основе показателя ATR. Индикатор отображает результаты расчёта на графике цены и поддерживает работу на различных таймфреймах, включая мультитаймфреймный режим.
Индикатор оснащён функцией оповещений, которая срабатывает при пересечении ценой верхней или нижней полосы. Доступны различные типы уведомлений: всплывающие сообщения, звуковые сигналы, push-уведомления и email-рассылка. Визуальное отображение линии TMA может использовать цветовую индикацию направления движения.
Настройки индикатора позволяют управлять периодами расчёта, ценовыми параметрами, коэффициентами полос и типами оповещений. Индикатор работает в основном графике и использует пять буферов для отрисовки.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Таймфрейм, на котором рассчитывается индикатор. Установка значения PERIOD_CURRENT означает работу на таймфрейме текущего графика. |
| TmaPeriod | Период расчёта треугольной скользящей средней (TMA). Определяет количество баров, учитываемых при усреднении. |
| TmaPrice | Тип цены, используемой для расчёта TMA (например, закрытие, открытие, среднее и т.д.). |
| ATRMultiplier | Коэффициент умножения для расчёта ширины полос на основе ATR. Увеличение значения расширяет полосы, уменьшение — сужает их. |
| ATRPeriod | Период расчёта индикатора ATR, используемого для определения ширины полос. |
| Shift | Смещение индикатора в барах относительно текущего бара. |
| alertsOn | Главный переключатель включения всех оповещений индикатора. При выключенном значении оповещения не срабатывают. |
| alertsOnCurrent | Переключатель определяет, на каком баре отслеживать изменение тренда: на текущем баре (true) или на предыдущем (false). |
| alertsMessage | Переключатель всплывающих сообщений (Alert) при срабатывании оповещения. |
| alertsSound | Переключатель воспроизведения звукового сигнала при срабатывании оповещения. |
| alertsNotify | Переключатель отправки push-уведомлений при срабатывании оповещения. |
| alertsEmail | Переключатель отправки email-уведомлений при срабатывании оповещения о пересечении полос. |
| soundFile | Имя звукового файла, который воспроизводится при активированных звуковых оповещениях. |
| MultiColor | Переключатель цветовой индикации линии TMA в зависимости от направления её изменения. При активации линия отображается разными цветами для нисходящего и восходящего направлений. |
Поиск по коду файла
#property indicator_chart_window
#property indicator_buffers 5
#property indicator_color1 DeepSkyBlue
#property indicator_color2 PaleVioletRed
#property indicator_color3 PaleVioletRed
#property indicator_color4 Lime
#property indicator_color5 Red
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 2
#property indicator_style4 STYLE_DOT
#property indicator_style5 STYLE_DOT
extern ENUM_TIMEFRAMES TimeFrame = PERIOD_CURRENT;
extern int TmaPeriod = 20;
extern ENUM_APPLIED_PRICE TmaPrice = PRICE_CLOSE;
extern double ATRMultiplier = 2.0;
extern int ATRPeriod = 12;
extern int Shift = 0;
extern bool alertsOn = false;
extern bool alertsOnCurrent = true;
extern bool alertsMessage = true;
extern bool alertsSound = false;
extern bool alertsNotify = false;
extern bool alertsEmail = false;
extern string soundFile = "alert2.wav";
extern bool MultiColor = true;
double tma[];
double tmaDa[];
double tmaDb[];
double bandUp[];
double bandDn[];
double slope[];
double trend[];
string indicatorFileName;
bool returnBars;
int init()
{
// код доступен только после оплаты
}
int start()
{
// код доступен только после оплаты
}
int counted_bars=IndicatorCounted();
int i,limit;
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit = MathMin(Bars-counted_bars,Bars-1);
if (returnBars) { tma[0] = MathMin(limit+1,Bars-1); return(0); }
if (TimeFrame == Period())
{
if (MultiColor && slope[limit]==-1) CleanPoint(limit,tmaDa,tmaDb);
for(i=limit; i>=0; i--)
{
tma[i] = iTma(iMA(NULL,0,1,0,MODE_SMA,TmaPrice,i),TmaPeriod,i,0);
double range = iATR(NULL,0,ATRPeriod,i+10)*ATRMultiplier;
bandUp[i] = tma[i]+range;
bandDn[i] = tma[i]-range;
tmaDa[i] = EMPTY_VALUE;
tmaDb[i] = EMPTY_VALUE;
slope[i] = slope[i+1];
trend[i] = trend[i+1];
if (tma[i]<tma[i+1]) slope[i] = -1;
if (tma[i]>tma[i+1]) slope[i] = 1;
if (Close[i]>bandUp[i]) trend[i] = -1;
if (Close[i]<bandDn[i]) trend[i] = 1;
if (MultiColor && slope[i] == -1) PlotPoint(i,tmaDa,tmaDb,tma);
}
if (alertsOn)
{
if (alertsOnCurrent)
int whichBar = 0;
else whichBar = 1;
if (trend[whichBar] != trend[whichBar+1])
{
if (trend[whichBar] == 1) doAlert(whichBar,"price crossing lower band");
if (trend[whichBar] ==-1) doAlert(whichBar,"price crossing upper band");
}
}
return(0);
}
limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,TimeFrame,indicatorFileName,-99,0,0)*TimeFrame/Period()));
if (MultiColor && slope[limit]==-1) CПоказано первые 50% кода (символов: 5323)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.