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

TMA+CG 4C AA MTF TT

# tma+cg (mtf).mq5
Вы автор или правообладатель?

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

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

О программе

Индикатор для MetaTrader 5, отображающий на графике сглаженную среднюю линию с расчётными границами отклонения и вспомогательными сигнальными элементами. Индикатор работает в окне графика и поддерживает выбор таймфрейма, отличного от текущего, а также режим интерполяции значений между барами выбранного таймфрейма.

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

Индикатор не совершает торговых операций и не управляет позициями; он только рассчитывает и отображает данные, а также может подавать сигналы оповещения.

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

НастройкаОписание
TimeFrame Задаёт таймфрейм, данные которого используются для расчёта индикатора. При значении текущего периода расчёт ведётся на текущем таймфрейме.
HalfLength Задаёт половину длины периода сглаживания для расчёта средней линии и границ. Значение автоматически ограничивается снизу единицей.
Price Определяет тип цены, применяемый при расчёте индикатора.
Deviations Задаёт коэффициент отклонения, используемый при построении верхней и нижней границ относительно средней линии.
Interpolate Включает режим интерполяции значений индикатора между барами выбранного таймфрейма при отображении на текущем графике.
ShowTMA Выбирает, какие элементы отображать: только среднюю линию, только границы или и то и другое.
CalcArrows Выбирает режим формирования стрелок: отключено, по тренду с учётом цен открытия, закрытия, максимума и минимума, либо по смене цвета границ.
AlertsOnHiLo Определяет, по какому ценовому уровню отслеживать касание границ: по максимуму и минимуму бара или по цене закрытия. Влияет на формирование сигналов оповещения.
SIGNALBAR Указывает номер бара, по которому проверяется условие для подачи сигнала оповещения.
SoundFile Имя звукового файла, воспроизводимого при срабатывании звукового оповещения.
Получить полный код

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

#property description "Почта:  t*******e*@mail.ru" 
#property version  "6.0"

#property indicator_chart_window
#property indicator_buffers 7

#property indicator_color1  clrSilver //Gray
#property indicator_color2  clrGray   //Red
#property indicator_color3  clrLime   //DarkBlue
#property indicator_color4  clrYellow //Red
#property indicator_color5  clrAqua   //Blue
#property indicator_color6  clrRed    //DarkOrange
#property indicator_color7  clrGray

#property indicator_width1  0
#property indicator_width2  2
#property indicator_width3  2
#property indicator_width4  0
#property indicator_width5  0
#property indicator_width6  2
#property indicator_width7  2

#property indicator_style1  STYLE_DOT
#property indicator_style2  STYLE_DOT
#property indicator_style3  STYLE_DOT
#property indicator_style6  STYLE_DOT
#property indicator_style7  STYLE_DOT

enum showCHL { NoLINES, onlyTMA, onlyBANDS, allLINES };
enum calcARR { ArrowsOFF, TrendOCLH, ChangeCOLOR };

extern ENUM_TIMEFRAMES    TimeFrame     = PERIOD_CURRENT; // Time frame to use
extern int                HalfLength    = 24;  //56;
extern ENUM_APPLIED_PRICE Price         = PRICE_WEIGHTED;
extern double             Deviations    = 1.618;
extern bool               Interpolate   = false;
extern showCHL            ShowTMA       = onlyBANDS;
extern calcARR            CalcArrows    = ChangeCOLOR;
extern bool               AlertsOnHiLo  = false;
extern int                SIGNALBAR     = 1;   //На каком баре сигналить....
extern bool               AlertsMessage = false,   //false,    
                          AlertsSound   = false,   //false,
                          AlertsEmail   = false,
                          AlertsMobile  = false;
extern string             SoundFile     = "alert2.wav";  //"news.wav";  //"expert.wav";  //   //"stops.wav"   //   //

double tmBuffer[], upBuffer[], dnBuffer[];
double clrSEL[], clrBUY[];
double arrSEL[], arrBUY[];
double wuBuffer[], wdBuffer[], FLAG[];

string IndikName;
bool calculateTma = false;   bool returnBars  = false;
string  messageUP, messageDN, sufix;  datetime TimeBar=0;  

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

int deinit() { Comment("");  return(0); }

int start()
{
      // код доступен только после оплаты
   }
   int CountedBars=IndicatorCounted();
   if (CountedBars<0) return(-1);
   if (CountedBars>0) CountedBars--;
   int i, y, x, limit = MathMin(Bars-1,Bars-CountedBars+HalfLength);

   if (returnBars)  { tmBuffer[0] = limit+1;  return(0); }
   if (calculateTma) { calculateTMA(limit);  return(0); }
   if (TimeFrame > _Period) limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,TimeFrame,IndikName,-99,0,0)*TimeFrame/_Period));

   for (i=limit; i>=0; i--)
    {
     y = iBarShift(NULL,TimeFrame,Time[i]);
     x = y;  if (i<Bars-1) x = iBarShift(NULL,TimeFrame,Time[i+1]);

     tmBuffer[i] = iCustom(NULL,TimeFrame,IndikName,PERIOD_CURRENT,HalfLength,Price,Deviations,0,y);
     upBuffer[i] = iCustom(NULL,TimeFrame,IndikName,PERIOD_CURRENT,HalfLength,Price,Deviations,1,y);
     dnBuffer[i] = iCustom(NULL,TimeFrame,IndikName,PERIOD_CURRENT,HalfLength,Price,Deviations,2,y);
     FLAG[i] = iCustom(NULL,TimeFrame,IndikName,PERIOD_CURRENT,HalfLength,Price,Deviations,9,y);

     if (!Interpolate) {
         if (x!=y) {
             arrSEL[i] = iCustom(NULL,TimeFrame,IndikName,PERIOD_CURRENT,HalfLength,Price,Deviations,3,y);
             arrBUY[i] = iCustom(NULL,TimeFrame,IndikName,PERIOD_CURRENT,HalfLength,Price,Deviations,4,y); } 

         clrSEL[i] = iCustom(NULL,TimeFrame,IndikName,PERIOD_CURRENT,HalfLength,Price,Deviations,5,y);
         clrBUY[i] = iCustom(NULL,TimeFrame,IndikName,PERIOD_CURRENT,HalfLength,Price,Deviations,6,y); }

     if (TimeFrame!=_Period) { if (CalcArrows==1) setupARROWS(i);  setupALERTS(FLAG); }

     if (TimeFrame <= _Period || y==iBarShift

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

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

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

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

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

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

Стоимость полного кода
862₽ ≈ $10.54