atrtrailstopv3 alerts.mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «atrtrailstopv3 alerts.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор рассчитывает уровни поддержки и сопротивления на основе усреднённого истинного диапазона (ATR) и отображает их на графике в виде стрелок. Два буфера данных соответствуют уровням поддержки (синий) и сопротивления (красный), при этом расчёт может выполняться по средней цене (High+Low)/2 или по цене закрытия в зависимости от настроек.
Индикатор поддерживает систему уведомлений: всплывающие сообщения, звуковые сигналы, push-уведомления и email-рассылку. Срабатывание алертов происходит при появлении нового значения уровня на указанном баре. Параметр смещения distance позволяет добавить отступ от рассчитанных уровней.
Продукт предназначен для работы в MetaTrader 4 как пользовательский индикатор, обрабатывающий данные ценовых свечей и ATR для построения динамических уровней стоп-лосса.
Настройки программы
| Настройка | Описание |
|---|---|
| BackPeriod | Количество баров, начиная с текущего, в пределах которых выполняется расчёт значений индикатора. При значении 0 расчёт выполняется по всем доступным барам. |
| ATRPeriod | Период расчёта усреднённого истинного диапазона (ATR), используемого для построения уровней поддержки и сопротивления. |
| Factor | Множитель, на который умножается значение ATR для определения расстояния от цены до уровней поддержки и сопротивления. |
| MedianPrice | Задаёт способ расчёта ценового уровня для отрисовки: при активном значении используется средняя цена (High+Low)/2, при неактивном — цена закрытия Close. |
| MedianBase | Определяет базис для расчёта направления изменения уровней: при активном значении используются средние цены (High+Low)/2 текущего и предыдущего бара, при неактивном — цены закрытия Close. |
| CloseBase | При активном значении для определения пробития уровня используется цена закрытия свечи Close, при неактивном — минимальная или максимальная цена свечи (Low или High). |
| distance | Смещение в пунктах, добавляемое к или вычитаемое из рассчитанных уровней поддержки и сопротивления при отрисовке. |
| alertsOn | Общий переключатель для включения и отключения всей системы уведомлений индикатора. |
| alertsOnCurrent | При активном значении алерты срабатывают на текущем баре, при неактивном — на баре с индексом 1 (предыдущий завершённый бар). |
| alertsMessage | Включает или отключает всплывающие текстовые сообщения в терминале при срабатывании алертов. |
| alertsSound | Включает или отключает воспроизведение звукового сигнала при срабатывании алертов. |
| alertsNotify | Включает или отключает push-уведомления для мобильного терминала при срабатывании алертов. |
| alertsEmail | Включает или отключает отправку email-уведомлений при срабатывании алертов индикатора. |
Поиск по коду файла
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 RoyalBlue
#property indicator_width1 0
#property indicator_style1 0
#property indicator_color2 Red
#property indicator_width2 0
#property indicator_style2 0
extern int BackPeriod = 2000;
extern int ATRPeriod = 20;
extern double Factor = 2;
extern bool MedianPrice = true;
extern bool MedianBase = true;
extern bool CloseBase = false;
extern double distance = 0;
extern bool alertsOn = true;
extern bool alertsOnCurrent = true;
extern bool alertsMessage = true;
extern bool alertsSound = false;
extern bool alertsNotify = true;
extern bool alertsEmail = true;
double ind_buffer1[];
double ind_buffer2[];
int init()
{
// код доступен только после оплаты
}
int start()
{
// код доступен только после оплаты
}
int limit;
int counted_bars=IndicatorCounted();
double PrevUp, PrevDn;
double CurrUp, CurrDn;
double PriceCurr, PricePrev;
double PriceLvl;
double PriceHLorC;
double LvlUp = 0;
double LvlDn = 1000;
int Dir = 1;
int InitDir;
if(counted_bars<0) return(-1);
if(counted_bars==0) counted_bars++;
if (BackPeriod==0) limit=Bars-counted_bars; else limit=BackPeriod;
InitDir = 0;
for(int i=limit; i>=0; i--)
{
if (MedianPrice) PriceLvl = (High[i] + Low[i])/2;
else PriceLvl = Close[i];
if (MedianBase) {
PriceCurr = (High[i] + Low[i])/2;
PricePrev = (High[i-1] + Low[i-1])/2;
}
else {
PriceCurr = Close[i];
PricePrev = Close[i-1];
}
if(InitDir == 0) {
CurrUp=PriceCurr - (iATR(NULL,0,ATRPeriod,i) * Factor);
PrevUp=PricePrev - (iATR(NULL,0,ATRPeriod,i-1) * Factor);
CurrDn=PriceCurr + (iATR(NULL,0,ATRPeriod,i) * Factor);
PrevDn=PricePrev + (iATR(NULL,0,ATRPeriod,i-1) * Factor);
if (CurrUp > PrevUp) Dir = 1;
LvlUp = CurrUp;
if (CurrDn < PrevDn) Dir = -1;
LvlDn = CurrDn;
InitDir = 1;
}
Показано первые 50% кода (символов: 3476)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.