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

! sbnr arrows 2 new.mq5

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

ares_indicator.pineTradingView · 1 общих теговgold_trend_revers.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!!-mt4 x-xardg-rsi.mq5MQL5 / MetaTrader 5 · 1 общих тегов! cycle-identifier.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!! rsi ma simple+arrows 1.2 (mtf).mq5MQL5 / MetaTrader 5 · 1 общих теговprecisionflowea.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

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

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

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

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

НастройкаОписание
i_ePeriod Таймфрейм, на котором выполняется расчёт индикатора
RsiPeriod Период индикатора RSI
MaType Тип скользящей средней для расчёта
MaPeriod Период скользящей средней, применяемой к RSI
Interpolate Включает или отключает интерполяцию данных между таймфреймами
arrowsIdentifier Идентификатор стрелок на графике для их группировки и удаления
ArrowGap Вертикальный отступ стрелок от цены в виде множителя ATR
arrowsUpColor Цвет стрелки вверх (бычий сигнал)
arrowsDnColor Цвет стрелки вниз (медвежий сигнал)
arrowsUpSize Размер стрелки вверх
arrowsDnSize Размер стрелки вниз
i_eAlertBar Выбор свечи, на которой срабатывают уведомления: текущая или закрытая
alertsSound Включает или отключает звуковой сигнал при появлении сигналов
alertsMessage Включает или отключает push-уведомления о сигналах
alertsEmail Включает или отключает отправку email-уведомлений о сигналах
Получить полный код

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

#property indicator_separate_window
#property strict

#property indicator_buffers 5
#property indicator_color1 clrRed
#property indicator_color2 clrGreen
#property indicator_color3 clrBlack

enum TIMEFRAMES
{
	PeriodCurrent	= PERIOD_CURRENT,		// Current
	PeriodM1			= PERIOD_M1,			// М1
	PeriodM5			= PERIOD_M5,			// М5
	PeriodM15		= PERIOD_M15,			// М15
	PeriodM30		= PERIOD_M30,			// M30
	PeriodH1			= PERIOD_H1,			// H1
	PeriodH4			= PERIOD_H4,			// H4
	PeriodD1			= PERIOD_D1,			// D1
	PeriodW1			= PERIOD_W1,			// W1
	PeriodMN			= PERIOD_MN1			// MN1
};

enum AlertBar
{
	Current = 0,		// Current bar
	Closed = 1			// Closed bar
};

enum Mode
{
	ReturnBars = -2,
	CalculateRSI = -1,
	Normal = 0
};

input TIMEFRAMES		i_ePeriod			= PeriodCurrent; // Timeframe
input int				RsiPeriod			= 4;					// RSI per?od
input ENUM_MA_METHOD	MaType				= MODE_EMA;			// MA Type
input int				MaPeriod				= 2;					// MA Period
input bool				Interpolate			= false;				// Interpolate
input string			arrowsIdentifier	= "SBNR arrows";	// ID
extern double  ArrowGap      = 0.30;
input color				arrowsUpColor		= clrLime;			// Color up arrow
input color				arrowsDnColor		= clrRed;			// Color down arrow
input int            arrowsUpSize      = 2;              // up arrow size
input int            arrowsDnSize      = 2;              // down arrow size
input AlertBar			i_eAlertBar			= Closed;			// Alert
input bool				alertsSound			= TRUE;				// Alert Sound 
input bool				alertsMessage		= FALSE;				// push
input bool				alertsEmail			= FALSE;				// email

double RSIBuffer[];
double MABuffer[];
double StatusBuffer[],BUY[],SELL[];

string g_sIndicatorName;
bool g_bCalculateRSI = FALSE;
bool g_bReturnBars = FALSE;
ENUM_TIMEFRAMES g_ePeriod;

datetime g_dtLastBarTime;

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

void OnDeinit(const int nReason)
{
   RemoveAllArrows();
}

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 nOtherPeriodShift;

   if (prev_calculated < 0)
   	return (0);

   int nStartBar = MathMin(Bars - prev_calculated, Bars - 1);

   if (g_bReturnBars)
   {
      RSIBuffer[0] = nStartBar + 1;
      return (rates_total);
   }

   if (g_ePeriod > Period())
   	nStartBar = (int) MathMax(nStartBar, MathMin(Bars - 1, iCustom(NULL, g_ePeriod, g_sIndicatorName, ReturnBars, 0, 0) * g_ePeriod / Period()));

   if (g_bCalculateRSI)
   {
      for (int i = 0; i < nStartBar; i++)
      	RSIBuffer[i] = iRSI(NULL, 0, RsiPeriod, PRICE_CLOSE, i);

      for (int i = 0; i < nStartBar; i++)
      	MABuffer[i] = iMAOnArray(RSIBuffer, 0, MaPeriod, 0, MaType, i);

      return (rates_total);
   }

   for (int i = nStartBar; i >= 0; i--)
   {
   	if(i > Bars - 2)
   		continue;

      nOtherPeriodShift = iBarShift(NULL, g_ePeriod, Time[i] - Time[i] % g_ePeriod, true);

      if(nOtherPeriodShift == -1)
      	continue;

      RSIBuffer[i] = iCustom(NULL, g_ePeriod, g_sIndicato

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

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

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

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

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

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

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