← К каталогу
Исходный код · ID 1524

smlLazyTMA Signals

smlazytma signals_v3.1.mq4
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Данный продукт представляет собой пользовательский индикатор для платформы MetaTrader 4, реализующий расчёт центрированного скользящего среднего TMA (Triangular Moving Average) с настраиваемым периодом и методом усреднения. Индикатор отображает TMA на графике цены и строит четыре верхних и четыре нижних ценовых полосы, рассчитанные на основе стандартного отклонения и множителей ATR.

Индикатор генерирует сигнальные стрелки входа в позицию LONG и SHORT, которые формируются при совпадении условий по наклону TMA, направлению моментума и соотношению цены с полосами. Также реализованы сигнальные стрелки выхода, срабатывающие при изменении направления наклона. Встроена фильтрация сигналов по среднему наклону за заданное количество баров, предотвращающая повторные сигналы в пределах указанного интервала.

Продукт поддерживает настройку видимости каждой полосы и сигнальных стрелок, а также отображение текстовых комментариев на графике. Все расчёты выполняются на каждом новом баре с использованием встроенных функций iMA для получения значений скользящих средних.

Настройки программы

НастройкаОписание
Half Length (HalfLength) Половина длины TMA — Половина длины окна для расчёта TMA, полная длина равна 2*HalfLength+1
MA averaging period (ma_period) Период усреднения МА — Период усреднения скользящей средней
MA averaging method (ma_method) Метод усреднения МА — Метод усреднения для расчёта скользящей средней
Applied Price (applied_price) Применяемая цена — Тип цены, используемый для расчёта скользящих средних
ATR Period (ATR_Period) Период ATR — Период ATR, используемый для расчёта отклонения полос
Show_Comments Показать комментарии — Включает отображение текстовых комментариев на графике
Total_Bars Общее количество баров — Количество баров, используемых для расчёта индикатора
___Bands_Deviation_Multiplier Множители отклонения полос — Разделитель группы настроек множителей отклонения полос
ATR_Multiplier_Band1 Множитель ATR для полосы 1 — Множитель стандартного отклонения для первой верхней и нижней полосы
ATR_Multiplier_Band2 Множитель ATR для полосы 2 — Множитель стандартного отклонения для второй верхней и нижней полосы
ATR_Multiplier_Band3 Множитель ATR для полосы 3 — Множитель стандартного отклонения для третьей верхней и нижней полосы
ATR_Multiplier_Band4 Множитель ATR для полосы 4 — Множитель стандартного отклонения для четвёртой верхней и нижней полосы
___Bands_To_Draw Полосы для отрисовки — Разделитель группы настроек отображения полос
Draw_Band1 Рисовать полосу 1 — Включает отображение первой верхней и нижней полосы
Draw_Band2 Рисовать полосу 2 — Включает отображение второй верхней и нижней полосы
Draw_Band3 Рисовать полосу 3 — Включает отображение третьей верхней и нижней полосы
Draw_Band4 Рисовать полосу 4 — Включает отображение четвёртой верхней и нижней полосы
Draw_SignalArrows Рисовать сигнальные стрелки — Включает отображение сигнальных стрелок входа и выхода
Получить полный код

Поиск по коду файла

#property strict
#property indicator_chart_window

/*-------------------------------------------------------------------
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
--------------------------------------------------------------------*/

#property indicator_buffers 14

#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_color11  clrAqua       //Entry signal arrows
#property indicator_color12  clrTomato
#property indicator_color13  clrAqua       //Exit arrows
#property indicator_color14  clrTomato

#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_width11  2
#property indicator_width12  2
#property indicator_width13  1
#property indicator_width14  1

#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

extern int                   HalfLength      =  89;            // Half Length
input int                    ma_period       =  6;             // MA averaging period

input ENUM_MA_METHOD         ma_method       =  MODE_LWMA;     // MA averaging method
input ENUM_APPLIED_PRICE     applied_price   =PRICE_MEDIAN;    // Applied Price
input int                    ATR_Period      =  144;           // ATR Period
input bool                   Show_Comments   =  true;
input int                    Total_Bars      = 2000;
input string ___Bands_Deviation_Multiplier="----------------------------------------------";
input double ATR_Multiplier_Band1   =1.0;
input double ATR_Multiplier_Band2   =2.0;
input double ATR_Multiplier_Band3   =3.0;
input double ATR_Multiplier_Band4   =4.0;

input string ___Bands_To_Draw="----------------------------------------------";
input bool Draw_Band1               =true;
input bool Draw_Band2               =true;
input bool Draw_Band3               =true;
input bool Draw_Band4               =true;

input bool Draw_SignalArrows=true;

string CR="\n";
#define OP_NONE -1

double tmaUP[],tmaDN[],tmaCentered[];
double bandUP1[],bandUP2[],bandUP3[],bandUP4[];
double bandDN1[],bandDN2[],bandDN3[],bandDN4[];
double slope[];
double arrowUP[],arrowDN[],exitUP[],exitDN[];

double weights[];

#define nSlopes 200

double buffMomentum[nSlopes],slopeLine[nSlopes],arrSlopeSorted[nSlopes];

double sumWeights=0;
int    fullLength;

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;

datetime thisTime,oldTime;
bool newBar;

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;
   static int limit;

   thisTime=iTime(Symbol(),Period(),0);
   if(thisTime!=oldTime)
     {newBar=true; oldTime=thisTime;}
   else
      newBar=false;

   int counted_bars=IndicatorCounted();

   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;

   if(limit<fullLength)
      limit=MathMax(limit,limit+fullLength);

newBar=true;

   if(newBar==true)
     {
      Calculate_TMA_centered(limit,tmaCentered);

      for(i=limit-2; i>=0 && !IsStopped(); i--)
        {
         if(tmaCentered[i+1]!=0)
            slope

Показано первые 50% кода (символов: 10042)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
1 004,20₽ ≈ $12.27