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

digital fast tma line.mq4

Похожие материалы по тегам

#__slope direction line.mq5MQL5 / MetaTrader 5 · 1 общих теговrange breakout @meowforex1.pineTradingView · 1 общих тегов#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit3.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit2.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit.mq4MQL4 / MetaTrader 4 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Индикатор для платформы MetaTrader 4, рассчитывающий и отображающий линию треугольного скользящего среднего (TMA) с верхней и нижней полосами отклонения. Полосы формируются на основе среднего истинного диапазона и позволяют визуально оценить волатильность и возможные уровни поддержки и сопротивления. Центральная линия окрашивается в зависимости от направления тренда, что помогает определить его характер на выбранном таймфрейме. Индикатор поддерживает работу на нескольких таймфреймах и встроенную систему уведомлений через всплывающие сообщения, звуковые сигналы или электронную почту при пробое ценой полос.

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

НастройкаОписание
TimeFrame Таймфрейм — Выбирает таймфрейм, на котором выполняется расчёт индикатора. Может быть задан текстовым именем (например, M1, H1) или числовым значением.
TMAPeriod Период TMA — Определяет период расчёта треугольного скользящего среднего, влияющий на сглаженность линии индикатора.
Price Тип цены — Задаёт тип цены, используемой при расчёте: Close, Open, High, Low, среднее High/Low, среднее High/Low/Close или другие варианты.
ATRMultiplier Множитель ATR — Множитель, применяемый к значению среднего истинного диапазона для определения ширины верхней и нижней полос индикатора.
ATRPeriod Период ATR — Период расчёта среднего истинного диапазона, используемого для формирования полос отклонения.
TrendThreshold Порог тренда — Пороговое значение наклона линии, определяющее отнесение текущего движения к бычьему, медвежьему или нейтральному тренду.
ShowCenterLine Показать центральную линию — Включает или отключает отображение центральной линии TMA, раскрашиваемой в цвет в зависимости от направления тренда.
Interpolation Интерполяция — Включает интерполяцию значений между основными барами при отображении на младшем таймфрейме для более плавной линии.
alertsOn Алерты включены — Общий переключатель системы уведомлений. При отключении все остальные параметры алертов игнорируются.
alertsMessage Сообщения — Включает отправку всплывающих уведомлений в терминал при пробое ценой верхней или нижней полосы.
alertsSound Звуковой сигнал — Включает воспроизведение звукового файла при срабатывании условия алерта.
alertsEmail Email-уведомления — Включает отправку электронного письма на заданный адрес при срабатывании условия алерта.
MoveEndpointEveryTick Обновление конца при каждом тике — При включении конечная точка линии обновляется инкрементально при каждом новом тике без полного пересчёта.
MaxBarsBack Максимум баров назад — Ограничивает количество баров, участвующих в расчёте индикатора, начиная от текущего.
Получить полный код

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

#property indicator_chart_window
#property indicator_buffers    6
#property indicator_color1     CLR_NONE
#property indicator_color2     HotPink
#property indicator_color3     SpringGreen
#property indicator_color4     Lime 
#property indicator_color5     Red
#property indicator_color6     Gold
#property indicator_style2     STYLE_DOT
#property indicator_style3     STYLE_DOT
#property  indicator_width1 1
#property  indicator_width2 1
#property  indicator_width3 1
#property  indicator_width4 3
#property  indicator_width5 3
#property  indicator_width6 3

#define PIPSTOFORCERECALC 10

extern string TimeFrame       = "Current";
extern int    TMAPeriod      = 17;
extern int    Price           = PRICE_CLOSE;
extern double ATRMultiplier   = 1.7;
extern int    ATRPeriod       = 100;
extern double TrendThreshold = 0.25;
extern bool ShowCenterLine = true;
extern bool Interpolation = false;

extern bool   alertsOn        = false;
extern bool   alertsMessage   = false;
extern bool   alertsSound     = false;
extern bool   alertsEmail     = false;
extern bool   MoveEndpointEveryTick = false;
extern int    MaxBarsBack     = 5000;

double tma[];
double upperBand[];
double lowerBand[];
double bull[];
double bear[];
double neutral[];

int    TimeFrameValue,
       FirstAvailableBar;
bool AlertHappened;
datetime AlertTime;
double TICK;
bool AdditionalDigit;
double  SumTMAPeriod,
        TickScaleFactor,
        Threshold,
        PriorTick,
        FullSumW;

int init()
{
      // код доступен только после оплаты
   }
int deinit() { return(0); }

int start()
{
      // код доступен только после оплаты
   }

void DrawCenterLine(int shift, double slope)
{

   bull[shift] = EMPTY_VALUE;
   bear[shift] = EMPTY_VALUE;          
   neutral[shift] = EMPTY_VALUE; 
   if (ShowCenterLine)
   {
      if(slope > TrendThreshold)
      {
         bull[shift] = tma[shift];
      }
      else if(slope < -1 * TrendThreshold)
      {
         bear[shift] = tma[shift];
      }
      else
      {
         neutral[shift] = tma[shift];
      }
   }
}

double CalcTma( int inx )
  {
  double tmas;
  if(inx >= TMAPeriod)
    tmas = CalcPureTma(inx);
  else
    tmas = CalcTmaEstimate(inx);
  return( tmas );
  }

double CalcPureTma( int i )
  {
  int j = TMAPeriod + 1; 
  int k;
  double sum=0;
  switch (Price)
         {
         case     0:sum=j * iClose(NULL, TimeFrameValue, i);break;
         case     1:sum=j * iOpen(NULL, TimeFrameValue, i);break;
         case     2:sum=j * iHigh(NULL, TimeFrameValue, i);break;
         case     3:sum=j * iLow(NULL, TimeFrameValue, i);break;
         case     4:sum=j * (iHigh(NULL, TimeFrameValue, i)+iLow(NULL, TimeFrameValue, i))/2;break;
         case     5:sum=j * (iHigh(NULL, TimeFrameValue, i)+iLow(NULL, TimeFrameValue, i)+iClose(NULL, TimeFrameValue, i))/3;break;
         case     6:sum=j * (iHigh(NULL, TimeFrameValue, i)+iLow(NULL, TimeFrameValue, i)+iClose(NULL, TimeFrameValue, i)+iClose(NULL, TimeFrameValue, i))/4;break;
         default   :sum=j * iClose(NULL, TimeFrameValue, i);break;
         }

  for    (k = 1; k <= TMAPeriod; k++)
         {
         switch(Price)
               {
               case     0:sum = sum + (j - k) * (iClose(NULL, TimeFrameValue, i+k) + iClose(NULL, TimeFrameValue, i-k));break;
               case     1:sum = sum + (j - k) * (iOpen(NULL, TimeFrameValue, i+k) + iOpen(NULL, TimeFrameValue, i-k));break;
               case     2:sum = sum + (j - k) * (iHigh(NULL, TimeFrameValue, i+k) + iHigh(NULL, TimeFrameValue, i-k));break;
               case     3:sum = sum + (j - k) * (iLow(NULL, TimeFrameValue, i+k) + iLow(NULL, TimeFrameValue, i-k));break;

               case     4:sum = sum + (j - k) * ( 
                                                (iHigh(NULL, TimeFrameValue, i+k) + iLow(NULL, TimeFrameValue, i+k))/2 + 
                                                (iHigh(NULL, TimeFrameValue, i-k) + iLow(NULL, TimeFrameValue, i-k))/2
                                                );break;

               case     5:sum = sum + (j - k) * ( 
                                                (iHigh(NULL, TimeFrameValue, i+k) + iLow(NULL, TimeFrameValue, i+k) + iClose(NULL, TimeFrameValue, i+k))/3 + 
                                                (iHigh(NULL, TimeFrameValue, i-k) + iLow(NULL, TimeFrameValue, i-k) + iClose(NULL, TimeFrameValue, i-k))/3
                                                );break;

               case     6:sum = sum + (j - k) * ( 
                                                (iHigh(NULL, TimeFrameValue, i+k) + iLow(NULL, TimeFrameValue, i+k) + iClose(NULL, TimeFrameValue, i+k) + iCl

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

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

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

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

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

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

Стоимость полного кода
1 011₽ ≈ $12.36