forex_rsi_signal.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «forex_rsi_signal.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор для MetaTrader 5, отображающий в отдельном окне осциллятор, рассчитанный на основе разницы двух экспоненциальных скользящих средних (EMA) и их сглаженной сигнальной линии. По сути, это RSI-подобный индикатор, построенный не на ценовых данных, а на разности MACD-линии и сигнальной линии. Диапазон значений от 0 до 100 с уровнями 30 и 70.
В дополнение к основной линии индикатор рисует вспомогательные буферы (MACD-линия, сигнальная линия, компоненты положительных и отрицательных изменений) и направления тренда. Стрелки-метки отображают смену направления основного значения при пересечении уровня 50 или при изменении наклона осциллятора.
Настройки позволяют задать периоды EMA и сигнальной SMA, метод сглаживания, период расчёта RSI, а также управлять видимостью и цветами стрелок. Индикатор использует стандартные функции MQL5 для работы с буферами и графическими объектами.
Настройки программы
| Настройка | Описание |
|---|---|
| FastEMA | Период быстрой экспоненциальной скользящей средней, используемой для расчёта основной линии осциллятора. По умолчанию 12. |
| SlowEMA | Период медленной экспоненциальной скользящей средней, используемой для расчёта основной линии осциллятора. По умолчанию 24. |
| MODE_MA | Метод сглаживания для расчёта скользящих средних. По умолчанию 3 (MODE_EMA). |
| SignalSMA | Период простой скользящей средней (SMA), применяемой для сглаживания основной линии осциллятора. По умолчанию 10. |
| RSIPeriod | Период расчёта RSI-подобного значения на основе разницы между основной и сигнальной линиями. По умолчанию 7. |
| ShowArrowsForRsiLevel50 | Включает отображение стрелок при смене направления основного значения при пересечении уровня 50. По умолчанию отключено (false). |
| ShowArrowsForRsiSlope | Включает отображение стрелок при изменении наклона осциллятора. По умолчанию включено (true). |
| arrowsUpColor1 | Цвет стрелок вверх первого типа (при пересечении уровня 50). По умолчанию бирюзовый. |
| arrowsDnColor1 | Цвет стрелок вниз первого типа (при пересечении уровня 50). По умолчанию жёлтый. |
| arrowsUpColor2 | Цвет стрелок вверх второго типа (при изменении наклона). По умолчанию зелёный. |
| arrowsDnColor2 | Цвет стрелок вниз второго типа (при изменении наклона). По умолчанию красный. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_minimum 0
#property indicator_maximum 100
#property indicator_level1 30
#property indicator_level3 70
#property indicator_buffers 1
#property indicator_color1 White
#property indicator_width1 1
#property indicator_levelcolor Aqua
#property indicator_levelstyle STYLE_SOLID
extern int FastEMA=12;
extern int SlowEMA=24;
extern int MODE_MA =3;
extern int SignalSMA=10;
extern int RSIPeriod=7;
extern bool ShowArrowsForRsiLevel50 = false;
extern bool ShowArrowsForRsiSlope = true;
string arrowsIdentifier = "RsiArrows1";
extern color arrowsUpColor1 = Aqua;
extern color arrowsDnColor1 = Yellow;
extern color arrowsUpColor2 = Lime;
extern color arrowsDnColor2 = Red;
double RSIBuffer[];
double PosBuffer[];
double NegBuffer[];
double MacdBuffer[];
double SignalBuffer[];
double trend1[];
double trend2[];
int init()
{
// код доступен только после оплаты
}
int deinit()
{
deleteArrows();
return(0);
}
int start()
{
// код доступен только после оплаты
}
int limit;
int counted_bars=IndicatorCounted();
double rel,negative,positive;
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
for(int i=0; i<limit; i++)
MacdBuffer[i]=iMA(NULL,0,FastEMA,0,MODE_MA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_MA,PRICE_CLOSE,i);
for(i=0; i<limit; i++)
SignalBuffer[i]=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i);
i=Bars-RSIPeriod-1;
if(counted_bars>=RSIPeriod) i=Bars-counted_bars-1;
while(i>=0)
{
double sumn=0.0,sump=0.0;
if(i==Bars-RSIPeriod-1)
{
int k=Bars-2;
while(k>=i)
{
rel=(MacdBuffer[k]-SignalBuffer[k])-(MacdBuffer[k+1]-SignalBuffer[k+1]);
if(rel>0) sump+=rel;
else sumn-=rel;
k--;
}
positive=sump/RSIPeriod;
negative=sumn/RSIPeriod;
}
else
Показано первые 50% кода (символов: 3661)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.