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

2 разворот 1 бар.mq5

Вы автор или правообладатель?

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

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

О программе

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

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

НастройкаОписание
TimeFrame Таймфрейм — Строковое обозначение таймфрейма для расчёта индикатора (например, «1», «M15», «H1»).
HalfLength Половина длины — Целочисленный параметр, определяющий период усреднения, используемый при расчёте центральной линии.
Price Применяемая цена — Тип цены (например, Close, Open, High, Low), используемый для расчётов.
BandsDeviations Отклонения полос — Множитель отклонения, определяющий ширину верхней и нижней границ полос относительно центральной линии.
Repaints Перерисовка — Переключатель, включающий или отключающий перерисовку расчётных значений при обновлении данных.
Interpolate Интерполяция — Переключатель, включающий или отключающий заполнение пробелов между барами при отображении на старшем таймфрейме.
alertsOn Уведомления включены — Общий переключатель для активации или деактивации системы уведомлений индикатора.
alertsOnCurrent Уведомления на текущем баре — Переключатель, определяющий, проверять ли условия уведомления на текущем незавершённом баре.
alertsOnHighLow Уведомления по High/Low — Переключатель, определяющий, использовать ли максимум и минимум бара для триггера уведомлений вместо цены закрытия.
SetArrows Настройка стрелок — Строковый параметр, связанный с конфигурацией отображения стрелочных маркеров.
CodeUp Код стрелки вверх — Числовой код символа стрелки, отображаемой при определённом условии направления.
CodeDn Код стрелки вниз — Числовой код символа стрелки, отображаемой при противоположном условии направления.
Size Размер стрелок — Целочисленный размер отображаемых стрелочных маркеров на графике.
Gap Зазор — Числовой параметр, влияющий на величину смещения стрелок от уровня цены.
alertsMessage Сообщения — Переключатель для вывода уведомлений в виде диалоговых окон на график.
alertsSound Звуковые уведомления — Переключатель для воспроизведения звукового сигнала при срабатывании условия.
alertsEmail Email-уведомления — Переключатель для отправки email-сообщения при срабатывании условия уведомления.
Получить полный код

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

#property description "edited by ReVeR27"
#property description "no repaint"

#property indicator_chart_window
#property indicator_buffers 8
#property indicator_color1  clrNONE
#property indicator_color2  clrYellow
#property indicator_color3  clrYellow
#property indicator_color6  Red
#property indicator_color7  Green
#property indicator_color8  Orange
#property indicator_style1  STYLE_DOT
#property indicator_width1  1
#property indicator_width2  1
#property indicator_width3  1
#property indicator_width6  3
#property indicator_width7  3 
#property indicator_width8  3 

extern string TimeFrame       = "1";
extern int    HalfLength      = 20;
extern ENUM_APPLIED_PRICE    Price  = PRICE_CLOSE;
extern double BandsDeviations = 3.0;
extern bool   Repaints        = true;
extern bool   Interpolate     = true;
extern bool   alertsOn        = false;
extern bool   alertsOnCurrent = false;
extern bool   alertsOnHighLow = false;
extern string SetArrows       = "Set_arrows";
extern int    CodeUp     = 233;
extern int    CodeDn     = 234;
extern int    Size       = 3;
extern double Gap      = 1.5;
extern bool   alertsMessage   = false;
extern bool   alertsSound     = false;
extern bool   alertsEmail     = false;

double tmBuffer[];
double upBuffer[];
double dnBuffer[];
double wuBuffer[];
double wdBuffer[];
double upArrow[];
double dnArrow[];
double midArrow[];

string IndicatorFileName;
bool   calculatingTma = false;
bool   returningBars  = false;
int    timeFrame;

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

int start()
{
      // код доступен только после оплаты
   }
   int counted_bars=IndicatorCounted();
   int i,limit;

   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
           limit=MathMin(Bars-1,Bars-counted_bars+HalfLength);

           if (returningBars)  { tmBuffer[0] = limit; return(0); }
           if (calculatingTma) { calculateTma(limit); return(0); }
           if (timeFrame > Period()) limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrame,IndicatorFileName,"returnBars",0,0)*timeFrame/Period()));

   if(limit<Bars-20) limit=1;
	for(i = limit; i >= 0; i--)
   {

      int      shift1 = iBarShift(NULL,timeFrame,Time[i]);
      datetime time1  = iTime    (NULL,timeFrame,shift1);

         tmBuffer[i] = iCustom(NULL,timeFrame,IndicatorFileName,"calculateTma",HalfLength,Price,BandsDeviations,0,shift1);
         upBuffer[i] = iCustom(NULL,timeFrame,IndicatorFileName,"calculateTma",HalfLength,Price,BandsDeviations,1,shift1);
         dnBuffer[i] = iCustom(NULL,timeFrame,IndicatorFileName,"calculateTma",HalfLength,Price,BandsDeviations,2,shift1);

         upArrow[i] = EMPTY_VALUE;
         dnArrow[i] = EMPTY_VALUE;            

          if ((Open[i]>tmBuffer[i] && Close[i]<tmBuffer[i]) || (Open[i]<tmBuffer[i] && Close[i]>tmBuffer[i])) midArrow[i] = tmBuffer[i]; 

           if (
              Open[i]>tmBuffer[i]
             && Close[i]> upBuffer[i]

           ) dnArrow[i] = High[i]+iATR(NULL,0,20,i)/Gap/2;
           if ( 
               Open[i] < tmBuffer[i] 
            && Close[i]<dnBuffer[i]

           ) upArrow[i] = Low[i]-iATR(NULL,0,20,i)/Gap/2; 

         if (timeFrame <= Period() || shift1==iBarShift(NULL,timeFrame,Time[i

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

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

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

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

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

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

Стоимость полного кода
639,30₽ ≈ $7.81