trend scalp (mtf + arrows + alerts).mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «trend scalp (mtf + arrows + alerts).mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор для MetaTrader 4, рассчитывающий трендовый триггерный фактор на основе сглаживания T3 (Tim Tillson) от нормализованного диапазона цены (разница между максимумом и минимумом за заданное количество баров). Поддерживает много таймфреймов: расчёт может выполняться на более высоком таймфрейме с интерполяцией результатов на текущем графике. Отображает уровни направления тренда, сигнальные маркеры, стрелки на графике и отправляет уведомления при смене направления.
Настройки программы
| Настройка | Описание |
|---|---|
| Time frame (TimeFrame) | Таймфрейм — Таймфрейм для расчёта индикатора; если выбран PERIOD_CURRENT, используется таймфрейм текущего графика |
| Trend trigger factor bars (TTFbars) | Баров триггера тренда — Количество баров, за которые определяются экстремумы высоких и низких цен для расчёта триггерного фактора |
| Upper level (topLine) | Верхний уровень — Значение верхнего порогового уровня для формирования сигналов и отображения линий |
| Lower level (btmLine) | Нижний уровень — Значение нижнего порогового уровня для формирования сигналов и отображения линий |
| T3 smoothing period (t3Period) | Период T3 — Период сглаживания T3, влияющий на плавность индикаторной линии |
| T3 Hot (t3Hot) | Коэффициент горячести T3 — Коэффициент сглаживания T3, определяющий скорость реакции индикатора на изменения цены |
| T3 original Tim Tillson calculation (t3Original) | Исходный T3 — Использовать оригинальную формулу расчёта T3 Тим Тиллисона вместо модифицированной |
| Show top and bottom levels true/false? (ShowTopBtmLevels) | Показывать уровни — Отображать линии верхнего и нижнего уровней на графике |
| Show colored signals true/false? (showSignals) | Показывать сигналы — Отображать цветные маркеры сигнальных уровней на графике |
| Alerts on true/false? (alertsOn) | Уведомления включены — Включить или выключить все типы уведомлений |
| Alerts on current open bar true/false? (alertsOnCurrent) | Уведомления на текущем баре — Отправлять уведомления по текущему открытому бару вместо следующего |
| Alerts pop-up message true/false? (alertsMessage) | Сообщение уведомления — Показывать всплывающее сообщение при срабатывании уведомления |
| Alerts sound true/false? (alertsSound) | Звук уведомления — Воспроизводить звуковой сигнал при срабатывании уведомления |
| Alerts email true/false? (alertsEmail) | Email уведомление — Отправлять email-уведомление при срабатывании |
| Alerts push notification true/false? (alertsNotify) | Push-уведомление — Отправлять push-уведомление на мобильное устройство |
| Show arrows true/false? (arrowsVisible) | Стрелки видимы — Отображать графические стрелки на графике |
| Arrows newest higher time frame bar true/false? (arrowsOnNewest) | Стрелки на новом баре — Размещать стрелки на самом новом баре более высокого таймфрейма |
| Upper arrow gap (arrowsUpperGap) | Зазор верхних стрелок — Множитель зазора для стрелок вверх относительно ATR |
| Lower arrow gap (arrowsLowerGap) | Зазор нижних стрелок — Множитель зазора для стрелок вниз относительно ATR |
| Arrows ID (arrowsIdentifier) | Идентификатор стрелок — Префикс имён объектов-стрелок для их уникальной идентификации на графике |
| Arrows on zero cross true/false? (arrowsOnZeroCross) | Стрелки при пересечении нуля — Показывать стрелки при смене направления тренда |
| Arrows on levels break true/false? (arrowsOnLevelsBreak) | Стрелки при пробое уровня — Показывать стрелки при пересечении сигнальных уровней |
| Arrows on levels retrace true/false? (arrowsOnLevelsRetrace) | Стрелки при откате уровня — Показывать стрелки при откате от сигнального уровня |
| Arrows up color (arrowsUpColor) | Цвет стрелок вверх — Цвет стрелок, указывающих на рост |
| Arrows down color (arrowsDnColor) | Цвет стрелок вниз — Цвет стрелок, указывающих на падение |
| Interpolate in multi time frame true/false? (Interpolate) | Интерполяция — Интерполировать данные между барами более высокого таймфрейма для плавности на текущем графике |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_label1 "Level"
#property indicator_color1 clrDimGray
#property indicator_style1 STYLE_DOT
#property indicator_label2 "Trend trigger factor"
#property indicator_color2 clrDimGray
#property indicator_width2 2
#property indicator_label3 "Up signal"
#property indicator_color3 clrDeepSkyBlue
#property indicator_width3 2
#property indicator_label4 "Down signal"
#property indicator_color4 clrPaleVioletRed
#property indicator_width4 2
#property strict
extern ENUM_TIMEFRAMES TimeFrame = PERIOD_CURRENT; // Time frame
input int TTFbars = 15; // Trend trigger factor bars
input int topLine = 100; // Upper level
input int btmLine = -100; // Lower level
input double t3Period = 3; // T3 smoothing period
input double t3Hot = 0.7; // T3 Hot
input bool t3Original = false; // T3 original Tim Tillson calculation
input bool ShowTopBtmLevels = true; // Show top and bottom levels true/false?
input bool showSignals = true; // Show colored signals true/false?
input bool alertsOn = true; // Alerts on true/false?
input bool alertsOnCurrent = false; // Alerts on current open bar true/false?
input bool alertsMessage = true; // Alerts pop-up message true/false?
input bool alertsSound = false; // Alerts sound true/false?
input bool alertsEmail = false; // Alerts email true/false?
input bool alertsNotify = false; // Alerts push notification true/false?
input bool arrowsVisible = false; // Show arrows true/false?
input bool arrowsOnNewest = true; // Arrows newest higher time frame bar true/false?
input double arrowsUpperGap = 0.5; // Upper arrow gap
input double arrowsLowerGap = 0.5; // Lower arrow gap
input string arrowsIdentifier = "TS Arrows1"; // Arrows ID
input bool arrowsOnZeroCross = false; // Arrows on zero cross true/false?
input bool arrowsOnLevelsBreak = true; // Arrows on levels break true/false?
input bool arrowsOnLevelsRetrace = false; // Arrows on levels retrace true/false?
input color arrowsUpColor = clrDeepSkyBlue; // Arrows up color
input color arrowsDnColor = clrRed; // Arrows down color
input bool Interpolate = true; // Interpolate in multi time frame true/false?
double ttf[],lev[],sigu[],sigd[],trend[],trends[],count[];
string indicatorFileName;
#define _mtfCall(_buff,_ind) iCustom(NULL,TimeFrame,indicatorFileName,PERIOD_CURRENT,TTFbars,topLine,btmLine,t3Period,t3Hot,t3Original,ShowTopBtmLevels,showSignals,alertsOn,alertsOnCurrent,alertsMessage,alertsSound,alertsEmail,alertsNotify,arrowsVisible,arrowsOnNewest,arrowsUpperGap,arrowsLowerGap,arrowsIdentifier,arrowsOnZeroCross,arrowsOnLevelsBreak,arrowsOnLevelsRetrace,arrowsUpColor,arrowsDnColor,_buff,_ind)
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
string lookFor = arrowsIdentifier+":";
int lookForLength = StringLen(lookFor);
for (int i=ObjectsTotal()-1; i>=0; i--)
{
string objectName = ObjectName(i);
if (StringSubstr(objectName,0,lookForLength) == lookFor) ObjectDelete(objectName);
}
}
int OnCalculate(const int rates_total,const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tickVolume[],
const long &volume[],
const int &spread[])
{
// код доступен только после оплаты
}
int i,counted_bars=prev_calculated;
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = fmin(rates_total-counted_bars,rates_total-2); count[0]=limit;
if (TimeFrame!=_Period)
{
limit = (int)fmax(limit,fmin(rates_total-1,_mtfCall(6,0)*TimeFrame/_Period));
for (i=limit;i>=0 && !_StopFlag; i--)
{
int y = iBarShift(NULL,TimeFrame,Time[i]);
lev[i] = _mtfCall(0,y);
ttf[i] = _mtfCall(1,y);
trend[i] = _mtfCall(4,y);
trends[i] = _mtfCall(5,y);
if (i<rates_total-1)
{
if (ShowTopBtmLevels)
{
trend[i] = trend[i+1];
if (ttf[i] > 0) trend[i] = 1;
if (ttf[i] < 0) trend[i] = -1;
if (trend[i]== 1) lev[i] = topLine;
if (trend[i]==-1) lev[i] = btmLine;
}
if (showSignals)
{
trends[i] = 0;
if (ttf[i] > topLine) trends[i] = 1;
if (ttf[i] < btmLine) trends[i] = -1;
if (trends[i]== 1) sigu[i] = topLine;
if (trends[i]==-1) sigd[i] = btmLine;
}
if (!Interpolate || (i>0 && y==iBarShift(NULL,TimeFrame,Time[i-1]))) continue;
#define _interpolate(buff) buff[i+k] = buff[i]+(buff[i+n]-buff[i])*k/n
int n,k; datetime btime = iTime(NULL,TimeFrame,y);
for(n = 1; (i+n)<rates_total && Time[i+n] >= btime; n++) continue;
for(k = 1; k<n && (i+n)<rates_tПоказано первые 50% кода (символов: 9766)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.