********
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «smlazytma huskybands_v2.2.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
******** — это пользовательский индикатор для MetaTrader 4, рассчитывающий аналитические линии на основе триггерного скользящего среднего (TMA) и ценовых полос. Индикатор строит центральную TMA-линию с разделением на восходящие и нисходящие тренды, а также вычисляет четыре верхних и четыре нижних полосы на основе стандартного отклонения и множителей ATR.
Индикатор отображает стрелки входных и выходных сигналов, учитывая направление наклона и импульс цены. Встроена фильтрация сигналов по пороговым уровням полос и проверка закрытия цен в пределах нескольких баров. Поддерживаются уведомления в виде popup-оповещений, электронных писем и push-уведомлений.
Настройки позволяют выбрать тип полос (медианный или по максимуму/минимуму), метод усреднения, период ATR, множители для каждой полосы, а также управлять отображением отдельных элементов и типами уведомлений.
Настройки программы
| Настройка | Описание |
|---|---|
| Band_Type | Тип полос — Тип расчёта полос: медианный (Median_Band) или по максимумам/минимумам (HighLow_Bands) |
| Half Length (HalfLength) | Half Length — Половина длины скользящего среднего TMA |
| MA averaging period (ma_period) | Период усреднения MA — Период усреднения скользящего среднего |
| MA averaging method (ma_method) | Метод усреднения MA — Метод усреднения скользящего среднего (EMA, SMMA, LWMA и др.) |
| ATR Period (ATR_Period) | Период ATR — Период расчёта ATR для определения ширины полос |
| Total_Bars | Общее число баров — Максимальное количество баров для расчёта |
| ___Bands_Deviation_Multiplier | Множители отклонения полос — Разделитель группы настроек множителей отклонения полос |
| ATR_Multiplier_Band1 | Множитель ATR Band1 — Множитель стандартного отклонения для первой верхней/нижней полосы |
| ATR_Multiplier_Band2 | Множитель ATR Band2 — Множитель стандартного отклонения для второй верхней/нижней полосы |
| ATR_Multiplier_Band3 | Множитель ATR Band3 — Множитель стандартного отклонения для третьей верхней/нижней полосы |
| ATR_Multiplier_Band4 | Множитель ATR Band4 — Множитель стандартного отклонения для четвёртой верхней/нижней полосы |
| ___Bands_To_Draw | Отображаемые полосы — Разделитель группы настроек отображения полос |
| Draw_HighLow_TMA | Отображение TMA Highs/Lows — Отображение линий TMA по максимумам и минимумам |
| Draw_Band1 | Отображение Band1 — Отображение первой верхней и нижней полосы |
| Draw_Band2 | Отображение Band2 — Отображение второй верхней и нижней полосы |
| Draw_Band3 | Отображение Band3 — Отображение третьей верхней и нижней полосы |
| Draw_Band4 | Отображение Band4 — Отображение четвёртой верхней и нижней полосы |
| ___Signal_Arrows | Стрелки сигналов — Разделитель группы настроек стрелок сигналов |
| Draw_SignalArrows | Отображение стрелок сигналов — Отображение стрелок входных и выходных сигналов |
| Threshold_Band | Пороговая полоса — Пороговый уровень полосы для фильтрации сигналов входа (Band1–Band4) |
| SendSignal_Alerts | Отправка popup-оповещений — Включение popup-уведомлений о сигналах |
| SendSignal_Emails | Отправка email-оповещений — Включение отправки электронных писем о сигналах |
| SendSignal_Notifications | Отправка push-уведомлений — Включение push-уведомлений о сигналах |
| ArrowCode_EntrySignal | Код стрелки входного сигнала — Код стрелки для отображения сигналов входа |
| ArrowCode_ExitSignal | Код стрелки выходного сигнала — Код стрелки для отображения сигналов выхода |
| Arrow_Width | Толщина стрелки — Толщина стрелок сигналов |
| ArrowColor_SignalUP | Цвет стрелки сигнала UP — Цвет стрелок длинных (покупки) сигналов |
| ArrowColor_SignalDOWN | Цвет стрелки сигнала DOWN — Цвет стрелок коротковых (продажи) сигналов |
| Show_Comments | Показ комментариев — Отображение текстовых комментариев на графике |
Поиск по коду файла
#property strict
#property indicator_chart_window
/*-------------------------------------------------------------------
Source code: Signals_v3.1
10.06.2019 v1 - Bands calculation with StdDev
12.06.2019 v2.1 - TMA calculate like TMAcentered (@mladen); Entry/Exit on Open
13.06.2019 v2.2 - Signal offset = 25% from ATR for Close1/Close0
14.06.2019 v3.1 - Signal filter with AvgSlope on last 5 bars; one signal for last 10 bars; available signals remains
Husky Bands
18.06.2019 v1 - Separate Bands for TMA(Highs) and TMA(Lows))
21.06.2019 v1.3 - Correction: Bands drawing and for variables Bars, Total_Bars and limit
22.06.2019 v2.1 - Alerts for signals
29.11.2020 v2.2 - Notification Alerts for signals
--------------------------------------------------------------------*/
#property indicator_buffers 16
#property indicator_color1 clrDodgerBlue //TMA
#property indicator_color2 clrTomato
#property indicator_color3 clrChocolate //upper bands
#property indicator_color4 clrHotPink
#property indicator_color5 clrMagenta
#property indicator_color6 clrMagenta
#property indicator_color7 clrChocolate //lower bands
#property indicator_color8 clrSpringGreen
#property indicator_color9 clrMediumSeaGreen
#property indicator_color10 clrMediumSeaGreen
#property indicator_color15 clrMagenta //TMA Highs/Lows
#property indicator_color16 clrMediumSeaGreen
#property indicator_width1 4
#property indicator_width2 4
#property indicator_width3 1
#property indicator_width4 2
#property indicator_width5 1
#property indicator_width6 1
#property indicator_width7 1
#property indicator_width8 2
#property indicator_width9 1
#property indicator_width10 1
#property indicator_width15 2 //TMA Highs/Lows
#property indicator_width16 2
#property indicator_style1 STYLE_SOLID
#property indicator_style2 STYLE_SOLID
#property indicator_style3 STYLE_DASH
#property indicator_style4 STYLE_SOLID
#property indicator_style5 STYLE_SOLID
#property indicator_style6 STYLE_DOT
#property indicator_style7 STYLE_DASH
#property indicator_style8 STYLE_SOLID
#property indicator_style9 STYLE_SOLID
#property indicator_style10 STYLE_DOT
enum ENUM_THRESHOLD_BANDS
{
Band1,
Band2,
Band3,
Band4
};
enum ENUM_BAND_TYPE
{
Median_Band,
HighLow_Bands
};
input ENUM_BAND_TYPE Band_Type = Median_Band;
extern int HalfLength = 34; // Half Length
input int ma_period = 4; // MA averaging period
input ENUM_MA_METHOD ma_method=MODE_LWMA; // MA averaging method
input int ATR_Period=144; // ATR Period
extern int Total_Bars = 1000;
input string ___Bands_Deviation_Multiplier="----------------------------------------------";
input double ATR_Multiplier_Band1 =1.0;
input double ATR_Multiplier_Band2 =1.618;
input double ATR_Multiplier_Band3 =2.236;
input double ATR_Multiplier_Band4 =2.854;
input string ___Bands_To_Draw="----------------------------------------------";
input bool Draw_HighLow_TMA =true;
input bool Draw_Band1 =true;
input bool Draw_Band2 =true;
input bool Draw_Band3 =true;
input bool Draw_Band4 =true;
input string ___Signal_Arrows="----------------------------------------------";
input bool Draw_SignalArrows=true;
input ENUM_THRESHOLD_BANDS Threshold_Band=Band1;
extern bool SendSignal_Alerts=true;
extern bool SendSignal_Emails=false;
extern bool SendSignal_Notifications=false;
input int ArrowCode_EntrySignal = 181;
input int ArrowCode_ExitSignal = 203;
input int Arrow_Width = 1;
input color ArrowColor_SignalUP = clrAqua;
input color ArrowColor_SignalDOWN = clrMagenta;
input bool Show_Comments = false;
/*====================================================================
--- more inputs:
Signals only in trend direction / countertrend signals
====================================================================*/
string CR="\n";
#define OP_NONE -1
string subjectEmailAlert="********* **********";
#define LONG_ENTRY_TREND 1
#define LONG_ENTRY_COUNTER 2
#define LONG_EXIT_TREND 3
#define SHORT_ENTRY_TREND -1
#define SHORT_ENTRY_COUNTER -2
#define SHORT_EXIT_TREND -3
double tmaUP[],tmaDN[],tmaCentered[];
double bandUP1[],bandUP2[],bandUP3[],bandUP4[];
double bandDN1[],bandDN2[],bandDN3[],bandDN4[];
double slope[];
double arrowUP[],arrowDN[],exitUP[],exitDN[];
double tmaCenteredHighs[],tmaCenteredLows[];
double weights[];
double signalSended[];
#define nSlopes 2000
double buffMomentum[nSlopes],slopeLine[nSlopes],arrSlopeSorted[nSlopes];
datetime thisTime,oldTime;
bool newBar,newRedraw;
double sumWeights=0;
int fullLength;
int applied_price;
int MAvg3_Period=3;
int MAvg_Shift=1;
int MAvg_Mode=MODE_SMA;
int MAvg1_Period=1;
ENUM_APPLIED_PRICE MAvg_Price=PRICE_TYPICAL;
double slopeLimitValue;
int iMomentum_Direction;
string sMomentum_Direction;
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
if(Show_Comments==true)
Comment("");
}
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 &tick_volume[],
const long &volume[],
const int &spread[])
{
// код доступен только после оплаты
}
int i;
int limit;
thisTime=iTime(Symbol(),Period(),0);
if(thisTime!=oldTime)
{
newBar=true;
oldTime=thisTime;
newRedraw=true;
}
else
{
newBar=false;
newRedraw=false;
}
int counted_bars=IndicatorCounted();
if(counted_bars<0)
return(-1);
if(counted_bars>0)
counted_bars--;
limit=Bars-counted_bars;
if(Bars<Total_Bars-ATR_Period)
Total_Bars=Bars-ATR_Period-10;
if(limit>Total_Bars)
limit=Total_Bars;
if(newBar==true)
{
Calculate_TMA_AVERAGE(limit,PRICE_MEDIAN,tmaCentered,tmaUP,tmaDN,slope);
switch(Band_Type)
{
case Median_Band:
break;
case HighLow_Bands:
Calculate_TMA_AVERAGE(limit,PRICE_HIGH,tmaCenteredHighs,tmaUP,tmaDN,slope);
Calculate_TMA_AVERAGE(limit,PRICE_LOW,tmaCenteredLows,tmaUP,tmaDN,slope);
break;
}
Calculate_TMA_BANDS(limit,tmaCentered,tmaCenteredHighs,tmaCenteredLows,
bandUP1,bandUP2,bandUP3,bandUP4,
bandDN1,bandDN2,bandDN3,bandDN4);
if(Draw_SignalArrows==true)
{
for(i=limit; i>=0 && !IsStopped(); i--)
{
Get_SlopeMomentumValues(Symbol(),Period(),i);
double dATRoffset=0;
double dClose0=Close[i+1];
double dClose1=Close[i+1+1];
if(i==0)
{
arrowUP[i]=EMPTY_VALUE;
arrowDN[i]=EMPTY_VALUE;
}
bool signalOK;
int nBarsCheckClosesAtBands=5; //### input...
int nBarsCheckOldSignals =1; //### input...
if(iMomentum_Direction==OP_BUY)
{
signalOK=true;
for(int j=1; j<=nBarsCheckOldSignals; j++)
{
if(arrowUP[i+j]!=EMPTY_VALUE)
{
signalOK=false;
break;
}
}
if(signalOK==true)
{
if(Open[i]<tmaCentered[i] && Open[i]<bandDN1[i])
{
bool bThresholdBand=true;
if(Threshold_Band==Band2 && Open[i]>bandDN2[i])
bThresholdBand=false;
else
if(Threshold_Band==Band3 && Open[i]>bandDN3[i])
bThresholdBand=false;
else
if(Threshold_Band==Band4 && Open[i]>bandDN4[i])
Показано первые 50% кода (символов: 17054)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.