RSI of (MACD-SIGNAL)
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «rsi of (macd-signal)_v3- arrows.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор «RSI of (MACD-SIGNAL)» рассчитывает индикатор относительной силы (RSI) на основе разницы между линией MACD и её сигнальной линией. Отображается в отдельном окне в диапазоне 0–100 с уровнями 30, 50 и 70.
Индикатор поддерживает визуальную маркировку точек пересечения RSI уровней 30 и 70, а также изменений наклона RSI с помощью настраиваемых стрелок. Два набора цветов позволяет различать типы маркеров.
Встроенная система уведомлений позволяет настраивать алерты в виде pop-up сообщений, звуковых сигналов и email-уведомлений. Уведомления срабатывают при смене направления тренда RSI и могут быть ограничены текущей свечой.
Параметры экспоненциальных скользящих средних, метода усреднения и периодов настраиваются пользователем, что обеспечивает гибкость под различные торговые стратегии.
Настройки программы
| Настройка | Описание |
|---|---|
| FastEMA | Период быстрой экспоненциальной скользящей средней, используемой для расчёта линии MACD. |
| SlowEMA | Период медленной экспоненциальной скользящей средней, используемой для расчёта линии MACD. |
| MODE_MA | Метод усреднения для расчёта скользящих средних (MODE_SMA = 0, MODE_EMA = 1, MODE_SMMA = 2, MODE_LWMA = 3). |
| SignalSMA | Период сигнальной скользящей средней, рассчитываемой на массиве MACD. |
| RSIPeriod | Период расчёта индикатора RSI на основе разницы MACD и сигнальной линии. |
| ShowArrowsForRsiLevel30_70 | Переключатель отображения стрелок при пересечении RSI уровней 30 и 70. |
| ShowArrowsForRsiSlope | Переключатель отображения стрелок при изменении направления наклона RSI. |
| alertsOn | Главный переключатель включения системы уведомлений. |
| alertsOnCurrent | Переключатель: уведомления срабатывают на текущей свече или на предыдущей. |
| alertsMessage | Переключатель отображения pop-up сообщений при срабатывании алерта. |
| alertsSound | Переключатель воспроизведения звукового сигнала при срабатывании алерта. |
| alertsEmail | Переключатель отправки email-уведомлений при срабатывании алерта. |
| soundfile | Путь к звуковому файлу, воспроизводимому при срабатывании звукового уведомления. |
| arrowsIdentifier | Идентификатор объектов-стрелок на графике, используемый для их создания и удаления. |
| arrowsUpColor1 | Цвет стрелки вверх первого набора (пересечение уровней RSI). |
| arrowsDnColor1 | Цвет стрелки вниз первого набора (пересечение уровней RSI). |
| arrowsUpColor2 | Цвет стрелки вверх второго набора (изменение наклона RSI). |
| arrowsDnColor2 | Цвет стрелки вниз второго набора (изменение наклона RSI). |
Поиск по коду файла
#property indicator_separate_window
#property indicator_minimum 0
#property indicator_maximum 100
#property indicator_level1 30
#property indicator_level2 50
#property indicator_level3 70
#property indicator_buffers 1
#property indicator_color1 DodgerBlue
#property indicator_width1 2
extern int FastEMA=24;
extern int SlowEMA=48;
extern int MODE_MA =3;
extern int SignalSMA=9;
extern int RSIPeriod=5;
extern bool ShowArrowsForRsiLevel30_70 = true;
extern bool ShowArrowsForRsiSlope = false;
extern string note = "turn on Alert = true; turn off = false";
extern bool alertsOn = true;
extern bool alertsOnCurrent = true;
extern bool alertsMessage = true;
extern bool alertsSound = true;
extern bool alertsEmail = false;
extern string soundfile = "alert2.wav";
extern string arrowsIdentifier = "RsiArrows1";
extern color arrowsUpColor1 = DeepSkyBlue;
extern color arrowsDnColor1 = Red;
extern color arrowsUpColor2 = LawnGreen;
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
{
rel=(MacdBuffer[i]- SignalBuffer[i])-(MacdBuffer[i+1]-SignalBuffer[i+1]);
if(rel>0) sump=rel;
else sumn=-rel;
positive=(PosBuffer[i+1]*(RSIPeriod-1)+sump)/RSIPeriod;
negative=(NegBuffer[i+1]*(RSIPeriod-1)+sumn)/RSIPeriod;
}
PosBuffer[i]=positive;
NegBuffПоказано первые 50% кода (символов: 4664)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.