smlazytma huskybands_v2.1.mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «smlazytma huskybands_v2.1.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор рассчитывает центрированную тройную скользящую среднюю (TMA) с настраиваемым сглаживанием и отображает её вместе с четырьмя верхними и четырьмя нижними волатильными полосами. Полосы строятся на основе стандартного отклонения цен закрытия относительно линии TMA за настраиваемый период, умноженного на индивидуальные коэффициенты. Индикатор работает в двух режимах: с одной медианной TMA или с отдельными TMA для максимумов и минимумов. Генерируются сигналы на вход и выход на основе анализа моментума наклона, отображаемые в виде стрелок на графике. Поддерживаются уведомления через всплывающие алерты и электронную почту.
Настройки программы
| Настройка | Описание |
|---|---|
| Band_Type | Тип полос — Выбор режима расчёта полос: медианная TMA или отдельные полосы для максимумов и минимумов |
| Half Length (HalfLength) | Половина длины — Половина длины окна для расчёта центрированной TMA |
| MA averaging period (ma_period) | Период MA — Период усреднения скользящей средней, используемой внутри расчёта TMA |
| MA averaging method (ma_method) | Метод MA — Метод усреднения скользящей средней для расчёта TMA |
| ATR Period (ATR_Period) | Период отклонения — Количество баров для расчёта стандартного отклонения цен закрытия относительно TMA |
| Total_Bars | Общее количество баров — Максимальное количество баров для обработки индикатором |
| ___Bands_Deviation_Multiplier | Множители отклонения полос — Разделитель в настройках; множители стандартного отклонения для расчёта расстояния полос |
| ATR_Multiplier_Band1 | Множитель полосы 1 — Коэффициент умножения стандартного отклонения для первой полосы |
| ATR_Multiplier_Band2 | Множитель полосы 2 — Коэффициент умножения стандартного отклонения для второй полосы |
| ATR_Multiplier_Band3 | Множитель полосы 3 — Коэффициент умножения стандартного отклонения для третьей полосы |
| ATR_Multiplier_Band4 | Множитель полосы 4 — Коэффициент умножения стандартного отклонения для четвёртой полосы |
| ___Bands_To_Draw | Отображение полос — Разделитель в настройках; управление видимостью полос и линий TMA на графике |
| Draw_HighLow_TMA | Рисовать TMA максимумов и минимумов — Включает или отключает отрисовку отдельных линий TMA для высоких и низких цен |
| Draw_Band1 | Рисовать полосу 1 — Включает или отключает отображение первой пары верхней и нижней полос |
| Draw_Band2 | Рисовать полосу 2 — Включает или отключает отображение второй пары верхней и нижней полос |
| Draw_Band3 | Рисовать полосу 3 — Включает или отключает отображение третьей пары верхней и нижней полос |
| Draw_Band4 | Рисовать полосу 4 — Включает или отключает отображение четвёртой пары верхней и нижней полос |
| ___Signal_Arrows | Сигнальные стрелки — Разделитель в настройках; управление отображением и поведением стрелок сигналов |
| Draw_SignalArrows | Рисовать стрелки сигналов — Включает или отключает отображение стрелок входа и выхода на графике |
| Threshold_Band | Пороговая полоса — Выбор номера полосы, которую цена должна пересечь для формирования сигнала |
| SendSignal_Alerts | Отправлять алерты — Включает или отключает всплывающие уведомления о сигналах |
| SendSignal_Emails | Отправлять email — Включает или отключает отправку email-уведомлений о сигналах |
| 164; (ArrowCode_EntrySignal) | Код стрелки входа — Код символа стрелки для отображения сигналов входа |
| ArrowCode_ExitSignal | Код стрелки выхода — Код символа стрелки для отображения сигналов выхода |
| Arrow_Width | Ширина стрелки — Толщина стрелок сигналов на графике |
| ArrowColor_SignalUP | Цвет стрелки вверх — Цвет стрелок для сигналов покупки |
| ArrowColor_SignalDOWN | Цвет стрелки вниз — Цвет стрелок для сигналов продажи |
| 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
--------------------------------------------------------------------*/
#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 int ma_shift = 6; // MA shift at right*/
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;
input int ArrowCode_EntrySignal = 181; //164;
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])
{
Показано первые 50% кода (символов: 16909)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.